@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,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 { LitElement, html, css } from 'lit';
16
+ import { LitElement, html, css } from 'lit-element';
17
17
  import { get, set, del } from 'object-path';
18
18
  import { dispatchCustomEvent } from '../lib/events';
19
19
  import { deepClone, deepEqual } from '../lib/utils';
20
- import { classMap } from 'lit/directives/class-map';
20
+ import { classMap } from 'lit-html/directives/class-map';
21
21
  import { Validator } from 'jsonschema';
22
22
  import { empty } from '../styles/empty';
23
23
  import './gv-schema-form-control';
@@ -531,4 +531,4 @@ export class GvSchemaForm extends LitElement {
531
531
 
532
532
  }
533
533
  window.customElements.define('gv-schema-form', GvSchemaForm);
534
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImdldCIsInNldCIsImRlbCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJkZWVwQ2xvbmUiLCJkZWVwRXF1YWwiLCJjbGFzc01hcCIsIlZhbGlkYXRvciIsImVtcHR5IiwiR3ZTY2hlbWFGb3JtIiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJlcnJvcnMiLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsIlN0cmluZyIsImhhc0Zvb3RlciIsIkJvb2xlYW4iLCJhdHRyaWJ1dGUiLCJoYXNIZWFkZXIiLCJfY29uZmlybSIsIl92YWx1ZXMiLCJkaXJ0eSIsInJlZmxlY3QiLCJoaWRlRGVwcmVjYXRlZCIsInZhbGlkYXRlT25SZW5kZXIiLCJfdmFsaWRhdG9yUmVzdWx0cyIsInNrZWxldG9uIiwiX3RvdWNoIiwicmVhZG9ubHkiLCJzY3JvbGxhYmxlIiwiY29uc3RydWN0b3IiLCJfdmFsaWRhdG9yIiwiX2lnbm9yZVByb3BlcnRpZXMiLCJhZGRFdmVudExpc3RlbmVyIiwiX29uRGVmYXVsdFZhbHVlIiwiYmluZCIsIl9vbkNoYW5nZSIsIl9vbkNvbnRyb2xSZWFkeSIsIl9pbml0aWFsVmFsdWVzIiwicmVzZXQiLCJfc2V0RGlydHkiLCJnZXRDb250cm9scyIsImZvckVhY2giLCJzIiwicmVxdWVzdFVwZGF0ZSIsIl9vblJlc2V0IiwicmVxdWVzdFZhbGlkYXRpb24iLCJjbGVhclRpbWVvdXQiLCJfdmFsaWRhdGVUaW1lb3V0Iiwic2V0VGltZW91dCIsInZhbGlkYXRlIiwiX3VwZGF0ZUFjdGlvbnMiLCJzdWJtaXQiLCJfb25TdWJtaXQiLCJ2YWxpZGF0b3JSZXN1bHRzIiwiaXNWYWxpZCIsIl9zZXRUb3VjaCIsInRvdWNoIiwiY29uZmlybSIsImlzVG91Y2giLCJwcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJfb25Db25maXJtUmVzZXQiLCJ0aGVuIiwiX29uQ29uZmlybUVkaXQiLCJfdXBkYXRlQ2hpbGRyZW4iLCJfZ2V0U3VibWl0QnRuIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJfZ2V0UmVzZXRCdG4iLCJfZGlzcGF0Y2hDaGFuZ2UiLCJfY2hhbmdlVGltZW91dCIsInRhcmdldCIsInZhbGlkYXRpb24iLCJkZXRhaWwiLCJjdXJyZW50VGFyZ2V0IiwidmFsdWUiLCJjb250cm9sIiwidHJpbSIsImxlbmd0aCIsInBhcnNlSW50IiwiaWQiLCJpbnRWYWx1ZSIsIk51bWJlciIsInZhbHVlT2YiLCJpc05hTiIsImtleXMiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJldmVudE5hbWUiLCJwZXJmb3JtVXBkYXRlIiwiX3JlbmRlckNvbnRyb2wiLCJrZXkiLCJpc1JlcXVpcmVkIiwicmVxdWlyZWQiLCJpbmNsdWRlcyIsImlzRGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9ldmFsdWF0ZUNvbmRpdGlvbiIsImlzSGlkZGVuIiwicHVzaCIsImlzUmVhZG9ubHkiLCJyZWFkT25seSIsImlzV3JpdGVPbmx5Iiwid3JpdGVPbmx5IiwiY29uZGl0aW9uS2V5IiwiY29uZGl0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiY29uc29sZSIsIndhcm4iLCJyZXN1bHQiLCJvcGVyYXRpb24iLCJvcGVyYXRvciIsIl9ldmFsdWF0ZU5vdEVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbiIsIl9ldmFsdWF0ZURlZkNvbmRpdGlvbiIsIm9wZXJhbmRzIiwibW9kZWxBdHRyaWJ1dGVzIiwibWFwIiwibW9kZWxBdHRyaWJ1dGUiLCJ0ZXN0VmFsdWUiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwiX3JlbmRlclBhcnQiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsImdldENvbnRyb2wiLCJ2YWxpZCIsImZpbHRlciIsImVycm9yIiwicHJvcGVydHkiLCJyZXBsYWNlIiwiY2FuU3VibWl0Iiwic3VibWl0QnRuIiwicmVtb3ZlQXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwicmVzZXRCdG4iLCJ3aXRoVmFsaWRhdGlvbiIsIl91cGRhdGVBY3Rpb25zVGltZW91dCIsInVwZGF0ZWQiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsIl9nZXRVcGRhdGVDb21wbGV0ZSIsImFsbCIsInVwZGF0ZUNvbXBsZXRlIiwicmVuZGVyIiwiY29udGFpbmVyIiwidGl0bGUiLCJjZW50ZXIiLCJzdHlsZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVCxFQUFxQkMsSUFBckIsRUFBMkJDLEdBQTNCLFFBQXNDLEtBQXRDO0FBQ0EsU0FBU0MsR0FBVCxFQUFjQyxHQUFkLEVBQW1CQyxHQUFuQixRQUE4QixhQUE5QjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsU0FBVCxFQUFvQkMsU0FBcEIsUUFBcUMsY0FBckM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsWUFBMUI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLGlCQUF0QjtBQUNBLE9BQU8sMEJBQVA7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxZQUFOLFNBQTJCWixVQUEzQixDQUFzQztBQUN0QixhQUFWYSxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUMsUUFBQUEsSUFB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TlosNkJBRE4sR0FZRSxFQTlDRyxpQkFBWDtBQWlERDs7QUFFZ0IsYUFBTitJLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0x2SixLQURLLEVBRUw7QUFDQVQsSUFBQUEsR0FBRywwaURBSEUsQ0FBUDtBQXVKRDs7QUEva0IwQztBQWtsQjdDaUssTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixnQkFBN0IsRUFBK0N6SixZQUEvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgZ2V0LCBzZXQsIGRlbCB9IGZyb20gJ29iamVjdC1wYXRoJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IGRlZXBDbG9uZSwgZGVlcEVxdWFsIH0gZnJvbSAnLi4vbGliL3V0aWxzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0L2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IFZhbGlkYXRvciB9IGZyb20gJ2pzb25zY2hlbWEnO1xuaW1wb3J0IHsgZW1wdHkgfSBmcm9tICcuLi9zdHlsZXMvZW1wdHknO1xuaW1wb3J0ICcuL2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wnO1xuXG4vKipcbiAqIFNjaGVtYSBmb3JtIGNvbXBvbmVudFxuICpcbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTpzdWJtaXQgLSBldmVudCB3aGVuIHVzZXIgc3VibWl0IHZhbGlkIGZvcm1cbiAqIEBmaXJlcyBndi1zY2hlbWEtZm9ybTplcnJvciAtIGV2ZW50IHdoZW4gdXNlciBzdWJtaXQgaW52YWxpZCBmb3JtXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06Y2hhbmdlIC0gZXZlbnQgd2hlbiB3aGVuIGZvcm0gY2hhbmdlXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06Y2FuY2VsIC0gZXZlbnQgd2hlbiB1c2VyIGNhbmNlbCBmb3JtXG4gKlxuICogQGF0dHIge09iamVjdH0gc2NoZW1hIC0gdGhlIHNjaGVtYSBmb3JtIGNvbmZpZ3VyYXRpb25cbiAqIEBhdHRyIHtPYmplY3R9IHZhbHVlcyAtIHRoZSB2YWx1ZXMgb2YgZmllbGRzXG4gKiBAYXR0ciB7T2JqZWN0fSBlcnJvcnMgLSB0aGUgbWFwIG9mIGVycm9ycyBieSBpbnB1dCBrZXlcbiAqIEBhdHRyIHtCb29sZWFufSB2YWxpZGF0ZSAtIHRvIGZvcmNlIHZhbGlkYXRpb24gb24gZmlyc3QgcmVuZGVyXG4gKiBAYXR0ciB7Qm9vbGVhbn0gcmVhZG9ubHkgLSB0cnVlIGlmIHJlYWRvbmx5XG4gKiBAYXR0ciB7Qm9vbGVhbn0gc2Nyb2xsYWJsZSAtIHVzZWZ1bCBmb3IgbWFraW5nIGNvbnRlbnQgc2Nyb2xsYWJsZSB3aXRoIGZpeGVkIGhlYWRlcnMgLyBmb290ZXJzXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlNjaGVtYUZvcm0gZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBlcnJvcnM6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICB2YWx1ZXM6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBzdWJtaXRMYWJlbDogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGhhc0Zvb3RlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoYXMtZm9vdGVyJyB9LFxuICAgICAgaGFzSGVhZGVyOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ2hhcy1oZWFkZXInIH0sXG4gICAgICBfY29uZmlybTogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIF92YWx1ZXM6IHsgdHlwZTogT2JqZWN0LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBkaXJ0eTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBoaWRlRGVwcmVjYXRlZDogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoaWRlLWRlcHJlY2F0ZWQnIH0sXG4gICAgICB2YWxpZGF0ZU9uUmVuZGVyOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ3ZhbGlkYXRlLW9uLXJlbmRlcicgfSxcbiAgICAgIF92YWxpZGF0b3JSZXN1bHRzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgX3RvdWNoOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHJlYWRvbmx5OiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHNjcm9sbGFibGU6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaGlkZURlcHJlY2F0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLl92YWx1ZXMgPSB7fTtcbiAgICB0aGlzLnN1Ym1pdExhYmVsID0gJ09rJztcbiAgICB0aGlzLmhhc0hlYWRlciA9IGZhbHNlO1xuICAgIHRoaXMuaGFzRm9vdGVyID0gZmFsc2U7XG4gICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcbiAgICB0aGlzLl92YWxpZGF0b3IgPSBuZXcgVmFsaWRhdG9yKCk7XG4gICAgdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyA9IHt9O1xuICAgIHRoaXMuX2lnbm9yZVByb3BlcnRpZXMgPSBbXTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w6ZGVmYXVsdC12YWx1ZScsIHRoaXMuX29uRGVmYXVsdFZhbHVlLmJpbmQodGhpcykpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcignZ3Ytc2NoZW1hLWZvcm0tY29udHJvbDpjaGFuZ2UnLCB0aGlzLl9vbkNoYW5nZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w6Y29udHJvbC1yZWFkeScsIHRoaXMuX29uQ29udHJvbFJlYWR5LmJpbmQodGhpcykpO1xuICB9XG5cbiAgc2V0IHZhbHVlcyh2YWx1ZXMpIHtcbiAgICBpZiAoIWRlZXBFcXVhbCh0aGlzLl92YWx1ZXMsIHZhbHVlcykpIHtcbiAgICAgIGlmICh2YWx1ZXMpIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlcyA9IHsgLi4udmFsdWVzIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9pbml0aWFsVmFsdWVzID0ge307XG4gICAgICB9XG4gICAgICB0aGlzLl92YWx1ZXMgPSBkZWVwQ2xvbmUodGhpcy5faW5pdGlhbFZhbHVlcyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZhbHVlcygpIHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWVzO1xuICB9XG5cbiAgcmVzZXQodmFsdWVzID0gbnVsbCkge1xuICAgIHRoaXMuX3ZhbHVlcyA9IGRlZXBDbG9uZSh2YWx1ZXMgfHwgdGhpcy5faW5pdGlhbFZhbHVlcyk7XG4gICAgdGhpcy5fdG91Y2ggPSBmYWxzZTtcbiAgICB0aGlzLl9zZXREaXJ0eShmYWxzZSk7XG4gICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgX29uUmVzZXQoKSB7XG4gICAgdGhpcy5yZXNldCgpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3Jlc2V0Jyk7XG4gIH1cblxuICByZXF1ZXN0VmFsaWRhdGlvbigpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdmFsaWRhdGVUaW1lb3V0KTtcbiAgICB0aGlzLl92YWxpZGF0ZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnMoKTtcbiAgICB9LCAzNTApO1xuICB9XG5cbiAgc3VibWl0KCkge1xuICAgIHRoaXMuX29uU3VibWl0KCk7XG4gIH1cblxuICBfb25TdWJtaXQoKSB7XG4gICAgY29uc3QgdmFsaWRhdG9yUmVzdWx0cyA9IHRoaXMudmFsaWRhdGUoKTtcbiAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZXMgPSBkZWVwQ2xvbmUodGhpcy5fdmFsdWVzKTtcbiAgICAgIHRoaXMuZGlydHkgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdzdWJtaXQnLCB7IHZhbHVlczogdGhpcy5fdmFsdWVzLCB2YWxpZGF0b3JSZXN1bHRzIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdlcnJvcicsIHsgdmFsdWVzOiB0aGlzLl92YWx1ZXMsIHZhbGlkYXRvclJlc3VsdHMgfSk7XG4gICAgfVxuICB9XG5cbiAgX3NldERpcnR5KGRpcnR5ID0gdHJ1ZSkge1xuICAgIHRoaXMuZGlydHkgPSAhIWRpcnR5O1xuICB9XG5cbiAgX3NldFRvdWNoKHRvdWNoID0gdHJ1ZSkge1xuICAgIHRoaXMuX3RvdWNoID0gISF0b3VjaDtcbiAgfVxuXG4gIGNvbmZpcm0oKSB7XG4gICAgaWYgKHRoaXMuaXNUb3VjaCgpKSB7XG4gICAgICBpZiAodGhpcy5fY29uZmlybSAmJiB0aGlzLl9jb25maXJtLnByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpcm0ucHJvbWlzZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAodGhpcy5fY29uZmlybSA9IHsgcmVzb2x2ZSwgcmVqZWN0IH0pKTtcbiAgICAgIHRoaXMuX2NvbmZpcm0ucHJvbWlzZSA9IHByb21pc2U7XG4gICAgICByZXR1cm4gcHJvbWlzZTtcbiAgICB9XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgX29uQ29uZmlybVJlc2V0KCkge1xuICAgIGNvbnN0IHsgcmVzb2x2ZSB9ID0gdGhpcy5fY29uZmlybTtcbiAgICB0aGlzLl9jb25maXJtID0gbnVsbDtcbiAgICB0aGlzLl9vblJlc2V0KCk7XG4gICAgdGhpcy5yZXF1ZXN0VXBkYXRlKCkudGhlbigoKSA9PiB7XG4gICAgICByZXNvbHZlKHRoaXMpO1xuICAgIH0pO1xuICB9XG5cbiAgX29uQ29uZmlybUVkaXQoKSB7XG4gICAgdGhpcy5fY29uZmlybS5yZWplY3QodGhpcyk7XG4gICAgdGhpcy5fY29uZmlybSA9IG51bGw7XG4gICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4odGhpcy52YWxpZGF0ZU9uUmVuZGVyKTtcbiAgfVxuXG4gIF9nZXRTdWJtaXRCdG4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjc3VibWl0Jyk7XG4gIH1cblxuICBfZ2V0UmVzZXRCdG4oKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcjcmVzZXQnKTtcbiAgfVxuXG4gIF9kaXNwYXRjaENoYW5nZSgpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fY2hhbmdlVGltZW91dCk7XG4gICAgdGhpcy5fY2hhbmdlVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnY2hhbmdlJywgeyB0YXJnZXQ6IHRoaXMsIHZhbHVlczogdGhpcy5fdmFsdWVzLCB2YWxpZGF0aW9uOiB0aGlzLl92YWxpZGF0b3JSZXN1bHRzIH0pO1xuICAgIH0sIDUwKTtcbiAgfVxuXG4gIF9vbkRlZmF1bHRWYWx1ZSh7IGRldGFpbDogeyBjdXJyZW50VGFyZ2V0LCB2YWx1ZSwgY29udHJvbCB9IH0pIHtcbiAgICBpZiAoY29udHJvbC50eXBlID09PSAnaW50ZWdlcicgJiYgdmFsdWUgIT0gbnVsbCAmJiAoKHZhbHVlLnRyaW0gJiYgdmFsdWUubGVuZ3RoID4gMCkgfHwgdmFsdWUubGVuZ3RoID4gMCkpIHtcbiAgICAgIHZhbHVlID0gcGFyc2VJbnQodmFsdWUsIDEwKTtcbiAgICB9XG4gICAgc2V0KHRoaXMuX3ZhbHVlcywgY3VycmVudFRhcmdldC5pZCwgdmFsdWUpO1xuICB9XG5cbiAgX29uQ2hhbmdlKHsgZGV0YWlsOiB7IGN1cnJlbnRUYXJnZXQsIHZhbHVlLCBjb250cm9sIH0gfSkge1xuICAgIHRoaXMuX3NldFRvdWNoKHRydWUpO1xuICAgIGlmIChjb250cm9sLnR5cGUgPT09ICdpbnRlZ2VyJykge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBpbnRWYWx1ZSA9IE51bWJlcih2YWx1ZSkudmFsdWVPZigpO1xuICAgICAgICBpZiAoIWlzTmFOKGludFZhbHVlKSkge1xuICAgICAgICAgIHZhbHVlID0gaW50VmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdhcnJheScgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHZhbHVlID0gbnVsbDtcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgIGRlbCh0aGlzLl92YWx1ZXMsIGN1cnJlbnRUYXJnZXQuaWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXQodGhpcy5fdmFsdWVzLCBjdXJyZW50VGFyZ2V0LmlkLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyA9IHRoaXMudmFsaWRhdGUoKTtcbiAgICB0aGlzLmRpcnR5ID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVBY3Rpb25zKCk7XG4gICAgdGhpcy5fZGlzcGF0Y2hDaGFuZ2UoKTtcbiAgfVxuXG4gIF9vbkNvbnRyb2xSZWFkeShlKSB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCBlLmRldGFpbC5ldmVudE5hbWUsIGUuZGV0YWlsKTtcbiAgfVxuXG4gIGFzeW5jIHBlcmZvcm1VcGRhdGUoKSB7XG4gICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHMucmVxdWVzdFVwZGF0ZSgpO1xuICAgIH0pO1xuICAgIHN1cGVyLnBlcmZvcm1VcGRhdGUoKTtcbiAgfVxuXG4gIF9yZW5kZXJDb250cm9sKGtleSkge1xuICAgIC8vIFRoaXMgaXMgcmVxdWlyZSB0byBjbGVhbiBjYWNoZSBvZiA8Z3Ytc2NoZW1hLWZvcm0tY29udHJvbD5cbiAgICBjb25zdCBjb250cm9sID0geyAuLi50aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW2tleV0gfTtcbiAgICBjb25zdCBpc1JlcXVpcmVkID0gdGhpcy5zY2hlbWEucmVxdWlyZWQgJiYgdGhpcy5zY2hlbWEucmVxdWlyZWQuaW5jbHVkZXMoa2V5KTtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gKHRoaXMuc2NoZW1hLmRpc2FibGVkICYmIHRoaXMuc2NoZW1hLmRpc2FibGVkLmluY2x1ZGVzKGtleSkpIHx8IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsICdkaXNhYmxlZCcpO1xuICAgIGNvbnN0IGlzSGlkZGVuID0gdGhpcy5fZXZhbHVhdGVDb25kaXRpb24oY29udHJvbCwgJ2hpZGRlbicpO1xuICAgIGlmIChpc0hpZGRlbikge1xuICAgICAgdGhpcy5faWdub3JlUHJvcGVydGllcy5wdXNoKGtleSk7XG4gICAgfVxuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSB0aGlzLnJlYWRvbmx5IHx8IGNvbnRyb2wucmVhZE9ubHkgPT09IHRydWU7XG4gICAgY29uc3QgaXNXcml0ZU9ubHkgPSBjb250cm9sLndyaXRlT25seSA9PT0gdHJ1ZTtcbiAgICBjb25zdCB2YWx1ZSA9IGdldCh0aGlzLl92YWx1ZXMsIGtleSk7XG4gICAgcmV0dXJuIGh0bWxgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2xcbiAgICAgIC5pZD1cIiR7a2V5fVwiXG4gICAgICAuZXJyb3JzPVwiJHt0aGlzLmVycm9yc31cIlxuICAgICAgLmNvbnRyb2w9XCIke2NvbnRyb2x9XCJcbiAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgLnZhbHVlPVwiJHt2YWx1ZX1cIlxuICAgICAgP3JlYWRvbmx5PVwiJHtpc1JlYWRvbmx5fVwiXG4gICAgICA/d3JpdGVvbmx5PVwiJHtpc1dyaXRlT25seX1cIlxuICAgICAgP3JlcXVpcmVkPVwiJHtpc1JlcXVpcmVkfVwiXG4gICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgID9oaWRkZW49XCIke2lzSGlkZGVufVwiXG4gICAgPjwvZ3Ytc2NoZW1hLWZvcm0tY29udHJvbD5gO1xuICB9XG5cbiAgX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsIGNvbmRpdGlvbktleSkge1xuICAgIGlmIChjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10gPT0gbnVsbCB8fCBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ11bY29uZGl0aW9uS2V5XSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGNvbmRpdGlvbiA9IGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXVtjb25kaXRpb25LZXldO1xuICAgIGlmICh0eXBlb2YgY29uZGl0aW9uID09PSAnYm9vbGVhbicpIHtcbiAgICAgIHJldHVybiBjb25kaXRpb247XG4gICAgfVxuICAgIGlmICghQXJyYXkuaXNBcnJheShjb25kaXRpb24pKSB7XG4gICAgICAvLyBjb25kaXRpb24gaXNuJ3QgYW4gYXJyYXksIGlnbm9yZSB0aGUgY29uZGl0aW9uXG4gICAgICBjb25zb2xlLndhcm4oYCcke2NvbmRpdGlvbktleX0nIGF0dHJpYnV0ZSBvZiAneC1zY2hlbWEtZm9ybScgc2hvdWxkIGJlIGFuIGFycmF5YCk7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgbGV0IHJlc3VsdCA9IHRydWU7XG4gICAgZm9yIChjb25zdCBvcGVyYXRpb24gb2YgY29uZGl0aW9uKSB7XG4gICAgICAvLyBvcGVyYXRpb24gb25seSBoYXZlIG9uZSBvcGVyYXRvciB3aXRoIGEgc2luZ2xlIG9iamVjdCBjb250YWluaW5nIG9wZXJhbmQgdmFsdWVzXG4gICAgICBjb25zdCBvcGVyYXRvciA9IE9iamVjdC5rZXlzKG9wZXJhdGlvbilbMF07XG5cbiAgICAgIHN3aXRjaCAob3BlcmF0b3IpIHtcbiAgICAgICAgY2FzZSAnJG5lcSc6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlTm90RXF1YWxzQ29uZGl0aW9uKG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRlcSc6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uKG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRub2RlZic6XG4gICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHRoaXMuX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uKG9wZXJhdGlvbik7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJyRkZWYnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZURlZkNvbmRpdGlvbihvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgb3BlcmF0b3IgJyR7b3BlcmF0b3J9JyBvbiBkaXNhYmxlIGNvbmRpdGlvbmApO1xuICAgICAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBfZXZhbHVhdGVOb3RFcXVhbHNDb25kaXRpb24oY29uZGl0aW9uKSB7XG4gICAgcmV0dXJuICF0aGlzLl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbihjb25kaXRpb24pO1xuICB9XG5cbiAgX2V2YWx1YXRlRXF1YWxzQ29uZGl0aW9uKGNvbmRpdGlvbikge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKVswXTtcbiAgICBjb25zdCBvcGVyYW5kcyA9IGNvbmRpdGlvbltvcGVyYXRvcl07XG4gICAgY29uc3QgbW9kZWxBdHRyaWJ1dGVzID0gT2JqZWN0LmtleXMob3BlcmFuZHMpO1xuICAgIHJldHVybiBtb2RlbEF0dHJpYnV0ZXNcbiAgICAgIC5tYXAoKG1vZGVsQXR0cmlidXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHRlc3RWYWx1ZSA9IG9wZXJhbmRzW21vZGVsQXR0cmlidXRlXTtcbiAgICAgICAgcmV0dXJuIGdldCh0aGlzLl92YWx1ZXMsIG1vZGVsQXR0cmlidXRlKSA9PT0gdGVzdFZhbHVlO1xuICAgICAgfSlcbiAgICAgIC5yZWR1Y2UoKGFjYywgY3VycmVudCkgPT4gYWNjIHx8IGN1cnJlbnQpO1xuICB9XG5cbiAgX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uKGNvbmRpdGlvbikge1xuICAgIGNvbnN0IG9wZXJhdG9yID0gT2JqZWN0LmtleXMoY29uZGl0aW9uKVswXTtcbiAgICBjb25zdCBtb2RlbEF0dHJpYnV0ZSA9IGNvbmRpdGlvbltvcGVyYXRvcl07XG4gICAgcmV0dXJuIGdldCh0aGlzLl92YWx1ZXMsIG1vZGVsQXR0cmlidXRlKSA9PT0gdW5kZWZpbmVkIHx8IGdldCh0aGlzLl92YWx1ZXMsIG1vZGVsQXR0cmlidXRlKSA9PT0gbnVsbDtcbiAgfVxuXG4gIF9ldmFsdWF0ZURlZkNvbmRpdGlvbihjb25kaXRpb24pIHtcbiAgICByZXR1cm4gIXRoaXMuX2V2YWx1YXRlTm90RGVmQ29uZGl0aW9uKGNvbmRpdGlvbik7XG4gIH1cblxuICBfcmVuZGVyUGFydCgpIHtcbiAgICBpZiAodGhpcy5fY29uZmlybSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImNvbmZpcm0tYm94XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlcnJvclwiPlRoZSBjb25maWd1cmF0aW9uIGlzIG5vdCB2YWxpZCBhbmQgY2Fubm90IGJlIHNhdmVkLjwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29uZmlybS1ib3hfYWN0aW9uc1wiPlxuICAgICAgICAgIDxndi1idXR0b24gQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Db25maXJtUmVzZXR9XCIgb3V0bGluZWQgaWNvbj1cImdlbmVyYWw6dXBkYXRlXCIgZGFuZ2VyPkxvc2UgY2hhbmdlczwvZ3YtYnV0dG9uPlxuICAgICAgICAgIDxndi1idXR0b24gQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25Db25maXJtRWRpdH1cIiBpY29uPVwiZGVzaWduOmVkaXRcIj5FZGl0PC9ndi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+YDtcbiAgICB9XG4gICAgY29uc3Qga2V5cyA9IHRoaXMuc2NoZW1hLnByb3BlcnRpZXMgPyBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzKSA6IFtdO1xuICAgIHRoaXMuX2lnbm9yZVByb3BlcnRpZXMgPSBbXTtcbiAgICByZXR1cm4gaHRtbGAke2tleXMubWFwKChrZXkpID0+IHRoaXMuX3JlbmRlckNvbnRyb2woa2V5KSl9YDtcbiAgfVxuXG4gIGdldENvbnRyb2xzKCkge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sJykpO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIGlmICh0aGlzLnNjaGVtYSkge1xuICAgICAgdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyA9IHRoaXMuX3ZhbGlkYXRvci52YWxpZGF0ZSh0aGlzLl92YWx1ZXMsIHRoaXMuc2NoZW1hKTtcbiAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICB0aGlzLmVycm9ycyA9IFtdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSB0aGlzLl92YWxpZGF0b3JSZXN1bHRzLmVycm9ycztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHM7XG4gIH1cblxuICBpc1ZhbGlkKCkge1xuICAgIGlmICh0aGlzLl92YWxpZGF0b3JSZXN1bHRzLnZhbGlkKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvcnMgPSAodGhpcy5fdmFsaWRhdG9yUmVzdWx0cy5lcnJvcnMgfHwgW10pLmZpbHRlcigoZXJyb3IpID0+IHtcbiAgICAgIHJldHVybiAhdGhpcy5faWdub3JlUHJvcGVydGllcy5pbmNsdWRlcyhlcnJvci5wcm9wZXJ0eS5yZXBsYWNlKCdpbnN0YW5jZS4nLCAnJykpO1xuICAgIH0pO1xuICAgIHJldHVybiBlcnJvcnMubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgaXNUb3VjaCgpIHtcbiAgICByZXR1cm4gdGhpcy5fdG91Y2ggfHwgKHRoaXMuZGlydHkgJiYgdGhpcy52YWxpZGF0ZU9uUmVuZGVyKTtcbiAgfVxuXG4gIGNhblN1Ym1pdCgpIHtcbiAgICByZXR1cm4gdGhpcy5pc1RvdWNoKCkgJiYgdGhpcy5pc1ZhbGlkKCk7XG4gIH1cblxuICBfdXBkYXRlQWN0aW9ucygpIHtcbiAgICBjb25zdCBzdWJtaXRCdG4gPSB0aGlzLl9nZXRTdWJtaXRCdG4oKTtcbiAgICBpZiAoc3VibWl0QnRuICE9IG51bGwpIHtcbiAgICAgIGlmICh0aGlzLmNhblN1Ym1pdCgpKSB7XG4gICAgICAgIHRoaXMuX2dldFN1Ym1pdEJ0bigpLnJlbW92ZUF0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2dldFN1Ym1pdEJ0bigpLnNldEF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgcmVzZXRCdG4gPSB0aGlzLl9nZXRSZXNldEJ0bigpO1xuICAgIGlmIChyZXNldEJ0biAhPSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5kaXJ0eSkge1xuICAgICAgICByZXNldEJ0bi5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNldEJ0bi5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX3VwZGF0ZUNoaWxkcmVuKHdpdGhWYWxpZGF0aW9uKSB7XG4gICAgaWYgKHdpdGhWYWxpZGF0aW9uKSB7XG4gICAgICB0aGlzLl92YWxpZGF0b3JSZXN1bHRzID0ge307XG4gICAgICB0aGlzLmVycm9ycyA9IG51bGw7XG4gICAgICB0aGlzLnJlcXVlc3RWYWxpZGF0aW9uKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUFjdGlvbnNUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLl91cGRhdGVBY3Rpb25zKCksIDApO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlQWN0aW9uc1RpbWVvdXQpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ192YWx1ZXMnKSkge1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC52YWx1ZSA9IGdldCh0aGlzLl92YWx1ZXMsIGNvbnRyb2wuaWQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuKHRoaXMudmFsaWRhdGVPblJlbmRlciAmJiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdfdmFsdWVzJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzY2hlbWEnKSkpO1xuICB9XG5cbiAgYXN5bmMgX2dldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGF3YWl0IHN1cGVyLl9nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZ2V0Q29udHJvbHMoKS5tYXAoKGUpID0+IGUudXBkYXRlQ29tcGxldGUpKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICByZXR1cm4gaHRtbGA8Zm9ybSBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBzY3JvbGxhYmxlOiB0aGlzLnNjcm9sbGFibGUgfSl9XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IGNvbnRhaW5lcjogdHJ1ZSwgY29uZmlybTogdGhpcy5fY29uZmlybSB9KX1cIj5cbiAgICAgICAgJHt0aGlzLmhhc0hlYWRlciA9PT0gdHJ1ZVxuICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgdGl0bGU6IHRydWUsIGNlbnRlcjogdGhpcy5oYXNIZWFkZXIgJiYgIXRoaXMuaGFzRm9vdGVyIH0pfVwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCI+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgICAgICAgICAgICAgICA8c2xvdCBuYW1lPVwiaGVhZGVyLWxlZnRcIj48L3Nsb3Q+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgJHt0aGlzLnJlYWRvbmx5ID09PSB0cnVlIHx8IHRoaXMuaGFzRm9vdGVyID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICA6IGh0bWxgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBvdXRsaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVzZXR9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb249XCJnZW5lcmFsOnVwZGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlJlc2V0XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc21hbGxcbiAgICAgICAgICAgICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uU3VibWl0fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiY29kZTpjaGVja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAudGl0bGU9XCIke3RoaXMuc3VibWl0TGFiZWx9XCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiBgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6ICcnfVxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPiR7dGhpcy5zY2hlbWEgIT0gbnVsbCA/IHRoaXMuX3JlbmRlclBhcnQoKSA6IGh0bWxgYH08L2Rpdj5cbiAgICAgICAgJHt0aGlzLmhhc0Zvb3RlciA9PT0gdHJ1ZSAmJiB0aGlzLnJlYWRvbmx5ICE9PSB0cnVlXG4gICAgICAgICAgPyBodG1sYFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxlZnRcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICAgICAgICAgICAgICAgIDxndi1idXR0b24gaWQ9XCJyZXNldFwiIG91dGxpbmVkIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVzZXR9XCIgaWNvbj1cImdlbmVyYWw6dXBkYXRlXCIgdGl0bGU9XCJSZXNldFwiPlJlc2V0PC9ndi1idXR0b24+XG4gICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIGlkPVwic3VibWl0XCIgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25TdWJtaXR9XCIgaWNvbj1cImNvZGU6Y2hlY2tcIiAudGl0bGU9XCIke3RoaXMuc3VibWl0TGFiZWx9XCJcbiAgICAgICAgICAgICAgICAgICAgPiR7dGhpcy5zdWJtaXRMYWJlbH08L2d2LWJ1dHRvblxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIGBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgZW1wdHksXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgbWFyZ2luOiAwLjJyZW07XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuY29udGFpbmVyIHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFmYWZhO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgIC8qIGZvciBGaXJlZm94ICovXG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIsXG4gICAgICAgIC5mb290ZXIsXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQge1xuICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgLyogZm9yIEZpcmVmb3ggKi9cbiAgICAgICAgICBtaW4taGVpZ2h0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRlbnQgPiBndi1zY2hlbWEtZm9ybS1jb250cm9sIHtcbiAgICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmNvbnRlbnQge1xuICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIC5jb250ZW50ID4gZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA3NzVweDtcbiAgICAgICAgICB3aWR0aDogOTUlO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlcixcbiAgICAgICAgLmZvb3RlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDQ1cHg7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAyNnB4O1xuICAgICAgICAgIC0tZ3YtaWNvbi0tYzogI2JmYmZiZjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHBhZGRpbmc6IDAgMC41cmVtO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvb3RlciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0uc2Nyb2xsYWJsZSAuZm9vdGVyIHtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5mb290ZXIgLnJpZ2h0IHtcbiAgICAgICAgICBtYXgtd2lkdGg6IDQwMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciAubGVmdCxcbiAgICAgICAgLmZvb3RlciAubGVmdCxcbiAgICAgICAgLmhlYWRlciAucmlnaHQsXG4gICAgICAgIC5mb290ZXIgLnJpZ2h0IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlIHtcbiAgICAgICAgICBjb2xvcjogIzI4NDQ0ZjtcbiAgICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmhlYWRlciAudGl0bGUuY2VudGVyIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0tYm94IHtcbiAgICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZzogMXJlbTtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuY29uZmlybS1ib3hfYWN0aW9ucyB7XG4gICAgICAgICAgcGFkZGluZzogMXJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0gLmhlYWRlciAubGVmdCxcbiAgICAgICAgLmNvbmZpcm0gLmhlYWRlciAucmlnaHQsXG4gICAgICAgIC5jb25maXJtIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5jb25maXJtIC5mb290ZXIgLnJpZ2h0IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0nLCBHdlNjaGVtYUZvcm0pO1xuIl19
534
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJMaXRFbGVtZW50IiwiaHRtbCIsImNzcyIsImdldCIsInNldCIsImRlbCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJkZWVwQ2xvbmUiLCJkZWVwRXF1YWwiLCJjbGFzc01hcCIsIlZhbGlkYXRvciIsImVtcHR5IiwiR3ZTY2hlbWFGb3JtIiwicHJvcGVydGllcyIsInNjaGVtYSIsInR5cGUiLCJPYmplY3QiLCJlcnJvcnMiLCJ2YWx1ZXMiLCJzdWJtaXRMYWJlbCIsIlN0cmluZyIsImhhc0Zvb3RlciIsIkJvb2xlYW4iLCJhdHRyaWJ1dGUiLCJoYXNIZWFkZXIiLCJfY29uZmlybSIsIl92YWx1ZXMiLCJkaXJ0eSIsInJlZmxlY3QiLCJoaWRlRGVwcmVjYXRlZCIsInZhbGlkYXRlT25SZW5kZXIiLCJfdmFsaWRhdG9yUmVzdWx0cyIsInNrZWxldG9uIiwiX3RvdWNoIiwicmVhZG9ubHkiLCJzY3JvbGxhYmxlIiwiY29uc3RydWN0b3IiLCJfdmFsaWRhdG9yIiwiX2lnbm9yZVByb3BlcnRpZXMiLCJhZGRFdmVudExpc3RlbmVyIiwiX29uRGVmYXVsdFZhbHVlIiwiYmluZCIsIl9vbkNoYW5nZSIsIl9vbkNvbnRyb2xSZWFkeSIsIl9pbml0aWFsVmFsdWVzIiwicmVzZXQiLCJfc2V0RGlydHkiLCJnZXRDb250cm9scyIsImZvckVhY2giLCJzIiwicmVxdWVzdFVwZGF0ZSIsIl9vblJlc2V0IiwicmVxdWVzdFZhbGlkYXRpb24iLCJjbGVhclRpbWVvdXQiLCJfdmFsaWRhdGVUaW1lb3V0Iiwic2V0VGltZW91dCIsInZhbGlkYXRlIiwiX3VwZGF0ZUFjdGlvbnMiLCJzdWJtaXQiLCJfb25TdWJtaXQiLCJ2YWxpZGF0b3JSZXN1bHRzIiwiaXNWYWxpZCIsIl9zZXRUb3VjaCIsInRvdWNoIiwiY29uZmlybSIsImlzVG91Y2giLCJwcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJfb25Db25maXJtUmVzZXQiLCJ0aGVuIiwiX29uQ29uZmlybUVkaXQiLCJfdXBkYXRlQ2hpbGRyZW4iLCJfZ2V0U3VibWl0QnRuIiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJfZ2V0UmVzZXRCdG4iLCJfZGlzcGF0Y2hDaGFuZ2UiLCJfY2hhbmdlVGltZW91dCIsInRhcmdldCIsInZhbGlkYXRpb24iLCJkZXRhaWwiLCJjdXJyZW50VGFyZ2V0IiwidmFsdWUiLCJjb250cm9sIiwidHJpbSIsImxlbmd0aCIsInBhcnNlSW50IiwiaWQiLCJpbnRWYWx1ZSIsIk51bWJlciIsInZhbHVlT2YiLCJpc05hTiIsImtleXMiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwicHJldmVudERlZmF1bHQiLCJldmVudE5hbWUiLCJwZXJmb3JtVXBkYXRlIiwiX3JlbmRlckNvbnRyb2wiLCJrZXkiLCJpc1JlcXVpcmVkIiwicmVxdWlyZWQiLCJpbmNsdWRlcyIsImlzRGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9ldmFsdWF0ZUNvbmRpdGlvbiIsImlzSGlkZGVuIiwicHVzaCIsImlzUmVhZG9ubHkiLCJyZWFkT25seSIsImlzV3JpdGVPbmx5Iiwid3JpdGVPbmx5IiwiY29uZGl0aW9uS2V5IiwiY29uZGl0aW9uIiwiQXJyYXkiLCJpc0FycmF5IiwiY29uc29sZSIsIndhcm4iLCJyZXN1bHQiLCJvcGVyYXRpb24iLCJvcGVyYXRvciIsIl9ldmFsdWF0ZU5vdEVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbiIsIl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbiIsIl9ldmFsdWF0ZURlZkNvbmRpdGlvbiIsIm9wZXJhbmRzIiwibW9kZWxBdHRyaWJ1dGVzIiwibWFwIiwibW9kZWxBdHRyaWJ1dGUiLCJ0ZXN0VmFsdWUiLCJyZWR1Y2UiLCJhY2MiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwiX3JlbmRlclBhcnQiLCJmcm9tIiwicXVlcnlTZWxlY3RvckFsbCIsImdldENvbnRyb2wiLCJ2YWxpZCIsImZpbHRlciIsImVycm9yIiwicHJvcGVydHkiLCJyZXBsYWNlIiwiY2FuU3VibWl0Iiwic3VibWl0QnRuIiwicmVtb3ZlQXR0cmlidXRlIiwic2V0QXR0cmlidXRlIiwicmVzZXRCdG4iLCJ3aXRoVmFsaWRhdGlvbiIsIl91cGRhdGVBY3Rpb25zVGltZW91dCIsInVwZGF0ZWQiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsIl9nZXRVcGRhdGVDb21wbGV0ZSIsImFsbCIsInVwZGF0ZUNvbXBsZXRlIiwicmVuZGVyIiwiY29udGFpbmVyIiwidGl0bGUiLCJjZW50ZXIiLCJzdHlsZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsVUFBVCxFQUFxQkMsSUFBckIsRUFBMkJDLEdBQTNCLFFBQXNDLGFBQXRDO0FBQ0EsU0FBU0MsR0FBVCxFQUFjQyxHQUFkLEVBQW1CQyxHQUFuQixRQUE4QixhQUE5QjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsU0FBVCxFQUFvQkMsU0FBcEIsUUFBcUMsY0FBckM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLCtCQUF6QjtBQUNBLFNBQVNDLFNBQVQsUUFBMEIsWUFBMUI7QUFDQSxTQUFTQyxLQUFULFFBQXNCLGlCQUF0QjtBQUNBLE9BQU8sMEJBQVA7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxZQUFOLFNBQTJCWixVQUEzQixDQUFzQztBQUN0QixhQUFWYSxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BREg7QUFFTEMsTUFBQUEsTUFBTSxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUZIO0FBR0xFLE1BQUFBLE1BQU0sRUFBRTtBQUFFSCxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FISDtBQUlMRyxNQUFBQSxXQUFXLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFSztBQUFSLE9BSlI7QUFLTEMsTUFBQUEsU0FBUyxFQUFFO0FBQUVOLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQkMsUUFBQUEsU0FBUyxFQUFFO0FBQTVCLE9BTE47QUFNTEMsTUFBQUEsU0FBUyxFQUFFO0FBQUVULFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQkMsUUFBQUEsU0FBUyxFQUFFO0FBQTVCLE9BTk47QUFPTEUsTUFBQUEsUUFBUSxFQUFFO0FBQUVWLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQVBMO0FBUUxVLE1BQUFBLE9BQU8sRUFBRTtBQUFFWCxRQUFBQSxJQUFJLEVBQUVDLE1BQVI7QUFBZ0JPLFFBQUFBLFNBQVMsRUFBRTtBQUEzQixPQVJKO0FBU0xJLE1BQUFBLEtBQUssRUFBRTtBQUFFWixRQUFBQSxJQUFJLEVBQUVPLE9BQVI7QUFBaUJNLFFBQUFBLE9BQU8sRUFBRTtBQUExQixPQVRGO0FBVUxDLE1BQUFBLGNBQWMsRUFBRTtBQUFFZCxRQUFBQSxJQUFJLEVBQUVPLE9BQVI7QUFBaUJDLFFBQUFBLFNBQVMsRUFBRTtBQUE1QixPQVZYO0FBV0xPLE1BQUFBLGdCQUFnQixFQUFFO0FBQUVmLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQkMsUUFBQUEsU0FBUyxFQUFFO0FBQTVCLE9BWGI7QUFZTFEsTUFBQUEsaUJBQWlCLEVBQUU7QUFBRWhCLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQVpkO0FBYUxnQixNQUFBQSxRQUFRLEVBQUU7QUFBRWpCLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQk0sUUFBQUEsT0FBTyxFQUFFO0FBQTFCLE9BYkw7QUFjTEssTUFBQUEsTUFBTSxFQUFFO0FBQUVsQixRQUFBQSxJQUFJLEVBQUVPO0FBQVIsT0FkSDtBQWVMWSxNQUFBQSxRQUFRLEVBQUU7QUFBRW5CLFFBQUFBLElBQUksRUFBRU8sT0FBUjtBQUFpQk0sUUFBQUEsT0FBTyxFQUFFO0FBQTFCLE9BZkw7QUFnQkxPLE1BQUFBLFVBQVUsRUFBRTtBQUFFcEIsUUFBQUEsSUFBSSxFQUFFTyxPQUFSO0FBQWlCTSxRQUFBQSxPQUFPLEVBQUU7QUFBMUI7QUFoQlAsS0FBUDtBQWtCRDs7QUFFRFEsRUFBQUEsV0FBVyxHQUFHO0FBQ1o7QUFDQSxTQUFLUCxjQUFMLEdBQXNCLEtBQXRCO0FBQ0EsU0FBS0gsT0FBTCxHQUFlLEVBQWY7QUFDQSxTQUFLUCxXQUFMLEdBQW1CLElBQW5CO0FBQ0EsU0FBS0ssU0FBTCxHQUFpQixLQUFqQjtBQUNBLFNBQUtILFNBQUwsR0FBaUIsS0FBakI7QUFDQSxTQUFLWSxNQUFMLEdBQWMsS0FBZDtBQUNBLFNBQUtJLFVBQUwsR0FBa0IsSUFBSTNCLFNBQUosRUFBbEI7QUFDQSxTQUFLcUIsaUJBQUwsR0FBeUIsRUFBekI7QUFDQSxTQUFLTyxpQkFBTCxHQUF5QixFQUF6QjtBQUNBLFNBQUtDLGdCQUFMLENBQXNCLHNDQUF0QixFQUE4RCxLQUFLQyxlQUFMLENBQXFCQyxJQUFyQixDQUEwQixJQUExQixDQUE5RDtBQUNBLFNBQUtGLGdCQUFMLENBQXNCLCtCQUF0QixFQUF1RCxLQUFLRyxTQUFMLENBQWVELElBQWYsQ0FBb0IsSUFBcEIsQ0FBdkQ7QUFDQSxTQUFLRixnQkFBTCxDQUFzQixzQ0FBdEIsRUFBOEQsS0FBS0ksZUFBTCxDQUFxQkYsSUFBckIsQ0FBMEIsSUFBMUIsQ0FBOUQ7QUFDRDs7QUFFUyxNQUFOdkIsTUFBTSxDQUFDQSxNQUFELEVBQVM7QUFDakIsUUFBSSxDQUFDVixTQUFTLENBQUMsS0FBS2tCLE9BQU4sRUFBZVIsTUFBZixDQUFkLEVBQXNDO0FBQ3BDLFVBQUlBLE1BQUosRUFBWTtBQUNWLGFBQUswQixjQUFMLEdBQXNCLEVBQUUsR0FBRzFCO0FBQUwsU0FBdEI7QUFDRCxPQUZELE1BRU87QUFDTCxhQUFLMEIsY0FBTCxHQUFzQixFQUF0QjtBQUNEOztBQUNELFdBQUtsQixPQUFMLEdBQWVuQixTQUFTLENBQUMsS0FBS3FDLGNBQU4sQ0FBeEI7QUFDRDtBQUNGOztBQUVTLE1BQU4xQixNQUFNLEdBQUc7QUFDWCxXQUFPLEtBQUtRLE9BQVo7QUFDRDs7QUFFRG1CLEVBQUFBLEtBQUssQ0FBQzNCLE1BQU0sR0FBRyxJQUFWLEVBQWdCO0FBQ25CLFNBQUtRLE9BQUwsR0FBZW5CLFNBQVMsQ0FBQ1csTUFBTSxJQUFJLEtBQUswQixjQUFoQixDQUF4QjtBQUNBLFNBQUtYLE1BQUwsR0FBYyxLQUFkOztBQUNBLFNBQUthLFNBQUwsQ0FBZSxLQUFmOztBQUNBLFNBQUtDLFdBQUwsR0FBbUJDLE9BQW5CLENBQTRCQyxDQUFELElBQU87QUFDaENBLE1BQUFBLENBQUMsQ0FBQ0MsYUFBRjtBQUNELEtBRkQ7QUFHRDs7QUFFREMsRUFBQUEsUUFBUSxHQUFHO0FBQ1QsU0FBS04sS0FBTDtBQUNBdkMsSUFBQUEsbUJBQW1CLENBQUMsSUFBRCxFQUFPLE9BQVAsQ0FBbkI7QUFDRDs7QUFFRDhDLEVBQUFBLGlCQUFpQixHQUFHO0FBQ2xCQyxJQUFBQSxZQUFZLENBQUMsS0FBS0MsZ0JBQU4sQ0FBWjtBQUNBLFNBQUtBLGdCQUFMLEdBQXdCQyxVQUFVLENBQUMsTUFBTTtBQUN2QyxXQUFLQyxRQUFMOztBQUNBLFdBQUtDLGNBQUw7QUFDRCxLQUhpQyxFQUcvQixHQUgrQixDQUFsQztBQUlEOztBQUVEQyxFQUFBQSxNQUFNLEdBQUc7QUFDUCxTQUFLQyxTQUFMO0FBQ0Q7O0FBRURBLEVBQUFBLFNBQVMsR0FBRztBQUNWLFVBQU1DLGdCQUFnQixHQUFHLEtBQUtKLFFBQUwsRUFBekI7O0FBQ0EsUUFBSSxLQUFLSyxPQUFMLEVBQUosRUFBb0I7QUFDbEIsV0FBS2pCLGNBQUwsR0FBc0JyQyxTQUFTLENBQUMsS0FBS21CLE9BQU4sQ0FBL0I7QUFDQSxXQUFLQyxLQUFMLEdBQWEsS0FBYjtBQUNBLFdBQUtNLE1BQUwsR0FBYyxLQUFkO0FBQ0EzQixNQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sUUFBUCxFQUFpQjtBQUFFWSxRQUFBQSxNQUFNLEVBQUUsS0FBS1EsT0FBZjtBQUF3QmtDLFFBQUFBO0FBQXhCLE9BQWpCLENBQW5CO0FBQ0QsS0FMRCxNQUtPO0FBQ0x0RCxNQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sT0FBUCxFQUFnQjtBQUFFWSxRQUFBQSxNQUFNLEVBQUUsS0FBS1EsT0FBZjtBQUF3QmtDLFFBQUFBO0FBQXhCLE9BQWhCLENBQW5CO0FBQ0Q7QUFDRjs7QUFFRGQsRUFBQUEsU0FBUyxDQUFDbkIsS0FBSyxHQUFHLElBQVQsRUFBZTtBQUN0QixTQUFLQSxLQUFMLEdBQWEsQ0FBQyxDQUFDQSxLQUFmO0FBQ0Q7O0FBRURtQyxFQUFBQSxTQUFTLENBQUNDLEtBQUssR0FBRyxJQUFULEVBQWU7QUFDdEIsU0FBSzlCLE1BQUwsR0FBYyxDQUFDLENBQUM4QixLQUFoQjtBQUNEOztBQUVEQyxFQUFBQSxPQUFPLEdBQUc7QUFDUixRQUFJLEtBQUtDLE9BQUwsRUFBSixFQUFvQjtBQUNsQixVQUFJLEtBQUt4QyxRQUFMLElBQWlCLEtBQUtBLFFBQUwsQ0FBY3lDLE9BQW5DLEVBQTRDO0FBQzFDLGVBQU8sS0FBS3pDLFFBQUwsQ0FBY3lDLE9BQXJCO0FBQ0Q7O0FBQ0QsWUFBTUEsT0FBTyxHQUFHLElBQUlDLE9BQUosQ0FBWSxDQUFDQyxPQUFELEVBQVVDLE1BQVYsS0FBc0IsS0FBSzVDLFFBQUwsR0FBZ0I7QUFBRTJDLFFBQUFBLE9BQUY7QUFBV0MsUUFBQUE7QUFBWCxPQUFsRCxDQUFoQjtBQUNBLFdBQUs1QyxRQUFMLENBQWN5QyxPQUFkLEdBQXdCQSxPQUF4QjtBQUNBLGFBQU9BLE9BQVA7QUFDRDs7QUFDRCxXQUFPQyxPQUFPLENBQUNDLE9BQVIsRUFBUDtBQUNEOztBQUVERSxFQUFBQSxlQUFlLEdBQUc7QUFDaEIsVUFBTTtBQUFFRixNQUFBQTtBQUFGLFFBQWMsS0FBSzNDLFFBQXpCO0FBQ0EsU0FBS0EsUUFBTCxHQUFnQixJQUFoQjs7QUFDQSxTQUFLMEIsUUFBTDs7QUFDQSxTQUFLRCxhQUFMLEdBQXFCcUIsSUFBckIsQ0FBMEIsTUFBTTtBQUM5QkgsTUFBQUEsT0FBTyxDQUFDLElBQUQsQ0FBUDtBQUNELEtBRkQ7QUFHRDs7QUFFREksRUFBQUEsY0FBYyxHQUFHO0FBQ2YsU0FBSy9DLFFBQUwsQ0FBYzRDLE1BQWQsQ0FBcUIsSUFBckI7O0FBQ0EsU0FBSzVDLFFBQUwsR0FBZ0IsSUFBaEI7O0FBQ0EsU0FBS2dELGVBQUwsQ0FBcUIsS0FBSzNDLGdCQUExQjtBQUNEOztBQUVENEMsRUFBQUEsYUFBYSxHQUFHO0FBQ2QsV0FBTyxLQUFLQyxVQUFMLENBQWdCQyxhQUFoQixDQUE4QixTQUE5QixDQUFQO0FBQ0Q7O0FBRURDLEVBQUFBLFlBQVksR0FBRztBQUNiLFdBQU8sS0FBS0YsVUFBTCxDQUFnQkMsYUFBaEIsQ0FBOEIsUUFBOUIsQ0FBUDtBQUNEOztBQUVERSxFQUFBQSxlQUFlLEdBQUc7QUFDaEJ6QixJQUFBQSxZQUFZLENBQUMsS0FBSzBCLGNBQU4sQ0FBWjtBQUNBLFNBQUtBLGNBQUwsR0FBc0J4QixVQUFVLENBQUMsTUFBTTtBQUNyQ2pELE1BQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxRQUFQLEVBQWlCO0FBQUUwRSxRQUFBQSxNQUFNLEVBQUUsSUFBVjtBQUFnQjlELFFBQUFBLE1BQU0sRUFBRSxLQUFLUSxPQUE3QjtBQUFzQ3VELFFBQUFBLFVBQVUsRUFBRSxLQUFLbEQ7QUFBdkQsT0FBakIsQ0FBbkI7QUFDRCxLQUYrQixFQUU3QixFQUY2QixDQUFoQztBQUdEOztBQUVEUyxFQUFBQSxlQUFlLENBQUM7QUFBRTBDLElBQUFBLE1BQU0sRUFBRTtBQUFFQyxNQUFBQSxhQUFGO0FBQWlCQyxNQUFBQSxLQUFqQjtBQUF3QkMsTUFBQUE7QUFBeEI7QUFBVixHQUFELEVBQWdEO0FBQzdELFFBQUlBLE9BQU8sQ0FBQ3RFLElBQVIsS0FBaUIsU0FBakIsSUFBOEJxRSxLQUFLLElBQUksSUFBdkMsS0FBaURBLEtBQUssQ0FBQ0UsSUFBTixJQUFjRixLQUFLLENBQUNHLE1BQU4sR0FBZSxDQUE5QixJQUFvQ0gsS0FBSyxDQUFDRyxNQUFOLEdBQWUsQ0FBbkcsQ0FBSixFQUEyRztBQUN6R0gsTUFBQUEsS0FBSyxHQUFHSSxRQUFRLENBQUNKLEtBQUQsRUFBUSxFQUFSLENBQWhCO0FBQ0Q7O0FBQ0RoRixJQUFBQSxHQUFHLENBQUMsS0FBS3NCLE9BQU4sRUFBZXlELGFBQWEsQ0FBQ00sRUFBN0IsRUFBaUNMLEtBQWpDLENBQUg7QUFDRDs7QUFFRDFDLEVBQUFBLFNBQVMsQ0FBQztBQUFFd0MsSUFBQUEsTUFBTSxFQUFFO0FBQUVDLE1BQUFBLGFBQUY7QUFBaUJDLE1BQUFBLEtBQWpCO0FBQXdCQyxNQUFBQTtBQUF4QjtBQUFWLEdBQUQsRUFBZ0Q7QUFDdkQsU0FBS3ZCLFNBQUwsQ0FBZSxJQUFmOztBQUNBLFFBQUl1QixPQUFPLENBQUN0RSxJQUFSLEtBQWlCLFNBQXJCLEVBQWdDO0FBQzlCLFVBQUksT0FBT3FFLEtBQVAsS0FBaUIsUUFBakIsSUFBNkJBLEtBQUssQ0FBQ0UsSUFBTixHQUFhQyxNQUFiLEtBQXdCLENBQXpELEVBQTREO0FBQzFESCxRQUFBQSxLQUFLLEdBQUcsSUFBUjtBQUNELE9BRkQsTUFFTztBQUNMLGNBQU1NLFFBQVEsR0FBR0MsTUFBTSxDQUFDUCxLQUFELENBQU4sQ0FBY1EsT0FBZCxFQUFqQjs7QUFDQSxZQUFJLENBQUNDLEtBQUssQ0FBQ0gsUUFBRCxDQUFWLEVBQXNCO0FBQ3BCTixVQUFBQSxLQUFLLEdBQUdNLFFBQVI7QUFDRCxTQUZELE1BRU87QUFDTE4sVUFBQUEsS0FBSyxHQUFHLElBQVI7QUFDRDtBQUNGO0FBQ0YsS0FYRCxNQVdPLElBQUlDLE9BQU8sQ0FBQ3RFLElBQVIsS0FBaUIsT0FBakIsSUFBNEJxRSxLQUFLLENBQUNHLE1BQU4sS0FBaUIsQ0FBakQsRUFBb0Q7QUFDekRILE1BQUFBLEtBQUssR0FBRyxJQUFSO0FBQ0QsS0FGTSxNQUVBLElBQUlDLE9BQU8sQ0FBQ3RFLElBQVIsS0FBaUIsUUFBakIsSUFBNkJxRSxLQUFLLENBQUNFLElBQU4sR0FBYUMsTUFBYixLQUF3QixDQUF6RCxFQUE0RDtBQUNqRUgsTUFBQUEsS0FBSyxHQUFHLElBQVI7QUFDRCxLQUZNLE1BRUEsSUFBSUMsT0FBTyxDQUFDdEUsSUFBUixLQUFpQixRQUFyQixFQUErQjtBQUNwQyxVQUFJQyxNQUFNLENBQUM4RSxJQUFQLENBQVlWLEtBQVosRUFBbUJHLE1BQW5CLEtBQThCLENBQWxDLEVBQXFDO0FBQ25DSCxRQUFBQSxLQUFLLEdBQUcsSUFBUjtBQUNEO0FBQ0Y7O0FBQ0QsUUFBSUEsS0FBSyxJQUFJLElBQWIsRUFBbUI7QUFDakIvRSxNQUFBQSxHQUFHLENBQUMsS0FBS3FCLE9BQU4sRUFBZXlELGFBQWEsQ0FBQ00sRUFBN0IsQ0FBSDtBQUNELEtBRkQsTUFFTztBQUNMckYsTUFBQUEsR0FBRyxDQUFDLEtBQUtzQixPQUFOLEVBQWV5RCxhQUFhLENBQUNNLEVBQTdCLEVBQWlDTCxLQUFqQyxDQUFIO0FBQ0Q7O0FBRUQsU0FBS3JELGlCQUFMLEdBQXlCLEtBQUt5QixRQUFMLEVBQXpCO0FBQ0EsU0FBSzdCLEtBQUwsR0FBYSxJQUFiOztBQUNBLFNBQUs4QixjQUFMOztBQUNBLFNBQUtxQixlQUFMO0FBQ0Q7O0FBRURuQyxFQUFBQSxlQUFlLENBQUNvRCxDQUFELEVBQUk7QUFDakJBLElBQUFBLENBQUMsQ0FBQ0MsZUFBRjtBQUNBRCxJQUFBQSxDQUFDLENBQUNFLGNBQUY7QUFDQTNGLElBQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBT3lGLENBQUMsQ0FBQ2IsTUFBRixDQUFTZ0IsU0FBaEIsRUFBMkJILENBQUMsQ0FBQ2IsTUFBN0IsQ0FBbkI7QUFDRDs7QUFFa0IsUUFBYmlCLGFBQWEsR0FBRztBQUNwQixTQUFLcEQsV0FBTCxHQUFtQkMsT0FBbkIsQ0FBNEJDLENBQUQsSUFBTztBQUNoQ0EsTUFBQUEsQ0FBQyxDQUFDQyxhQUFGO0FBQ0QsS0FGRDtBQUdBLFVBQU1pRCxhQUFOO0FBQ0Q7O0FBRURDLEVBQUFBLGNBQWMsQ0FBQ0MsR0FBRCxFQUFNO0FBQ2xCO0FBQ0EsVUFBTWhCLE9BQU8sR0FBRyxFQUFFLEdBQUcsS0FBS3ZFLE1BQUwsQ0FBWUQsVUFBWixDQUF1QndGLEdBQXZCO0FBQUwsS0FBaEI7QUFDQSxVQUFNQyxVQUFVLEdBQUcsS0FBS3hGLE1BQUwsQ0FBWXlGLFFBQVosSUFBd0IsS0FBS3pGLE1BQUwsQ0FBWXlGLFFBQVosQ0FBcUJDLFFBQXJCLENBQThCSCxHQUE5QixDQUEzQzs7QUFDQSxVQUFNSSxVQUFVLEdBQUksS0FBSzNGLE1BQUwsQ0FBWTRGLFFBQVosSUFBd0IsS0FBSzVGLE1BQUwsQ0FBWTRGLFFBQVosQ0FBcUJGLFFBQXJCLENBQThCSCxHQUE5QixDQUF6QixJQUFnRSxLQUFLTSxrQkFBTCxDQUF3QnRCLE9BQXhCLEVBQWlDLFVBQWpDLENBQW5GOztBQUNBLFVBQU11QixRQUFRLEdBQUcsS0FBS0Qsa0JBQUwsQ0FBd0J0QixPQUF4QixFQUFpQyxRQUFqQyxDQUFqQjs7QUFDQSxRQUFJdUIsUUFBSixFQUFjO0FBQ1osV0FBS3RFLGlCQUFMLENBQXVCdUUsSUFBdkIsQ0FBNEJSLEdBQTVCO0FBQ0Q7O0FBQ0QsVUFBTVMsVUFBVSxHQUFHLEtBQUs1RSxRQUFMLElBQWlCbUQsT0FBTyxDQUFDMEIsUUFBUixLQUFxQixJQUF6RDtBQUNBLFVBQU1DLFdBQVcsR0FBRzNCLE9BQU8sQ0FBQzRCLFNBQVIsS0FBc0IsSUFBMUM7QUFDQSxVQUFNN0IsS0FBSyxHQUFHakYsR0FBRyxDQUFDLEtBQUt1QixPQUFOLEVBQWUyRSxHQUFmLENBQWpCO0FBQ0EsV0FBT3BHLElBQUksZ0NBQ0ZvRyxHQURFLGNBRUUsS0FBS3BGLE1BRlAsZUFHR29FLE9BSEgsZ0JBSUksS0FBS3JELFFBSlQsYUFLQ29ELEtBTEQsZ0JBTUkwQixVQU5KLGlCQU9LRSxXQVBMLGdCQVFJVixVQVJKLGdCQVNJRyxVQVRKLGNBVUVHLFFBVkYsNkJBQVg7QUFZRDs7QUFFREQsRUFBQUEsa0JBQWtCLENBQUN0QixPQUFELEVBQVU2QixZQUFWLEVBQXdCO0FBQ3hDLFFBQUk3QixPQUFPLENBQUMsZUFBRCxDQUFQLElBQTRCLElBQTVCLElBQW9DQSxPQUFPLENBQUMsZUFBRCxDQUFQLENBQXlCNkIsWUFBekIsS0FBMEMsSUFBbEYsRUFBd0Y7QUFDdEYsYUFBTyxLQUFQO0FBQ0Q7O0FBQ0QsVUFBTUMsU0FBUyxHQUFHOUIsT0FBTyxDQUFDLGVBQUQsQ0FBUCxDQUF5QjZCLFlBQXpCLENBQWxCOztBQUNBLFFBQUksT0FBT0MsU0FBUCxLQUFxQixTQUF6QixFQUFvQztBQUNsQyxhQUFPQSxTQUFQO0FBQ0Q7O0FBQ0QsUUFBSSxDQUFDQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0YsU0FBZCxDQUFMLEVBQStCO0FBQzdCO0FBQ0FHLE1BQUFBLE9BQU8sQ0FBQ0MsSUFBUixDQUFjLElBQUdMLFlBQWEsbURBQTlCO0FBQ0EsYUFBTyxLQUFQO0FBQ0Q7O0FBRUQsUUFBSU0sTUFBTSxHQUFHLElBQWI7O0FBQ0EsU0FBSyxNQUFNQyxTQUFYLElBQXdCTixTQUF4QixFQUFtQztBQUNqQztBQUNBLFlBQU1PLFFBQVEsR0FBRzFHLE1BQU0sQ0FBQzhFLElBQVAsQ0FBWTJCLFNBQVosRUFBdUIsQ0FBdkIsQ0FBakI7O0FBRUEsY0FBUUMsUUFBUjtBQUNFLGFBQUssTUFBTDtBQUNFRixVQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSSxLQUFLRywyQkFBTCxDQUFpQ0YsU0FBakMsQ0FBbkI7QUFDQTs7QUFDRixhQUFLLEtBQUw7QUFDRUQsVUFBQUEsTUFBTSxHQUFHQSxNQUFNLElBQUksS0FBS0ksd0JBQUwsQ0FBOEJILFNBQTlCLENBQW5CO0FBQ0E7O0FBQ0YsYUFBSyxRQUFMO0FBQ0VELFVBQUFBLE1BQU0sR0FBR0EsTUFBTSxJQUFJLEtBQUtLLHdCQUFMLENBQThCSixTQUE5QixDQUFuQjtBQUNBOztBQUNGLGFBQUssTUFBTDtBQUNFRCxVQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSSxLQUFLTSxxQkFBTCxDQUEyQkwsU0FBM0IsQ0FBbkI7QUFDQTs7QUFDRjtBQUNFSCxVQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYyx5QkFBd0JHLFFBQVMsd0JBQS9DO0FBQ0FGLFVBQUFBLE1BQU0sR0FBRyxLQUFUO0FBQ0E7QUFoQko7QUFrQkQ7O0FBRUQsV0FBT0EsTUFBUDtBQUNEOztBQUVERyxFQUFBQSwyQkFBMkIsQ0FBQ1IsU0FBRCxFQUFZO0FBQ3JDLFdBQU8sQ0FBQyxLQUFLUyx3QkFBTCxDQUE4QlQsU0FBOUIsQ0FBUjtBQUNEOztBQUVEUyxFQUFBQSx3QkFBd0IsQ0FBQ1QsU0FBRCxFQUFZO0FBQ2xDLFVBQU1PLFFBQVEsR0FBRzFHLE1BQU0sQ0FBQzhFLElBQVAsQ0FBWXFCLFNBQVosRUFBdUIsQ0FBdkIsQ0FBakI7QUFDQSxVQUFNWSxRQUFRLEdBQUdaLFNBQVMsQ0FBQ08sUUFBRCxDQUExQjtBQUNBLFVBQU1NLGVBQWUsR0FBR2hILE1BQU0sQ0FBQzhFLElBQVAsQ0FBWWlDLFFBQVosQ0FBeEI7QUFDQSxXQUFPQyxlQUFlLENBQ25CQyxHQURJLENBQ0NDLGNBQUQsSUFBb0I7QUFDdkIsWUFBTUMsU0FBUyxHQUFHSixRQUFRLENBQUNHLGNBQUQsQ0FBMUI7QUFDQSxhQUFPL0gsR0FBRyxDQUFDLEtBQUt1QixPQUFOLEVBQWV3RyxjQUFmLENBQUgsS0FBc0NDLFNBQTdDO0FBQ0QsS0FKSSxFQUtKQyxNQUxJLENBS0csQ0FBQ0MsR0FBRCxFQUFNQyxPQUFOLEtBQWtCRCxHQUFHLElBQUlDLE9BTDVCLENBQVA7QUFNRDs7QUFFRFQsRUFBQUEsd0JBQXdCLENBQUNWLFNBQUQsRUFBWTtBQUNsQyxVQUFNTyxRQUFRLEdBQUcxRyxNQUFNLENBQUM4RSxJQUFQLENBQVlxQixTQUFaLEVBQXVCLENBQXZCLENBQWpCO0FBQ0EsVUFBTWUsY0FBYyxHQUFHZixTQUFTLENBQUNPLFFBQUQsQ0FBaEM7QUFDQSxXQUFPdkgsR0FBRyxDQUFDLEtBQUt1QixPQUFOLEVBQWV3RyxjQUFmLENBQUgsS0FBc0NLLFNBQXRDLElBQW1EcEksR0FBRyxDQUFDLEtBQUt1QixPQUFOLEVBQWV3RyxjQUFmLENBQUgsS0FBc0MsSUFBaEc7QUFDRDs7QUFFREosRUFBQUEscUJBQXFCLENBQUNYLFNBQUQsRUFBWTtBQUMvQixXQUFPLENBQUMsS0FBS1Usd0JBQUwsQ0FBOEJWLFNBQTlCLENBQVI7QUFDRDs7QUFFRHFCLEVBQUFBLFdBQVcsR0FBRztBQUNaLFFBQUksS0FBSy9HLFFBQVQsRUFBbUI7QUFDakIsYUFBT3hCLElBQUkseUtBR3dCLEtBQUtxRSxlQUg3QixpR0FJd0IsS0FBS0UsY0FKN0IscURBQVg7QUFPRDs7QUFDRCxVQUFNc0IsSUFBSSxHQUFHLEtBQUtoRixNQUFMLENBQVlELFVBQVosR0FBeUJHLE1BQU0sQ0FBQzhFLElBQVAsQ0FBWSxLQUFLaEYsTUFBTCxDQUFZRCxVQUF4QixDQUF6QixHQUErRCxFQUE1RTtBQUNBLFNBQUt5QixpQkFBTCxHQUF5QixFQUF6QjtBQUNBLFdBQU9yQyxJQUFJLEdBQUc2RixJQUFJLENBQUNtQyxHQUFMLENBQVU1QixHQUFELElBQVMsS0FBS0QsY0FBTCxDQUFvQkMsR0FBcEIsQ0FBbEIsQ0FBSCxFQUFYO0FBQ0Q7O0FBRUR0RCxFQUFBQSxXQUFXLEdBQUc7QUFDWixXQUFPcUUsS0FBSyxDQUFDcUIsSUFBTixDQUFXLEtBQUs5RCxVQUFMLENBQWdCK0QsZ0JBQWhCLENBQWlDLHdCQUFqQyxDQUFYLENBQVA7QUFDRDs7QUFFREMsRUFBQUEsVUFBVSxDQUFDbEQsRUFBRCxFQUFLO0FBQ2IsV0FBTyxLQUFLZCxVQUFMLENBQWdCQyxhQUFoQixDQUErQixRQUFPYSxFQUFHLElBQXpDLENBQVA7QUFDRDs7QUFFRGpDLEVBQUFBLFFBQVEsR0FBRztBQUNULFFBQUksS0FBSzFDLE1BQVQsRUFBaUI7QUFDZixXQUFLaUIsaUJBQUwsR0FBeUIsS0FBS00sVUFBTCxDQUFnQm1CLFFBQWhCLENBQXlCLEtBQUs5QixPQUE5QixFQUF1QyxLQUFLWixNQUE1QyxDQUF6Qjs7QUFDQSxVQUFJLEtBQUsrQyxPQUFMLEVBQUosRUFBb0I7QUFDbEIsYUFBSzVDLE1BQUwsR0FBYyxFQUFkO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsYUFBS0EsTUFBTCxHQUFjLEtBQUtjLGlCQUFMLENBQXVCZCxNQUFyQztBQUNEO0FBQ0Y7O0FBQ0QsV0FBTyxLQUFLYyxpQkFBWjtBQUNEOztBQUVEOEIsRUFBQUEsT0FBTyxHQUFHO0FBQ1IsUUFBSSxLQUFLOUIsaUJBQUwsQ0FBdUI2RyxLQUEzQixFQUFrQztBQUNoQyxhQUFPLElBQVA7QUFDRDs7QUFFRCxVQUFNM0gsTUFBTSxHQUFHLENBQUMsS0FBS2MsaUJBQUwsQ0FBdUJkLE1BQXZCLElBQWlDLEVBQWxDLEVBQXNDNEgsTUFBdEMsQ0FBOENDLEtBQUQsSUFBVztBQUNyRSxhQUFPLENBQUMsS0FBS3hHLGlCQUFMLENBQXVCa0UsUUFBdkIsQ0FBZ0NzQyxLQUFLLENBQUNDLFFBQU4sQ0FBZUMsT0FBZixDQUF1QixXQUF2QixFQUFvQyxFQUFwQyxDQUFoQyxDQUFSO0FBQ0QsS0FGYyxDQUFmO0FBR0EsV0FBTy9ILE1BQU0sQ0FBQ3NFLE1BQVAsS0FBa0IsQ0FBekI7QUFDRDs7QUFFRHRCLEVBQUFBLE9BQU8sR0FBRztBQUNSLFdBQU8sS0FBS2hDLE1BQUwsSUFBZ0IsS0FBS04sS0FBTCxJQUFjLEtBQUtHLGdCQUExQztBQUNEOztBQUVEbUgsRUFBQUEsU0FBUyxHQUFHO0FBQ1YsV0FBTyxLQUFLaEYsT0FBTCxNQUFrQixLQUFLSixPQUFMLEVBQXpCO0FBQ0Q7O0FBRURKLEVBQUFBLGNBQWMsR0FBRztBQUNmLFVBQU15RixTQUFTLEdBQUcsS0FBS3hFLGFBQUwsRUFBbEI7O0FBQ0EsUUFBSXdFLFNBQVMsSUFBSSxJQUFqQixFQUF1QjtBQUNyQixVQUFJLEtBQUtELFNBQUwsRUFBSixFQUFzQjtBQUNwQixhQUFLdkUsYUFBTCxHQUFxQnlFLGVBQXJCLENBQXFDLFVBQXJDO0FBQ0QsT0FGRCxNQUVPO0FBQ0wsYUFBS3pFLGFBQUwsR0FBcUIwRSxZQUFyQixDQUFrQyxVQUFsQyxFQUE4QyxJQUE5QztBQUNEO0FBQ0Y7O0FBQ0QsVUFBTUMsUUFBUSxHQUFHLEtBQUt4RSxZQUFMLEVBQWpCOztBQUNBLFFBQUl3RSxRQUFRLElBQUksSUFBaEIsRUFBc0I7QUFDcEIsVUFBSSxLQUFLMUgsS0FBVCxFQUFnQjtBQUNkMEgsUUFBQUEsUUFBUSxDQUFDRixlQUFULENBQXlCLFVBQXpCO0FBQ0QsT0FGRCxNQUVPO0FBQ0xFLFFBQUFBLFFBQVEsQ0FBQ0QsWUFBVCxDQUFzQixVQUF0QixFQUFrQyxJQUFsQztBQUNEO0FBQ0Y7QUFDRjs7QUFFRDNFLEVBQUFBLGVBQWUsQ0FBQzZFLGNBQUQsRUFBaUI7QUFDOUIsUUFBSUEsY0FBSixFQUFvQjtBQUNsQixXQUFLdkgsaUJBQUwsR0FBeUIsRUFBekI7QUFDQSxXQUFLZCxNQUFMLEdBQWMsSUFBZDtBQUNBLFdBQUttQyxpQkFBTDtBQUNELEtBSkQsTUFJTztBQUNMLFdBQUttRyxxQkFBTCxHQUE2QmhHLFVBQVUsQ0FBQyxNQUFNLEtBQUtFLGNBQUwsRUFBUCxFQUE4QixDQUE5QixDQUF2QztBQUNEO0FBQ0Y7O0FBRVksUUFBUCtGLE9BQU8sQ0FBQ0MsaUJBQUQsRUFBb0I7QUFDL0JwRyxJQUFBQSxZQUFZLENBQUMsS0FBS2tHLHFCQUFOLENBQVo7O0FBQ0EsUUFBSUUsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLFNBQXRCLENBQUosRUFBc0M7QUFDcEMsV0FBSzNHLFdBQUwsR0FBbUJDLE9BQW5CLENBQTRCcUMsT0FBRCxJQUFhO0FBQ3RDQSxRQUFBQSxPQUFPLENBQUNELEtBQVIsR0FBZ0JqRixHQUFHLENBQUMsS0FBS3VCLE9BQU4sRUFBZTJELE9BQU8sQ0FBQ0ksRUFBdkIsQ0FBbkI7QUFDRCxPQUZEO0FBR0Q7O0FBQ0QsU0FBS2hCLGVBQUwsQ0FBcUIsS0FBSzNDLGdCQUFMLEtBQTBCMkgsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLFNBQXRCLEtBQW9DRCxpQkFBaUIsQ0FBQ0MsR0FBbEIsQ0FBc0IsUUFBdEIsQ0FBOUQsQ0FBckI7QUFDRDs7QUFFdUIsUUFBbEJDLGtCQUFrQixHQUFHO0FBQ3pCLFVBQU0sTUFBTUEsa0JBQU4sRUFBTjtBQUNBLFVBQU14RixPQUFPLENBQUN5RixHQUFSLENBQVksS0FBSzdHLFdBQUwsR0FBbUJrRixHQUFuQixDQUF3QmxDLENBQUQsSUFBT0EsQ0FBQyxDQUFDOEQsY0FBaEMsQ0FBWixDQUFOO0FBQ0Q7O0FBRURDLEVBQUFBLE1BQU0sR0FBRztBQUNQLFdBQU83SixJQUFJLGdCQUFnQlEsUUFBUSxDQUFDO0FBQUUwQixNQUFBQSxVQUFVLEVBQUUsS0FBS0E7QUFBbkIsS0FBRCxDQUF4QixrQkFDSzFCLFFBQVEsQ0FBQztBQUFFc0osTUFBQUEsU0FBUyxFQUFFLElBQWI7QUFBbUIvRixNQUFBQSxPQUFPLEVBQUUsS0FBS3ZDO0FBQWpDLEtBQUQsQ0FEYixNQUVMLEtBQUtELFNBQUwsS0FBbUIsSUFBbkIsR0FDRXZCLElBQUkscUNBRWNRLFFBQVEsQ0FBQztBQUFFdUosTUFBQUEsS0FBSyxFQUFFLElBQVQ7QUFBZUMsTUFBQUEsTUFBTSxFQUFFLEtBQUt6SSxTQUFMLElBQWtCLENBQUMsS0FBS0g7QUFBL0MsS0FBRCxDQUZ0QixtR0FRRSxLQUFLYSxRQUFMLEtBQWtCLElBQWxCLElBQTBCLEtBQUtiLFNBQUwsS0FBbUIsSUFBN0MsR0FDRSxFQURGLEdBRUVwQixJQUFJLDhFQUtvQixLQUFLa0QsUUFMekIscUdBWW9CLEtBQUtRLFNBWnpCLCtCQWNVLEtBQUt4QyxXQWRmLHdCQVZSLFVBRE4sR0E4QkUsRUFoQ0cseUJBaUNnQixLQUFLTCxNQUFMLElBQWUsSUFBZixHQUFzQixLQUFLMEgsV0FBTCxFQUF0QixHQUEyQ3ZJLElBQUksRUFqQy9ELFVBa0NMLEtBQUtvQixTQUFMLEtBQW1CLElBQW5CLElBQTJCLEtBQUthLFFBQUwsS0FBa0IsSUFBN0MsR0FDRWpDLElBQUksdUhBSXFELEtBQUtrRCxRQUoxRCxvR0FLNkMsS0FBS1EsU0FMbEQsK0JBSzBGLEtBQUt4QyxXQUwvRixLQU1PLEtBQUtBLFdBTlosNkJBRE4sR0FZRSxFQTlDRyxpQkFBWDtBQWlERDs7QUFFZ0IsYUFBTitJLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0x2SixLQURLLEVBRUw7QUFDQVQsSUFBQUEsR0FBRywwaURBSEUsQ0FBUDtBQXVKRDs7QUEva0IwQztBQWtsQjdDaUssTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixnQkFBN0IsRUFBK0N6SixZQUEvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyBnZXQsIHNldCwgZGVsIH0gZnJvbSAnb2JqZWN0LXBhdGgnO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgZGVlcENsb25lLCBkZWVwRXF1YWwgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBWYWxpZGF0b3IgfSBmcm9tICdqc29uc2NoZW1hJztcbmltcG9ydCB7IGVtcHR5IH0gZnJvbSAnLi4vc3R5bGVzL2VtcHR5JztcbmltcG9ydCAnLi9ndi1zY2hlbWEtZm9ybS1jb250cm9sJztcblxuLyoqXG4gKiBTY2hlbWEgZm9ybSBjb21wb25lbnRcbiAqXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06c3VibWl0IC0gZXZlbnQgd2hlbiB1c2VyIHN1Ym1pdCB2YWxpZCBmb3JtXG4gKiBAZmlyZXMgZ3Ytc2NoZW1hLWZvcm06ZXJyb3IgLSBldmVudCB3aGVuIHVzZXIgc3VibWl0IGludmFsaWQgZm9ybVxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOmNoYW5nZSAtIGV2ZW50IHdoZW4gd2hlbiBmb3JtIGNoYW5nZVxuICogQGZpcmVzIGd2LXNjaGVtYS1mb3JtOmNhbmNlbCAtIGV2ZW50IHdoZW4gdXNlciBjYW5jZWwgZm9ybVxuICpcbiAqIEBhdHRyIHtPYmplY3R9IHNjaGVtYSAtIHRoZSBzY2hlbWEgZm9ybSBjb25maWd1cmF0aW9uXG4gKiBAYXR0ciB7T2JqZWN0fSB2YWx1ZXMgLSB0aGUgdmFsdWVzIG9mIGZpZWxkc1xuICogQGF0dHIge09iamVjdH0gZXJyb3JzIC0gdGhlIG1hcCBvZiBlcnJvcnMgYnkgaW5wdXQga2V5XG4gKiBAYXR0ciB7Qm9vbGVhbn0gdmFsaWRhdGUgLSB0byBmb3JjZSB2YWxpZGF0aW9uIG9uIGZpcnN0IHJlbmRlclxuICogQGF0dHIge0Jvb2xlYW59IHJlYWRvbmx5IC0gdHJ1ZSBpZiByZWFkb25seVxuICogQGF0dHIge0Jvb2xlYW59IHNjcm9sbGFibGUgLSB1c2VmdWwgZm9yIG1ha2luZyBjb250ZW50IHNjcm9sbGFibGUgd2l0aCBmaXhlZCBoZWFkZXJzIC8gZm9vdGVyc1xuICovXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgZXJyb3JzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgdmFsdWVzOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgc3VibWl0TGFiZWw6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBoYXNGb290ZXI6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnaGFzLWZvb3RlcicgfSxcbiAgICAgIGhhc0hlYWRlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICdoYXMtaGVhZGVyJyB9LFxuICAgICAgX2NvbmZpcm06IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICBfdmFsdWVzOiB7IHR5cGU6IE9iamVjdCwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgZGlydHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgaGlkZURlcHJlY2F0ZWQ6IHsgdHlwZTogQm9vbGVhbiwgYXR0cmlidXRlOiAnaGlkZS1kZXByZWNhdGVkJyB9LFxuICAgICAgdmFsaWRhdGVPblJlbmRlcjogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICd2YWxpZGF0ZS1vbi1yZW5kZXInIH0sXG4gICAgICBfdmFsaWRhdG9yUmVzdWx0czogeyB0eXBlOiBPYmplY3QgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIF90b3VjaDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICByZWFkb25seTogeyB0eXBlOiBCb29sZWFuLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBzY3JvbGxhYmxlOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmhpZGVEZXByZWNhdGVkID0gZmFsc2U7XG4gICAgdGhpcy5fdmFsdWVzID0ge307XG4gICAgdGhpcy5zdWJtaXRMYWJlbCA9ICdPayc7XG4gICAgdGhpcy5oYXNIZWFkZXIgPSBmYWxzZTtcbiAgICB0aGlzLmhhc0Zvb3RlciA9IGZhbHNlO1xuICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XG4gICAgdGhpcy5fdmFsaWRhdG9yID0gbmV3IFZhbGlkYXRvcigpO1xuICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB7fTtcbiAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzID0gW107XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdndi1zY2hlbWEtZm9ybS1jb250cm9sOmRlZmF1bHQtdmFsdWUnLCB0aGlzLl9vbkRlZmF1bHRWYWx1ZS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXIoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w6Y2hhbmdlJywgdGhpcy5fb25DaGFuZ2UuYmluZCh0aGlzKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdndi1zY2hlbWEtZm9ybS1jb250cm9sOmNvbnRyb2wtcmVhZHknLCB0aGlzLl9vbkNvbnRyb2xSZWFkeS5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHNldCB2YWx1ZXModmFsdWVzKSB7XG4gICAgaWYgKCFkZWVwRXF1YWwodGhpcy5fdmFsdWVzLCB2YWx1ZXMpKSB7XG4gICAgICBpZiAodmFsdWVzKSB7XG4gICAgICAgIHRoaXMuX2luaXRpYWxWYWx1ZXMgPSB7IC4uLnZhbHVlcyB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5faW5pdGlhbFZhbHVlcyA9IHt9O1xuICAgICAgfVxuICAgICAgdGhpcy5fdmFsdWVzID0gZGVlcENsb25lKHRoaXMuX2luaXRpYWxWYWx1ZXMpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB2YWx1ZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlcztcbiAgfVxuXG4gIHJlc2V0KHZhbHVlcyA9IG51bGwpIHtcbiAgICB0aGlzLl92YWx1ZXMgPSBkZWVwQ2xvbmUodmFsdWVzIHx8IHRoaXMuX2luaXRpYWxWYWx1ZXMpO1xuICAgIHRoaXMuX3RvdWNoID0gZmFsc2U7XG4gICAgdGhpcy5fc2V0RGlydHkoZmFsc2UpO1xuICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9vblJlc2V0KCkge1xuICAgIHRoaXMucmVzZXQoKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdyZXNldCcpO1xuICB9XG5cbiAgcmVxdWVzdFZhbGlkYXRpb24oKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3ZhbGlkYXRlVGltZW91dCk7XG4gICAgdGhpcy5fdmFsaWRhdGVUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnZhbGlkYXRlKCk7XG4gICAgICB0aGlzLl91cGRhdGVBY3Rpb25zKCk7XG4gICAgfSwgMzUwKTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICB0aGlzLl9vblN1Ym1pdCgpO1xuICB9XG5cbiAgX29uU3VibWl0KCkge1xuICAgIGNvbnN0IHZhbGlkYXRvclJlc3VsdHMgPSB0aGlzLnZhbGlkYXRlKCk7XG4gICAgaWYgKHRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICB0aGlzLl9pbml0aWFsVmFsdWVzID0gZGVlcENsb25lKHRoaXMuX3ZhbHVlcyk7XG4gICAgICB0aGlzLmRpcnR5ID0gZmFsc2U7XG4gICAgICB0aGlzLl90b3VjaCA9IGZhbHNlO1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnc3VibWl0JywgeyB2YWx1ZXM6IHRoaXMuX3ZhbHVlcywgdmFsaWRhdG9yUmVzdWx0cyB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnZXJyb3InLCB7IHZhbHVlczogdGhpcy5fdmFsdWVzLCB2YWxpZGF0b3JSZXN1bHRzIH0pO1xuICAgIH1cbiAgfVxuXG4gIF9zZXREaXJ0eShkaXJ0eSA9IHRydWUpIHtcbiAgICB0aGlzLmRpcnR5ID0gISFkaXJ0eTtcbiAgfVxuXG4gIF9zZXRUb3VjaCh0b3VjaCA9IHRydWUpIHtcbiAgICB0aGlzLl90b3VjaCA9ICEhdG91Y2g7XG4gIH1cblxuICBjb25maXJtKCkge1xuICAgIGlmICh0aGlzLmlzVG91Y2goKSkge1xuICAgICAgaWYgKHRoaXMuX2NvbmZpcm0gJiYgdGhpcy5fY29uZmlybS5wcm9taXNlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb25maXJtLnByb21pc2U7XG4gICAgICB9XG4gICAgICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4gKHRoaXMuX2NvbmZpcm0gPSB7IHJlc29sdmUsIHJlamVjdCB9KSk7XG4gICAgICB0aGlzLl9jb25maXJtLnByb21pc2UgPSBwcm9taXNlO1xuICAgICAgcmV0dXJuIHByb21pc2U7XG4gICAgfVxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIF9vbkNvbmZpcm1SZXNldCgpIHtcbiAgICBjb25zdCB7IHJlc29sdmUgfSA9IHRoaXMuX2NvbmZpcm07XG4gICAgdGhpcy5fY29uZmlybSA9IG51bGw7XG4gICAgdGhpcy5fb25SZXNldCgpO1xuICAgIHRoaXMucmVxdWVzdFVwZGF0ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgcmVzb2x2ZSh0aGlzKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9vbkNvbmZpcm1FZGl0KCkge1xuICAgIHRoaXMuX2NvbmZpcm0ucmVqZWN0KHRoaXMpO1xuICAgIHRoaXMuX2NvbmZpcm0gPSBudWxsO1xuICAgIHRoaXMuX3VwZGF0ZUNoaWxkcmVuKHRoaXMudmFsaWRhdGVPblJlbmRlcik7XG4gIH1cblxuICBfZ2V0U3VibWl0QnRuKCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3N1Ym1pdCcpO1xuICB9XG5cbiAgX2dldFJlc2V0QnRuKCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignI3Jlc2V0Jyk7XG4gIH1cblxuICBfZGlzcGF0Y2hDaGFuZ2UoKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX2NoYW5nZVRpbWVvdXQpO1xuICAgIHRoaXMuX2NoYW5nZVRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NoYW5nZScsIHsgdGFyZ2V0OiB0aGlzLCB2YWx1ZXM6IHRoaXMuX3ZhbHVlcywgdmFsaWRhdGlvbjogdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyB9KTtcbiAgICB9LCA1MCk7XG4gIH1cblxuICBfb25EZWZhdWx0VmFsdWUoeyBkZXRhaWw6IHsgY3VycmVudFRhcmdldCwgdmFsdWUsIGNvbnRyb2wgfSB9KSB7XG4gICAgaWYgKGNvbnRyb2wudHlwZSA9PT0gJ2ludGVnZXInICYmIHZhbHVlICE9IG51bGwgJiYgKCh2YWx1ZS50cmltICYmIHZhbHVlLmxlbmd0aCA+IDApIHx8IHZhbHVlLmxlbmd0aCA+IDApKSB7XG4gICAgICB2YWx1ZSA9IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgfVxuICAgIHNldCh0aGlzLl92YWx1ZXMsIGN1cnJlbnRUYXJnZXQuaWQsIHZhbHVlKTtcbiAgfVxuXG4gIF9vbkNoYW5nZSh7IGRldGFpbDogeyBjdXJyZW50VGFyZ2V0LCB2YWx1ZSwgY29udHJvbCB9IH0pIHtcbiAgICB0aGlzLl9zZXRUb3VjaCh0cnVlKTtcbiAgICBpZiAoY29udHJvbC50eXBlID09PSAnaW50ZWdlcicpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgdmFsdWUgPSBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgaW50VmFsdWUgPSBOdW1iZXIodmFsdWUpLnZhbHVlT2YoKTtcbiAgICAgICAgaWYgKCFpc05hTihpbnRWYWx1ZSkpIHtcbiAgICAgICAgICB2YWx1ZSA9IGludFZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoY29udHJvbC50eXBlID09PSAnYXJyYXknICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdmFsdWUgPSBudWxsO1xuICAgIH0gZWxzZSBpZiAoY29udHJvbC50eXBlID09PSAnc3RyaW5nJyAmJiB2YWx1ZS50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICB2YWx1ZSA9IG51bGw7XG4gICAgfSBlbHNlIGlmIChjb250cm9sLnR5cGUgPT09ICdvYmplY3QnKSB7XG4gICAgICBpZiAoT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICBkZWwodGhpcy5fdmFsdWVzLCBjdXJyZW50VGFyZ2V0LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0KHRoaXMuX3ZhbHVlcywgY3VycmVudFRhcmdldC5pZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB0aGlzLnZhbGlkYXRlKCk7XG4gICAgdGhpcy5kaXJ0eSA9IHRydWU7XG4gICAgdGhpcy5fdXBkYXRlQWN0aW9ucygpO1xuICAgIHRoaXMuX2Rpc3BhdGNoQ2hhbmdlKCk7XG4gIH1cblxuICBfb25Db250cm9sUmVhZHkoZSkge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgZS5kZXRhaWwuZXZlbnROYW1lLCBlLmRldGFpbCk7XG4gIH1cblxuICBhc3luYyBwZXJmb3JtVXBkYXRlKCkge1xuICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChzKSA9PiB7XG4gICAgICBzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICB9KTtcbiAgICBzdXBlci5wZXJmb3JtVXBkYXRlKCk7XG4gIH1cblxuICBfcmVuZGVyQ29udHJvbChrZXkpIHtcbiAgICAvLyBUaGlzIGlzIHJlcXVpcmUgdG8gY2xlYW4gY2FjaGUgb2YgPGd2LXNjaGVtYS1mb3JtLWNvbnRyb2w+XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEucHJvcGVydGllc1trZXldIH07XG4gICAgY29uc3QgaXNSZXF1aXJlZCA9IHRoaXMuc2NoZW1hLnJlcXVpcmVkICYmIHRoaXMuc2NoZW1hLnJlcXVpcmVkLmluY2x1ZGVzKGtleSk7XG4gICAgY29uc3QgaXNEaXNhYmxlZCA9ICh0aGlzLnNjaGVtYS5kaXNhYmxlZCAmJiB0aGlzLnNjaGVtYS5kaXNhYmxlZC5pbmNsdWRlcyhrZXkpKSB8fCB0aGlzLl9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCAnZGlzYWJsZWQnKTtcbiAgICBjb25zdCBpc0hpZGRlbiA9IHRoaXMuX2V2YWx1YXRlQ29uZGl0aW9uKGNvbnRyb2wsICdoaWRkZW4nKTtcbiAgICBpZiAoaXNIaWRkZW4pIHtcbiAgICAgIHRoaXMuX2lnbm9yZVByb3BlcnRpZXMucHVzaChrZXkpO1xuICAgIH1cbiAgICBjb25zdCBpc1JlYWRvbmx5ID0gdGhpcy5yZWFkb25seSB8fCBjb250cm9sLnJlYWRPbmx5ID09PSB0cnVlO1xuICAgIGNvbnN0IGlzV3JpdGVPbmx5ID0gY29udHJvbC53cml0ZU9ubHkgPT09IHRydWU7XG4gICAgY29uc3QgdmFsdWUgPSBnZXQodGhpcy5fdmFsdWVzLCBrZXkpO1xuICAgIHJldHVybiBodG1sYDxndi1zY2hlbWEtZm9ybS1jb250cm9sXG4gICAgICAuaWQ9XCIke2tleX1cIlxuICAgICAgLmVycm9ycz1cIiR7dGhpcy5lcnJvcnN9XCJcbiAgICAgIC5jb250cm9sPVwiJHtjb250cm9sfVwiXG4gICAgICAuc2tlbGV0b249XCIke3RoaXMuc2tlbGV0b259XCJcbiAgICAgIC52YWx1ZT1cIiR7dmFsdWV9XCJcbiAgICAgID9yZWFkb25seT1cIiR7aXNSZWFkb25seX1cIlxuICAgICAgP3dyaXRlb25seT1cIiR7aXNXcml0ZU9ubHl9XCJcbiAgICAgID9yZXF1aXJlZD1cIiR7aXNSZXF1aXJlZH1cIlxuICAgICAgP2Rpc2FibGVkPVwiJHtpc0Rpc2FibGVkfVwiXG4gICAgICA/aGlkZGVuPVwiJHtpc0hpZGRlbn1cIlxuICAgID48L2d2LXNjaGVtYS1mb3JtLWNvbnRyb2w+YDtcbiAgfVxuXG4gIF9ldmFsdWF0ZUNvbmRpdGlvbihjb250cm9sLCBjb25kaXRpb25LZXkpIHtcbiAgICBpZiAoY29udHJvbFsneC1zY2hlbWEtZm9ybSddID09IG51bGwgfHwgY29udHJvbFsneC1zY2hlbWEtZm9ybSddW2NvbmRpdGlvbktleV0gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBjb25kaXRpb24gPSBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ11bY29uZGl0aW9uS2V5XTtcbiAgICBpZiAodHlwZW9mIGNvbmRpdGlvbiA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4gY29uZGl0aW9uO1xuICAgIH1cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgLy8gY29uZGl0aW9uIGlzbid0IGFuIGFycmF5LCBpZ25vcmUgdGhlIGNvbmRpdGlvblxuICAgICAgY29uc29sZS53YXJuKGAnJHtjb25kaXRpb25LZXl9JyBhdHRyaWJ1dGUgb2YgJ3gtc2NoZW1hLWZvcm0nIHNob3VsZCBiZSBhbiBhcnJheWApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGxldCByZXN1bHQgPSB0cnVlO1xuICAgIGZvciAoY29uc3Qgb3BlcmF0aW9uIG9mIGNvbmRpdGlvbikge1xuICAgICAgLy8gb3BlcmF0aW9uIG9ubHkgaGF2ZSBvbmUgb3BlcmF0b3Igd2l0aCBhIHNpbmdsZSBvYmplY3QgY29udGFpbmluZyBvcGVyYW5kIHZhbHVlc1xuICAgICAgY29uc3Qgb3BlcmF0b3IgPSBPYmplY3Qua2V5cyhvcGVyYXRpb24pWzBdO1xuXG4gICAgICBzd2l0Y2ggKG9wZXJhdG9yKSB7XG4gICAgICAgIGNhc2UgJyRuZXEnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZU5vdEVxdWFsc0NvbmRpdGlvbihvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICckZXEnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbihvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICckbm9kZWYnOlxuICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB0aGlzLl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbihvcGVyYXRpb24pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICckZGVmJzpcbiAgICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdGhpcy5fZXZhbHVhdGVEZWZDb25kaXRpb24ob3BlcmF0aW9uKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBjb25zb2xlLndhcm4oYFVuc3VwcG9ydGVkIG9wZXJhdG9yICcke29wZXJhdG9yfScgb24gZGlzYWJsZSBjb25kaXRpb25gKTtcbiAgICAgICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgX2V2YWx1YXRlTm90RXF1YWxzQ29uZGl0aW9uKGNvbmRpdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5fZXZhbHVhdGVFcXVhbHNDb25kaXRpb24oY29uZGl0aW9uKTtcbiAgfVxuXG4gIF9ldmFsdWF0ZUVxdWFsc0NvbmRpdGlvbihjb25kaXRpb24pIHtcbiAgICBjb25zdCBvcGVyYXRvciA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbilbMF07XG4gICAgY29uc3Qgb3BlcmFuZHMgPSBjb25kaXRpb25bb3BlcmF0b3JdO1xuICAgIGNvbnN0IG1vZGVsQXR0cmlidXRlcyA9IE9iamVjdC5rZXlzKG9wZXJhbmRzKTtcbiAgICByZXR1cm4gbW9kZWxBdHRyaWJ1dGVzXG4gICAgICAubWFwKChtb2RlbEF0dHJpYnV0ZSkgPT4ge1xuICAgICAgICBjb25zdCB0ZXN0VmFsdWUgPSBvcGVyYW5kc1ttb2RlbEF0dHJpYnV0ZV07XG4gICAgICAgIHJldHVybiBnZXQodGhpcy5fdmFsdWVzLCBtb2RlbEF0dHJpYnV0ZSkgPT09IHRlc3RWYWx1ZTtcbiAgICAgIH0pXG4gICAgICAucmVkdWNlKChhY2MsIGN1cnJlbnQpID0+IGFjYyB8fCBjdXJyZW50KTtcbiAgfVxuXG4gIF9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbihjb25kaXRpb24pIHtcbiAgICBjb25zdCBvcGVyYXRvciA9IE9iamVjdC5rZXlzKGNvbmRpdGlvbilbMF07XG4gICAgY29uc3QgbW9kZWxBdHRyaWJ1dGUgPSBjb25kaXRpb25bb3BlcmF0b3JdO1xuICAgIHJldHVybiBnZXQodGhpcy5fdmFsdWVzLCBtb2RlbEF0dHJpYnV0ZSkgPT09IHVuZGVmaW5lZCB8fCBnZXQodGhpcy5fdmFsdWVzLCBtb2RlbEF0dHJpYnV0ZSkgPT09IG51bGw7XG4gIH1cblxuICBfZXZhbHVhdGVEZWZDb25kaXRpb24oY29uZGl0aW9uKSB7XG4gICAgcmV0dXJuICF0aGlzLl9ldmFsdWF0ZU5vdERlZkNvbmRpdGlvbihjb25kaXRpb24pO1xuICB9XG5cbiAgX3JlbmRlclBhcnQoKSB7XG4gICAgaWYgKHRoaXMuX2NvbmZpcm0pIHtcbiAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCJjb25maXJtLWJveFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZXJyb3JcIj5UaGUgY29uZmlndXJhdGlvbiBpcyBub3QgdmFsaWQgYW5kIGNhbm5vdCBiZSBzYXZlZC48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbmZpcm0tYm94X2FjdGlvbnNcIj5cbiAgICAgICAgICA8Z3YtYnV0dG9uIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ29uZmlybVJlc2V0fVwiIG91dGxpbmVkIGljb249XCJnZW5lcmFsOnVwZGF0ZVwiIGRhbmdlcj5Mb3NlIGNoYW5nZXM8L2d2LWJ1dHRvbj5cbiAgICAgICAgICA8Z3YtYnV0dG9uIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uQ29uZmlybUVkaXR9XCIgaWNvbj1cImRlc2lnbjplZGl0XCI+RWRpdDwvZ3YtYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIGNvbnN0IGtleXMgPSB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzID8gT2JqZWN0LmtleXModGhpcy5zY2hlbWEucHJvcGVydGllcykgOiBbXTtcbiAgICB0aGlzLl9pZ25vcmVQcm9wZXJ0aWVzID0gW107XG4gICAgcmV0dXJuIGh0bWxgJHtrZXlzLm1hcCgoa2V5KSA9PiB0aGlzLl9yZW5kZXJDb250cm9sKGtleSkpfWA7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKTtcbiAgfVxuXG4gIGdldENvbnRyb2woaWQpIHtcbiAgICByZXR1cm4gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoYFtpZD1cIiR7aWR9XCJdYCk7XG4gIH1cblxuICB2YWxpZGF0ZSgpIHtcbiAgICBpZiAodGhpcy5zY2hlbWEpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMgPSB0aGlzLl92YWxpZGF0b3IudmFsaWRhdGUodGhpcy5fdmFsdWVzLCB0aGlzLnNjaGVtYSk7XG4gICAgICBpZiAodGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgdGhpcy5lcnJvcnMgPSBbXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZXJyb3JzID0gdGhpcy5fdmFsaWRhdG9yUmVzdWx0cy5lcnJvcnM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl92YWxpZGF0b3JSZXN1bHRzO1xuICB9XG5cbiAgaXNWYWxpZCgpIHtcbiAgICBpZiAodGhpcy5fdmFsaWRhdG9yUmVzdWx0cy52YWxpZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JzID0gKHRoaXMuX3ZhbGlkYXRvclJlc3VsdHMuZXJyb3JzIHx8IFtdKS5maWx0ZXIoKGVycm9yKSA9PiB7XG4gICAgICByZXR1cm4gIXRoaXMuX2lnbm9yZVByb3BlcnRpZXMuaW5jbHVkZXMoZXJyb3IucHJvcGVydHkucmVwbGFjZSgnaW5zdGFuY2UuJywgJycpKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZXJyb3JzLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIGlzVG91Y2goKSB7XG4gICAgcmV0dXJuIHRoaXMuX3RvdWNoIHx8ICh0aGlzLmRpcnR5ICYmIHRoaXMudmFsaWRhdGVPblJlbmRlcik7XG4gIH1cblxuICBjYW5TdWJtaXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNUb3VjaCgpICYmIHRoaXMuaXNWYWxpZCgpO1xuICB9XG5cbiAgX3VwZGF0ZUFjdGlvbnMoKSB7XG4gICAgY29uc3Qgc3VibWl0QnRuID0gdGhpcy5fZ2V0U3VibWl0QnRuKCk7XG4gICAgaWYgKHN1Ym1pdEJ0biAhPSBudWxsKSB7XG4gICAgICBpZiAodGhpcy5jYW5TdWJtaXQoKSkge1xuICAgICAgICB0aGlzLl9nZXRTdWJtaXRCdG4oKS5yZW1vdmVBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9nZXRTdWJtaXRCdG4oKS5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHJlc2V0QnRuID0gdGhpcy5fZ2V0UmVzZXRCdG4oKTtcbiAgICBpZiAocmVzZXRCdG4gIT0gbnVsbCkge1xuICAgICAgaWYgKHRoaXMuZGlydHkpIHtcbiAgICAgICAgcmVzZXRCdG4ucmVtb3ZlQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzZXRCdG4uc2V0QXR0cmlidXRlKCdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF91cGRhdGVDaGlsZHJlbih3aXRoVmFsaWRhdGlvbikge1xuICAgIGlmICh3aXRoVmFsaWRhdGlvbikge1xuICAgICAgdGhpcy5fdmFsaWRhdG9yUmVzdWx0cyA9IHt9O1xuICAgICAgdGhpcy5lcnJvcnMgPSBudWxsO1xuICAgICAgdGhpcy5yZXF1ZXN0VmFsaWRhdGlvbigpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl91cGRhdGVBY3Rpb25zVGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fdXBkYXRlQWN0aW9ucygpLCAwKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyB1cGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3VwZGF0ZUFjdGlvbnNUaW1lb3V0KTtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdfdmFsdWVzJykpIHtcbiAgICAgIHRoaXMuZ2V0Q29udHJvbHMoKS5mb3JFYWNoKChjb250cm9sKSA9PiB7XG4gICAgICAgIGNvbnRyb2wudmFsdWUgPSBnZXQodGhpcy5fdmFsdWVzLCBjb250cm9sLmlkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLl91cGRhdGVDaGlsZHJlbih0aGlzLnZhbGlkYXRlT25SZW5kZXIgJiYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnX3ZhbHVlcycpIHx8IGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2NoZW1hJykpKTtcbiAgfVxuXG4gIGFzeW5jIF9nZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5fZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgPGZvcm0gY2xhc3M9XCIke2NsYXNzTWFwKHsgc2Nyb2xsYWJsZTogdGhpcy5zY3JvbGxhYmxlIH0pfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyBjb250YWluZXI6IHRydWUsIGNvbmZpcm06IHRoaXMuX2NvbmZpcm0gfSl9XCI+XG4gICAgICAgICR7dGhpcy5oYXNIZWFkZXIgPT09IHRydWVcbiAgICAgICAgICA/IGh0bWxgXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7IHRpdGxlOiB0cnVlLCBjZW50ZXI6IHRoaXMuaGFzSGVhZGVyICYmICF0aGlzLmhhc0Zvb3RlciB9KX1cIj5cbiAgICAgICAgICAgICAgICAgIDxzbG90IG5hbWU9XCJ0aXRsZVwiPjwvc2xvdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgICAgPHNsb3QgbmFtZT1cImhlYWRlci1sZWZ0XCI+PC9zbG90PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICR7dGhpcy5yZWFkb25seSA9PT0gdHJ1ZSB8fCB0aGlzLmhhc0Zvb3RlciA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgOiBodG1sYDxkaXYgY2xhc3M9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxndi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicmVzZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgb3V0bGluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblJlc2V0fVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPVwiZ2VuZXJhbDp1cGRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJSZXNldFwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgIDxndi1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgICAgICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblN1Ym1pdH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1cImNvZGU6Y2hlY2tcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLnRpdGxlPVwiJHt0aGlzLnN1Ym1pdExhYmVsfVwiXG4gICAgICAgICAgICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gYH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiAnJ31cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIj4ke3RoaXMuc2NoZW1hICE9IG51bGwgPyB0aGlzLl9yZW5kZXJQYXJ0KCkgOiBodG1sYGB9PC9kaXY+XG4gICAgICAgICR7dGhpcy5oYXNGb290ZXIgPT09IHRydWUgJiYgdGhpcy5yZWFkb25seSAhPT0gdHJ1ZVxuICAgICAgICAgID8gaHRtbGBcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsZWZ0XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICA8Z3YtYnV0dG9uIGlkPVwicmVzZXRcIiBvdXRsaW5lZCBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblJlc2V0fVwiIGljb249XCJnZW5lcmFsOnVwZGF0ZVwiIHRpdGxlPVwiUmVzZXRcIj5SZXNldDwvZ3YtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGd2LWJ1dHRvbiBpZD1cInN1Ym1pdFwiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uU3VibWl0fVwiIGljb249XCJjb2RlOmNoZWNrXCIgLnRpdGxlPVwiJHt0aGlzLnN1Ym1pdExhYmVsfVwiXG4gICAgICAgICAgICAgICAgICAgID4ke3RoaXMuc3VibWl0TGFiZWx9PC9ndi1idXR0b25cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBgXG4gICAgICAgICAgOiAnJ31cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5gO1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGVtcHR5LFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIHtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRhaW5lciB7XG4gICAgICAgICAgZmxleC1ncm93OiAxO1xuXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZhZmFmYTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICAgICAgICAvKiBmb3IgRmlyZWZveCAqL1xuICAgICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyLFxuICAgICAgICAuZm9vdGVyLFxuICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50IHtcbiAgICAgICAgICBmbGV4LWdyb3c6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGFsaWduLXNlbGY6IGNlbnRlcjtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAgIC8qIGZvciBGaXJlZm94ICovXG4gICAgICAgICAgbWluLWhlaWdodDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZW50ID4gZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCB7XG4gICAgICAgICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybS5zY3JvbGxhYmxlIC5jb250ZW50IHtcbiAgICAgICAgICBvdmVyZmxvdzogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIGZvcm0uc2Nyb2xsYWJsZSAuY29udGVudCA+IGd2LXNjaGVtYS1mb3JtLWNvbnRyb2wge1xuICAgICAgICAgIG1heC13aWR0aDogNzc1cHg7XG4gICAgICAgICAgd2lkdGg6IDk1JTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIsXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBtaW4taGVpZ2h0OiA0NXB4O1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjZweDtcbiAgICAgICAgICAtLWd2LWljb24tLWM6ICNiZmJmYmY7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBwYWRkaW5nOiAwIDAuNXJlbTtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb290ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtLnNjcm9sbGFibGUgLmZvb3RlciB7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgbWF4LXdpZHRoOiA0MDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5mb290ZXIgLmxlZnQsXG4gICAgICAgIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4OiAxO1xuICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC5yaWdodCxcbiAgICAgICAgLmZvb3RlciAucmlnaHQge1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgICAgIH1cblxuICAgICAgICAuaGVhZGVyIC50aXRsZSB7XG4gICAgICAgICAgY29sb3I6ICMyODQ0NGY7XG4gICAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIgLnRpdGxlLmNlbnRlciB7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtLWJveCB7XG4gICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW07XG4gICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNvbmZpcm0tYm94X2FjdGlvbnMge1xuICAgICAgICAgIHBhZGRpbmc6IDFyZW0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLmxlZnQsXG4gICAgICAgIC5jb25maXJtIC5oZWFkZXIgLnJpZ2h0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5sZWZ0LFxuICAgICAgICAuY29uZmlybSAuZm9vdGVyIC5yaWdodCB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXNjaGVtYS1mb3JtJywgR3ZTY2hlbWFGb3JtKTtcbiJdfQ==
@@ -13,7 +13,8 @@
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 '../molecules/gv-option';
18
19
  import { dispatchCustomEvent } from '../lib/events';
19
20
  /**
@@ -175,4 +176,4 @@ export class GvTabs extends LitElement {
175
176
 
176
177
  }
177
178
  window.customElements.define('gv-tabs', GvTabs);
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi10YWJzLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsIkd2VGFicyIsInByb3BlcnRpZXMiLCJvcHRpb25zIiwidHlwZSIsIkFycmF5IiwiX29wdGlvbnMiLCJhdHRyaWJ1dGUiLCJ2YWx1ZSIsIlN0cmluZyIsInJlZmxlY3QiLCJ2YWxpZGF0b3IiLCJGdW5jdGlvbiIsImRpc2FibGVkIiwiQm9vbGVhbiIsInNtYWxsIiwidHJ1bmNhdGUiLCJzdHlsZXMiLCJfZ2V0Q29udGVudCIsImNvbnRlbnQiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsImFzc2lnbmVkTm9kZXMiLCJmaXJzdFVwZGF0ZWQiLCJsZW5ndGgiLCJpZCIsImlzQXJyYXkiLCJtYXAiLCJvcHRpb24iLCJ0aXRsZSIsInVwZGF0ZWQiLCJmb3JFYWNoIiwiYyIsImNsYXNzTGlzdCIsInJlbW92ZSIsInRhcmdldCIsImFkZCIsIl9jaGFuZ2VUYWIiLCJmcm9tIiwidG8iLCJfb25DbGljayIsImRldGFpbCIsImZpbmQiLCJlIiwiY29udGFpbnMiLCJ0aGVuIiwiY2F0Y2giLCJfY29udGV4dHVhbE9wdGlvbnMiLCJsYWJlbCIsInN1YnN0cmluZyIsInJlbmRlciIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsRUFBMEJDLElBQTFCLFFBQXNDLEtBQXRDO0FBQ0EsT0FBTyx3QkFBUDtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLE1BQU4sU0FBcUJILFVBQXJCLENBQWdDO0FBQ2hCLGFBQVZJLFVBQVUsR0FBRztBQUN0QixXQUFPO0FBQ0xDLE1BQUFBLE9BQU8sRUFBRTtBQUFFQyxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FESjtBQUVMQyxNQUFBQSxRQUFRLEVBQUU7QUFBRUYsUUFBQUEsSUFBSSxFQUFFQyxLQUFSO0FBQWVFLFFBQUFBLFNBQVMsRUFBRTtBQUExQixPQUZMO0FBR0xDLE1BQUFBLEtBQUssRUFBRTtBQUFFSixRQUFBQSxJQUFJLEVBQUVLLE1BQVI7QUFBZ0JDLFFBQUFBLE9BQU8sRUFBRTtBQUF6QixPQUhGO0FBSUxDLE1BQUFBLFNBQVMsRUFBRTtBQUFFUCxRQUFBQSxJQUFJLEVBQUVRO0FBQVIsT0FKTjtBQUtMQyxNQUFBQSxRQUFRLEVBQUU7QUFBRVQsUUFBQUEsSUFBSSxFQUFFVTtBQUFSLE9BTEw7QUFNTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVYLFFBQUFBLElBQUksRUFBRVU7QUFBUixPQU5GO0FBT0xFLE1BQUFBLFFBQVEsRUFBRTtBQUFFWixRQUFBQSxJQUFJLEVBQUVVO0FBQVI7QUFQTCxLQUFQO0FBU0Q7O0FBRWdCLGFBQU5HLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0w7QUFDQXBCLElBQUFBLEdBQUcsb3JCQUZFLENBQVA7QUFrRUQ7O0FBRURxQixFQUFBQSxXQUFXLEdBQUc7QUFDWixVQUFNQyxPQUFPLEdBQUcsS0FBS0MsVUFBTCxDQUFnQkMsYUFBaEIsQ0FBOEIsc0JBQTlCLENBQWhCO0FBQ0EsV0FBT0YsT0FBTyxDQUFDRyxhQUFSLEVBQVA7QUFDRDs7QUFFREMsRUFBQUEsWUFBWSxHQUFHO0FBQ2IsUUFBSSxLQUFLZixLQUFMLElBQWMsSUFBZCxJQUFzQixLQUFLTCxPQUFMLElBQWdCLElBQXRDLElBQThDLEtBQUtBLE9BQUwsQ0FBYXFCLE1BQWIsR0FBc0IsQ0FBeEUsRUFBMkU7QUFDekUsV0FBS2hCLEtBQUwsR0FBYSxLQUFLTCxPQUFMLENBQWEsQ0FBYixFQUFnQnNCLEVBQTdCO0FBQ0Q7QUFDRjs7QUFFVSxNQUFQdEIsT0FBTyxDQUFDQSxPQUFELEVBQVU7QUFDbkIsUUFBSUEsT0FBTyxJQUFJRSxLQUFLLENBQUNxQixPQUFOLENBQWN2QixPQUFkLENBQWYsRUFBdUM7QUFDckMsV0FBS0csUUFBTCxHQUFnQkgsT0FBTyxDQUFDd0IsR0FBUixDQUFhQyxNQUFELElBQVk7QUFDdEMsWUFBSSxPQUFPQSxNQUFQLEtBQWtCLFFBQXRCLEVBQWdDO0FBQzlCLGlCQUFPO0FBQUVILFlBQUFBLEVBQUUsRUFBRUcsTUFBTjtBQUFjQyxZQUFBQSxLQUFLLEVBQUVEO0FBQXJCLFdBQVA7QUFDRCxTQUZELE1BRU8sSUFBSSxPQUFPQSxNQUFQLEtBQWtCLFFBQWxCLElBQThCQSxNQUFNLENBQUNDLEtBQVAsSUFBZ0IsSUFBbEQsRUFBd0Q7QUFDN0QsaUJBQU87QUFBRUosWUFBQUEsRUFBRSxFQUFFRyxNQUFNLENBQUNILEVBQWI7QUFBaUJJLFlBQUFBLEtBQUssRUFBRUQsTUFBTSxDQUFDSDtBQUEvQixXQUFQO0FBQ0Q7O0FBQ0QsZUFBT0csTUFBUDtBQUNELE9BUGUsQ0FBaEI7QUFRRDtBQUNGOztBQUVVLE1BQVB6QixPQUFPLEdBQUc7QUFDWixXQUFPLEtBQUtHLFFBQVo7QUFDRDs7QUFFRHdCLEVBQUFBLE9BQU8sR0FBRztBQUNSLFVBQU1YLE9BQU8sR0FBRyxLQUFLRCxXQUFMLEVBQWhCOztBQUNBQyxJQUFBQSxPQUFPLENBQUNZLE9BQVIsQ0FBaUJDLENBQUQsSUFBT0EsQ0FBQyxDQUFDQyxTQUFGLENBQVlDLE1BQVosQ0FBbUIsU0FBbkIsQ0FBdkI7O0FBQ0EsUUFBSSxLQUFLMUIsS0FBVCxFQUFnQjtBQUNkLFlBQU0yQixNQUFNLEdBQUcsS0FBS2QsYUFBTCxDQUFvQixJQUFHLEtBQUtiLEtBQU0sRUFBbEMsQ0FBZjs7QUFDQSxVQUFJMkIsTUFBSixFQUFZO0FBQ1ZBLFFBQUFBLE1BQU0sQ0FBQ0YsU0FBUCxDQUFpQkcsR0FBakIsQ0FBcUIsU0FBckI7QUFDRDtBQUNGLEtBTEQsTUFLTztBQUNMakIsTUFBQUEsT0FBTyxDQUFDLENBQUQsQ0FBUCxDQUFXYyxTQUFYLENBQXFCRyxHQUFyQixDQUF5QixTQUF6QjtBQUNEO0FBQ0Y7O0FBRURDLEVBQUFBLFVBQVUsQ0FBQ0MsSUFBRCxFQUFPbkIsT0FBUCxFQUFnQlgsS0FBaEIsRUFBdUI7QUFDL0I4QixJQUFBQSxJQUFJLENBQUNMLFNBQUwsQ0FBZUMsTUFBZixDQUFzQixTQUF0QjtBQUNBZixJQUFBQSxPQUFPLENBQUNjLFNBQVIsQ0FBa0JHLEdBQWxCLENBQXNCLFNBQXRCO0FBQ0EsU0FBSzVCLEtBQUwsR0FBYUEsS0FBYjtBQUNBUixJQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sUUFBUCxFQUFpQjtBQUFFUSxNQUFBQSxLQUFGO0FBQVM4QixNQUFBQSxJQUFJLEVBQUVBLElBQUksQ0FBQ2IsRUFBcEI7QUFBd0JjLE1BQUFBLEVBQUUsRUFBRXBCLE9BQU8sQ0FBQ007QUFBcEMsS0FBakIsQ0FBbkI7QUFDRDs7QUFFRGUsRUFBQUEsUUFBUSxDQUFDO0FBQUVDLElBQUFBO0FBQUYsR0FBRCxFQUFhO0FBQ25CLFFBQUksQ0FBQyxLQUFLNUIsUUFBVixFQUFvQjtBQUNsQixZQUFNeUIsSUFBSSxHQUFHLEtBQUtwQixXQUFMLEdBQW1Cd0IsSUFBbkIsQ0FBeUJDLENBQUQsSUFBT0EsQ0FBQyxDQUFDVixTQUFGLENBQVlXLFFBQVosQ0FBcUIsU0FBckIsQ0FBL0IsQ0FBYjs7QUFDQSxZQUFNekIsT0FBTyxHQUFHLEtBQUtFLGFBQUwsQ0FBb0IsSUFBR29CLE1BQU0sQ0FBQ2hCLEVBQUcsRUFBakMsQ0FBaEI7QUFDQSxXQUFLTCxVQUFMLENBQWdCQyxhQUFoQixDQUE4QixXQUE5QixFQUEyQ2IsS0FBM0MsR0FBbUQ4QixJQUFJLENBQUNiLEVBQXhEOztBQUNBLFVBQUksS0FBS2QsU0FBVCxFQUFvQjtBQUNsQixhQUFLQSxTQUFMLENBQWU7QUFBRTJCLFVBQUFBLElBQUksRUFBRUEsSUFBSSxDQUFDYixFQUFiO0FBQWlCYyxVQUFBQSxFQUFFLEVBQUVwQixPQUFPLENBQUNNO0FBQTdCLFNBQWYsRUFDR29CLElBREgsQ0FDUSxNQUFNO0FBQ1YsZUFBS1IsVUFBTCxDQUFnQkMsSUFBaEIsRUFBc0JuQixPQUF0QixFQUErQnNCLE1BQU0sQ0FBQ2hCLEVBQXRDO0FBQ0QsU0FISCxFQUlHcUIsS0FKSCxDQUlTLE1BQU0sQ0FBRSxDQUpqQjtBQUtELE9BTkQsTUFNTztBQUNMLGFBQUtULFVBQUwsQ0FBZ0JDLElBQWhCLEVBQXNCbkIsT0FBdEIsRUFBK0JzQixNQUFNLENBQUNoQixFQUF0QztBQUNEO0FBQ0Y7QUFDRjs7QUFFcUIsTUFBbEJzQixrQkFBa0IsR0FBRztBQUN2QixRQUFJLEtBQUsvQixRQUFULEVBQW1CO0FBQ2pCLGFBQU8sS0FBS2IsT0FBTCxDQUFhd0IsR0FBYixDQUFrQkMsTUFBRCxJQUFZO0FBQ2xDLFlBQUksS0FBS3BCLEtBQUwsS0FBZW9CLE1BQU0sQ0FBQ0gsRUFBMUIsRUFBOEI7QUFDNUIsZ0JBQU11QixLQUFLLEdBQUdwQixNQUFNLENBQUNvQixLQUFQLElBQWdCcEIsTUFBTSxDQUFDQyxLQUFyQztBQUNBLGlCQUFPLEVBQUUsR0FBR0QsTUFBTDtBQUFhb0IsWUFBQUEsS0FBSyxFQUFFQSxLQUFLLENBQUNDLFNBQU4sQ0FBZ0IsQ0FBaEIsRUFBbUIsQ0FBbkI7QUFBcEIsV0FBUDtBQUNEOztBQUNELGVBQU9yQixNQUFQO0FBQ0QsT0FOTSxDQUFQO0FBT0Q7O0FBQ0QsV0FBTyxLQUFLekIsT0FBWjtBQUNEOztBQUVEK0MsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsV0FBT25ELElBQUkscUhBSXdCLEtBQUtnRCxrQkFKN0Isd0JBSXVFLEtBQUtQLFFBSjVFLGFBSWlHLEtBQUtoQyxLQUp0RyxrRUFBWDtBQVNEOztBQTFLb0M7QUE2S3ZDMkMsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixTQUE3QixFQUF3Q3BELE1BQXhDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCwgaHRtbCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1vcHRpb24nO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuXG4vKipcbiAqIFRhYnMgY29tcG9uZW50XG4gKlxuICogKiAjIyBEZXRhaWxzXG4gKiAqIFRoaXMgY29tcG9uZW50IHVzZSBndi1vcHRpb24gY29tcG9uZW50IHRvIGdlbmVyYXRlIHRhYnMuXG4gKlxuICogQGF0dHIge0FycmF5PGlkOiBzdHJpbmcgfCB7aWQsIHRpdGxlPywgaWNvbj8sIGFjdGl2ZT8sIGRlc2NyaXB0aW9uPywgbGFiZWw/fT59IG9wdGlvbnMgLSBBbiBhcnJheSBvZiBvcHRpb25zIGZvciBndi1vcHRpb24gc3ViIGNvbXBvbmVudFxuICogQHNsb3QgY29udGVudCAtIExpc3Qgb2YgZWxlbWVudHMgZm9yIHRhYnMgY29udGVudC4gU2hvdWxkIGhhdmUgYW4gaWQgcmVsYXRlZCB0byBvcHRpb25zLlxuICpcbiAqIEBhdHRyIHtTdHJpbmd9IHZhbHVlIC0gdGhlIG9wZW5lZCB0YWIgaWRcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIHRydWUgaWYgZGlzYWJsZWRcbiAqIEBhdHRyIHtCb29sZWFufSBzbWFsbCAtIHRydWUgaWYgeW91IHdhbnQgZGlzcGxheSB0YWJzIGJlbG93IG9mIHRpdGxlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gdHJ1bmNhdGUgLSB0cnVlIGlmIHlvdSB3YW50IHRydW5jYXRlIHRhYnMgdGl0bGVcbiAqIEBhdHRyIHtGdW5jdGlvbn0gdmFsaWRhdG9yIC0gYSBmdW5jdGlvbiB0aGF0J3MgY2FsbHMgd2hlbiB1c2VyIGNoYW5nZSB0YWIsIHRoaXMgaXMgdXNlZnVsIHRvIHZhbGlkYXRlIHRhYiBjaGFuZ2UuXG4gKlxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGFicy1vcHRpb25zLS1tPTBdIC0gVGFicyBvcHRpb25zIG1hcmdpblxuICovXG5leHBvcnQgY2xhc3MgR3ZUYWJzIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX29wdGlvbnM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdmFsaWRhdG9yOiB7IHR5cGU6IEZ1bmN0aW9uIH0sXG4gICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0cnVuY2F0ZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1jc3NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXSkge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgICAgICB0b3A6IC05OTk5cHg7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXS5jdXJyZW50KSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRhYnMge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIC0tZ3Ytb3B0aW9uLS1iZHJzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLnRhYnMge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbc21hbGxdKSBndi1vcHRpb24ge1xuICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3Ytb3B0aW9uIHtcbiAgICAgICAgICBtYXJnaW46IHZhcigtLWd2LXRhYnMtb3B0aW9ucy0tbSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoZ3YtYnV0dG9uKSB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgX2dldENvbnRlbnQoKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdzbG90W25hbWU9XCJjb250ZW50XCJdJyk7XG4gICAgcmV0dXJuIGNvbnRlbnQuYXNzaWduZWROb2RlcygpO1xuICB9XG5cbiAgZmlyc3RVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbnNbMF0uaWQ7XG4gICAgfVxuICB9XG5cbiAgc2V0IG9wdGlvbnMob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24sIHRpdGxlOiBvcHRpb24gfTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24udGl0bGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24uaWQsIHRpdGxlOiBvcHRpb24uaWQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICB1cGRhdGVkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9nZXRDb250ZW50KCk7XG4gICAgY29udGVudC5mb3JFYWNoKChjKSA9PiBjLmNsYXNzTGlzdC5yZW1vdmUoJ2N1cnJlbnQnKSk7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52YWx1ZX1gKTtcbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2N1cnJlbnQnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudFswXS5jbGFzc0xpc3QuYWRkKCdjdXJyZW50Jyk7XG4gICAgfVxuICB9XG5cbiAgX2NoYW5nZVRhYihmcm9tLCBjb250ZW50LCB2YWx1ZSkge1xuICAgIGZyb20uY2xhc3NMaXN0LnJlbW92ZSgnY3VycmVudCcpO1xuICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnY3VycmVudCcpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IHZhbHVlLCBmcm9tOiBmcm9tLmlkLCB0bzogY29udGVudC5pZCB9KTtcbiAgfVxuXG4gIF9vbkNsaWNrKHsgZGV0YWlsIH0pIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGZyb20gPSB0aGlzLl9nZXRDb250ZW50KCkuZmluZCgoZSkgPT4gZS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKGAjJHtkZXRhaWwuaWR9YCk7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3Ytb3B0aW9uJykudmFsdWUgPSBmcm9tLmlkO1xuICAgICAgaWYgKHRoaXMudmFsaWRhdG9yKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdG9yKHsgZnJvbTogZnJvbS5pZCwgdG86IGNvbnRlbnQuaWQgfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgX2NvbnRleHR1YWxPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLnRydW5jYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBvcHRpb24uaWQpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCB8fCBvcHRpb24udGl0bGU7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9uLCBsYWJlbDogbGFiZWwuc3Vic3RyaW5nKDAsIDEpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCIgY2xhc3M9XCJ0aXRsZVwiPjwvc2xvdD5cbiAgICAgICAgICA8Z3Ytb3B0aW9uIHNtYWxsIC5vcHRpb25zPVwiJHt0aGlzLl9jb250ZXh0dWFsT3B0aW9uc31cIiBAZ3Ytb3B0aW9uOnNlbGVjdD1cIiR7dGhpcy5fb25DbGlja31cIiAudmFsdWU9XCIke3RoaXMudmFsdWV9XCI+PC9ndi1vcHRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c2xvdCBuYW1lPVwiY29udGVudFwiPjwvc2xvdD5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXRhYnMnLCBHdlRhYnMpO1xuIl19
179
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi10YWJzLmpzIl0sIm5hbWVzIjpbImNzcyIsIkxpdEVsZW1lbnQiLCJodG1sIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsIkd2VGFicyIsInByb3BlcnRpZXMiLCJvcHRpb25zIiwidHlwZSIsIkFycmF5IiwiX29wdGlvbnMiLCJhdHRyaWJ1dGUiLCJ2YWx1ZSIsIlN0cmluZyIsInJlZmxlY3QiLCJ2YWxpZGF0b3IiLCJGdW5jdGlvbiIsImRpc2FibGVkIiwiQm9vbGVhbiIsInNtYWxsIiwidHJ1bmNhdGUiLCJzdHlsZXMiLCJfZ2V0Q29udGVudCIsImNvbnRlbnQiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvciIsImFzc2lnbmVkTm9kZXMiLCJmaXJzdFVwZGF0ZWQiLCJsZW5ndGgiLCJpZCIsImlzQXJyYXkiLCJtYXAiLCJvcHRpb24iLCJ0aXRsZSIsInVwZGF0ZWQiLCJmb3JFYWNoIiwiYyIsImNsYXNzTGlzdCIsInJlbW92ZSIsInRhcmdldCIsImFkZCIsIl9jaGFuZ2VUYWIiLCJmcm9tIiwidG8iLCJfb25DbGljayIsImRldGFpbCIsImZpbmQiLCJlIiwiY29udGFpbnMiLCJ0aGVuIiwiY2F0Y2giLCJfY29udGV4dHVhbE9wdGlvbnMiLCJsYWJlbCIsInN1YnN0cmluZyIsInJlbmRlciIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLFVBQWQsUUFBZ0MsYUFBaEM7QUFDQSxTQUFTQyxJQUFULFFBQXFCLFVBQXJCO0FBQ0EsT0FBTyx3QkFBUDtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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QixFQUF3Q3BELE1BQXhDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgTGl0RWxlbWVudCB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdsaXQtaHRtbCc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1vcHRpb24nO1xuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuXG4vKipcbiAqIFRhYnMgY29tcG9uZW50XG4gKlxuICogKiAjIyBEZXRhaWxzXG4gKiAqIFRoaXMgY29tcG9uZW50IHVzZSBndi1vcHRpb24gY29tcG9uZW50IHRvIGdlbmVyYXRlIHRhYnMuXG4gKlxuICogQGF0dHIge0FycmF5PGlkOiBzdHJpbmcgfCB7aWQsIHRpdGxlPywgaWNvbj8sIGFjdGl2ZT8sIGRlc2NyaXB0aW9uPywgbGFiZWw/fT59IG9wdGlvbnMgLSBBbiBhcnJheSBvZiBvcHRpb25zIGZvciBndi1vcHRpb24gc3ViIGNvbXBvbmVudFxuICogQHNsb3QgY29udGVudCAtIExpc3Qgb2YgZWxlbWVudHMgZm9yIHRhYnMgY29udGVudC4gU2hvdWxkIGhhdmUgYW4gaWQgcmVsYXRlZCB0byBvcHRpb25zLlxuICpcbiAqIEBhdHRyIHtTdHJpbmd9IHZhbHVlIC0gdGhlIG9wZW5lZCB0YWIgaWRcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIHRydWUgaWYgZGlzYWJsZWRcbiAqIEBhdHRyIHtCb29sZWFufSBzbWFsbCAtIHRydWUgaWYgeW91IHdhbnQgZGlzcGxheSB0YWJzIGJlbG93IG9mIHRpdGxlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gdHJ1bmNhdGUgLSB0cnVlIGlmIHlvdSB3YW50IHRydW5jYXRlIHRhYnMgdGl0bGVcbiAqIEBhdHRyIHtGdW5jdGlvbn0gdmFsaWRhdG9yIC0gYSBmdW5jdGlvbiB0aGF0J3MgY2FsbHMgd2hlbiB1c2VyIGNoYW5nZSB0YWIsIHRoaXMgaXMgdXNlZnVsIHRvIHZhbGlkYXRlIHRhYiBjaGFuZ2UuXG4gKlxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGFicy1vcHRpb25zLS1tPTBdIC0gVGFicyBvcHRpb25zIG1hcmdpblxuICovXG5leHBvcnQgY2xhc3MgR3ZUYWJzIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgb3B0aW9uczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX29wdGlvbnM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHZhbHVlOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdmFsaWRhdG9yOiB7IHR5cGU6IEZ1bmN0aW9uIH0sXG4gICAgICBkaXNhYmxlZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB0cnVuY2F0ZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1jc3NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXSkge1xuICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDM1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgbGVmdDogLTk5OTlweDtcbiAgICAgICAgICB0b3A6IC05OTk5cHg7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoW3Nsb3Q9J2NvbnRlbnQnXS5jdXJyZW50KSB7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBsZWZ0OiBhdXRvO1xuICAgICAgICAgIHRvcDogYXV0bztcbiAgICAgICAgfVxuXG4gICAgICAgIC5oZWFkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgfVxuXG4gICAgICAgIC50aXRsZSB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aW9ucyB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLnRhYnMge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIC0tZ3Ytb3B0aW9uLS1iZHJzOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgOmhvc3QoW3NtYWxsXSkgLnRhYnMge1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICA6aG9zdChbc21hbGxdKSBndi1vcHRpb24ge1xuICAgICAgICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3Ytb3B0aW9uIHtcbiAgICAgICAgICBtYXJnaW46IHZhcigtLWd2LXRhYnMtb3B0aW9ucy0tbSwgMCk7XG4gICAgICAgIH1cblxuICAgICAgICA6OnNsb3R0ZWQoZ3YtYnV0dG9uKSB7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDJweDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgX2dldENvbnRlbnQoKSB7XG4gICAgY29uc3QgY29udGVudCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCdzbG90W25hbWU9XCJjb250ZW50XCJdJyk7XG4gICAgcmV0dXJuIGNvbnRlbnQuYXNzaWduZWROb2RlcygpO1xuICB9XG5cbiAgZmlyc3RVcGRhdGVkKCkge1xuICAgIGlmICh0aGlzLnZhbHVlID09IG51bGwgJiYgdGhpcy5vcHRpb25zICE9IG51bGwgJiYgdGhpcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLm9wdGlvbnNbMF0uaWQ7XG4gICAgfVxuICB9XG5cbiAgc2V0IG9wdGlvbnMob3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zICYmIEFycmF5LmlzQXJyYXkob3B0aW9ucykpIHtcbiAgICAgIHRoaXMuX29wdGlvbnMgPSBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24sIHRpdGxlOiBvcHRpb24gfTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnb2JqZWN0JyAmJiBvcHRpb24udGl0bGUgPT0gbnVsbCkge1xuICAgICAgICAgIHJldHVybiB7IGlkOiBvcHRpb24uaWQsIHRpdGxlOiBvcHRpb24uaWQgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICB1cGRhdGVkKCkge1xuICAgIGNvbnN0IGNvbnRlbnQgPSB0aGlzLl9nZXRDb250ZW50KCk7XG4gICAgY29udGVudC5mb3JFYWNoKChjKSA9PiBjLmNsYXNzTGlzdC5yZW1vdmUoJ2N1cnJlbnQnKSk7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMucXVlcnlTZWxlY3RvcihgIyR7dGhpcy52YWx1ZX1gKTtcbiAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgdGFyZ2V0LmNsYXNzTGlzdC5hZGQoJ2N1cnJlbnQnKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudFswXS5jbGFzc0xpc3QuYWRkKCdjdXJyZW50Jyk7XG4gICAgfVxuICB9XG5cbiAgX2NoYW5nZVRhYihmcm9tLCBjb250ZW50LCB2YWx1ZSkge1xuICAgIGZyb20uY2xhc3NMaXN0LnJlbW92ZSgnY3VycmVudCcpO1xuICAgIGNvbnRlbnQuY2xhc3NMaXN0LmFkZCgnY3VycmVudCcpO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjaGFuZ2UnLCB7IHZhbHVlLCBmcm9tOiBmcm9tLmlkLCB0bzogY29udGVudC5pZCB9KTtcbiAgfVxuXG4gIF9vbkNsaWNrKHsgZGV0YWlsIH0pIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIGNvbnN0IGZyb20gPSB0aGlzLl9nZXRDb250ZW50KCkuZmluZCgoZSkgPT4gZS5jbGFzc0xpc3QuY29udGFpbnMoJ2N1cnJlbnQnKSk7XG4gICAgICBjb25zdCBjb250ZW50ID0gdGhpcy5xdWVyeVNlbGVjdG9yKGAjJHtkZXRhaWwuaWR9YCk7XG4gICAgICB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3Ytb3B0aW9uJykudmFsdWUgPSBmcm9tLmlkO1xuICAgICAgaWYgKHRoaXMudmFsaWRhdG9yKSB7XG4gICAgICAgIHRoaXMudmFsaWRhdG9yKHsgZnJvbTogZnJvbS5pZCwgdG86IGNvbnRlbnQuaWQgfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jYXRjaCgoKSA9PiB7fSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLl9jaGFuZ2VUYWIoZnJvbSwgY29udGVudCwgZGV0YWlsLmlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgX2NvbnRleHR1YWxPcHRpb25zKCkge1xuICAgIGlmICh0aGlzLnRydW5jYXRlKSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBvcHRpb24uaWQpIHtcbiAgICAgICAgICBjb25zdCBsYWJlbCA9IG9wdGlvbi5sYWJlbCB8fCBvcHRpb24udGl0bGU7XG4gICAgICAgICAgcmV0dXJuIHsgLi4ub3B0aW9uLCBsYWJlbDogbGFiZWwuc3Vic3RyaW5nKDAsIDEpIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5vcHRpb25zO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYDxkaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0YWJzXCI+XG4gICAgICAgICAgPHNsb3QgbmFtZT1cInRpdGxlXCIgY2xhc3M9XCJ0aXRsZVwiPjwvc2xvdD5cbiAgICAgICAgICA8Z3Ytb3B0aW9uIHNtYWxsIC5vcHRpb25zPVwiJHt0aGlzLl9jb250ZXh0dWFsT3B0aW9uc31cIiBAZ3Ytb3B0aW9uOnNlbGVjdD1cIiR7dGhpcy5fb25DbGlja31cIiAudmFsdWU9XCIke3RoaXMudmFsdWV9XCI+PC9ndi1vcHRpb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8c2xvdCBuYW1lPVwiY29udGVudFwiPjwvc2xvdD5cbiAgICA8L2Rpdj5gO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXRhYnMnLCBHdlRhYnMpO1xuIl19
@@ -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 { LitElement, html, css } from 'lit';
16
+ import { LitElement, html, css } from 'lit-element';
17
17
  import '../molecules/gv-nav';
18
- import { repeat } from 'lit/directives/repeat';
19
- import { classMap } from 'lit/directives/class-map';
18
+ import { repeat } from 'lit-html/directives/repeat';
19
+ import { classMap } from 'lit-html/directives/class-map';
20
20
  import { isSameRoutes } from '../lib/utils';
21
21
  /**
22
22
  * User menu
@@ -146,4 +146,4 @@ export class GvUserMenu extends LitElement {
146
146
 
147
147
  }
148
148
  window.customElements.define('gv-user-menu', GvUserMenu);
149
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi11c2VyLW1lbnUuanMiXSwibmFtZXMiOlsiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJyZXBlYXQiLCJjbGFzc01hcCIsImlzU2FtZVJvdXRlcyIsIkd2VXNlck1lbnUiLCJwcm9wZXJ0aWVzIiwiYXZhdGFyIiwidHlwZSIsIlN0cmluZyIsInJvdXRlcyIsIkFycmF5IiwiX3JvdXRlcyIsImF0dHJpYnV0ZSIsIl9pc0Nsb3NlZCIsIkJvb2xlYW4iLCJ1c2VybmFtZSIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX29uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJfb25Nb3VzZUxlYXZlIiwiX29uU2VsZWN0IiwiX2hhc09uZUl0ZW0iLCJsZW5ndGgiLCJjYW5kaWRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJjYW5kaWRhdGVzIiwiYWxsIiwiZnV0dXJlUm91dGVzIiwiZmlsdGVyIiwiciIsIl9yZW5kZXJGaXJzdEl0ZW0iLCJmaXJzdEl0ZW0iLCJpY29uIiwicGF0aCIsInRpdGxlIiwicmVuZGVyIiwiY2xhc3NlcyIsImNsb3NlZCIsInJvdXRlIiwiaW5kZXgiLCJfcmVuZGVySXRlbSIsImNoaWxkUm91dGUiLCJzZXBhcmF0b3IiLCJhY3RpdmUiLCJzdHlsZSIsInRhcmdldCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsS0FBdEM7QUFDQSxPQUFPLHFCQUFQO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qix1QkFBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLDBCQUF6QjtBQUNBLFNBQVND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QUFDSyxNQUFOLEdBQWUsUUFBZixHQUEwQixFQUR0RixZQUVBTCxLQUFLLENBQUNNLEtBRk4sc0JBS0VOLEtBQUssQ0FBQ04sSUFMUixZQU1FTSxLQUFLLENBQUNMLElBTlIsYUFPR0ssS0FBSyxDQUFDSixLQVBULGNBUUlJLEtBQUssQ0FBQ08sTUFSVixhQVNFLEtBQUszQixTQVRQLG9CQUFYO0FBWUQ7QUFDRjs7QUF6UXdDO0FBNFEzQzRCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkNoRCxVQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQnO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtbmF2JztcbmltcG9ydCB7IHJlcGVhdCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL3JlcGVhdCc7XG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBpc1NhbWVSb3V0ZXMgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuXG4vKipcbiAqIFVzZXIgbWVudVxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi1saW5rOmNsaWNrIC0gQ3VzdG9tIGV2ZW50IHdoZW4gbmF2IGxpbmsgY2xpY2tcbiAqXG4gKiBAYXR0ciB7QXJyYXl9IHJvdXRlcyAtIGRlZmluaXRpb24gb2YgdXNlciByb3V0ZXMgW3tpY29uOiBTdHJpbmcsIHBhdGg6IFN0cmluZywgdGl0bGU6IFByb21pc2U8U3RyaW5nPiwgYWN0aXZlOiBCb29sZWFuLCByb3V0ZXM6IEFycmF5PGFueT5dXG4gKiBAYXR0ciB7U3RyaW5nfSB1c2VybmFtZSAtIG5hbWUgb2YgdGhlIHVzZXJcbiAqIEBhdHRyIHtTdHJpbmd9IGF2YXRhciAtIHVybCBvZiB0aGUgdXNlciBhdmF0YXJcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIENvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYz12YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKV0gLSBIb3ZlciBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi11c2VyLW1lbnUtLWJnYz10cmFuc3BhcmVudF0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1saXN0LS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZildIC0gTGlzdCBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBIb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYmRjPWxpZ2h0Z3JleV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXVzZXItbWVudS0tdHNoPW5vbmVdIC0gVGV4dCBzaGFkb3dcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtdXNlci1tZW51LWljb24tLWM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKV0gLSBJY29uIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi11c2VyLW1lbnUtaWNvbi0tcz0xNnB4XSAtIEhlaWdodCBhbmQgaWNvbiB3aWR0aFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdXNlci1tZW51LWxpbmstYS0tcGg9MHB4XSAtIExpbmsgaG9yaXpvbnRhbCBwYWRkaW5nXG4gKiBAY3NzcHJvcCB7U3RyaW5nfSBbLS1ndi11c2VyLW1lbnUtbGluay0tdGE9cmlnaHRdIC0gVGV4dCBhbGlnblxuICovXG5leHBvcnQgY2xhc3MgR3ZVc2VyTWVudSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF2YXRhcjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHJvdXRlczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX3JvdXRlczogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2lzQ2xvc2VkOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHVzZXJuYW1lOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Y3NzXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLWJkYzogdmFyKC0tZ3YtdXNlci1tZW51LS1iZGMsIGxpZ2h0Z3JleSk7XG4gICAgICAgICAgLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNikpO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi11c2VyLW1lbnUtLWJnYywgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgIC0tbGlzdC1iZ2M6IHZhcigtLWd2LXVzZXItbWVudS1saXN0LS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWhvdmVyLWJnYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgLS1ndi1saW5rLWFjdGl2ZS0tYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1jLCB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tcywgMTZweCk7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXBoOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay1hLS1waCwgMHB4KTtcbiAgICAgICAgICAtLWd2LWxpbmstLXRhOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay0tdGEsIHJpZ2h0KTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnUge1xuICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYyk7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDhweCAyNHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIG1pbi13aWR0aDogMTc1cHg7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IHZhcigtLWd2LXVzZXItbWVudS0tdHNoLCBub25lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDo6c2xvdHRlZCgqKSB7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUubm8tdXNlciB7XG4gICAgICAgICAgcGFkZGluZzogNXB4IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X190aXRsZSBndi1saW5rIHtcbiAgICAgICAgICAtLWd2LWxpbmstYS0tcGg6IDA7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXB2OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUgc3BhbiB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlID4gZ3YtaWNvbiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwcztcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saXN0LWJnYyk7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gICAgICAgICAgcGFkZGluZzogMnB4IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1iZGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9faXRlbTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taG92ZXItYmdjKTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCB2YXIoLS1iZGMpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cblxuICAgICAgICBndi1saW5rIHtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIGZvciBhbmltYXRpb25zICovXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMsIDAuMnM7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19ncm91cCB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodCwgI2VmZWZlZik7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9fZ3JvdXBfX3RpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrZXIsICMzODNlM2YpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2VkIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMmVtKTtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlZCBndi1pY29uIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25DbGljayhlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2lzQ2xvc2VkID0gIXRoaXMuX2lzQ2xvc2VkO1xuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25TZWxlY3QoKSB7XG4gICAgdGhpcy5faXNDbG9zZWQgPSB0cnVlO1xuICB9XG5cbiAgX2hhc09uZUl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlcm5hbWUgPT0gbnVsbCAmJiB0aGlzLl9yb3V0ZXMgJiYgdGhpcy5fcm91dGVzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHNldCByb3V0ZXMoY2FuZGlkYXRlKSB7XG4gICAgaWYgKGNhbmRpZGF0ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKGNhbmRpZGF0ZSkudGhlbigoY2FuZGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAoY2FuZGlkYXRlcykge1xuICAgICAgICAgIFByb21pc2UuYWxsKGNhbmRpZGF0ZXMpLnRoZW4oKGZ1dHVyZVJvdXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1NhbWVSb3V0ZXModGhpcy5fcm91dGVzLCBmdXR1cmVSb3V0ZXMpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3JvdXRlcyA9IGZ1dHVyZVJvdXRlcy5maWx0ZXIoKHIpID0+IHIgIT0gbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcm91dGVzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgX3JlbmRlckZpcnN0SXRlbSgpIHtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICBpZiAodGhpcy51c2VybmFtZSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8bGkgY2xhc3M9XCJ1c2VyLW1lbnVfX3RpdGxlXCIgQGNsaWNrPSR7dGhpcy5fb25DbGlja30+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3Bhbj4ke3RoaXMudXNlcm5hbWV9PC9zcGFuPlxuICAgICAgICAgIDxndi1pY29uIHNoYXBlPVwiZGVzaWduOnRyaWFuZ2xlXCI+PC9ndi1pY29uPlxuICAgICAgICA8L2xpPmA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2hhc09uZUl0ZW0oKSkge1xuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSB0aGlzLl9yb3V0ZXNbMF07XG4gICAgICAgIHJldHVybiBodG1sYDxsaSBjbGFzcz1cInVzZXItbWVudV9fdGl0bGUgbm8tdXNlclwiIEBjbGljaz0ke3RoaXMuX29uQ2xpY2t9PlxuICAgICAgICAgIDxndi1saW5rIC5pY29uPVwiJHtmaXJzdEl0ZW0uaWNvbn1cIiAucGF0aD1cIiR7Zmlyc3RJdGVtLnBhdGh9XCIgLnRpdGxlPVwiJHtmaXJzdEl0ZW0udGl0bGV9XCIgQGNsaWNrPSR7dGhpcy5fb25TZWxlY3R9PjwvZ3YtbGluaz5cbiAgICAgICAgPC9saT5gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7IGNsb3NlZDogdGhpcy5faXNDbG9zZWQgfTtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPG5hdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCIgQG1vdXNlbGVhdmU9JHt0aGlzLl9vbk1vdXNlTGVhdmV9PlxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJGaXJzdEl0ZW0oKX1cblxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci1tZW51X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInVzZXItbWVudV9fbGlzdFwiPlxuICAgICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgICAgdGhpcy5fcm91dGVzLFxuICAgICAgICAgICAgICAgICAgKHJvdXRlKSA9PiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgIChyb3V0ZSwgaW5kZXgpID0+IGh0bWxgICR7dGhpcy5faGFzT25lSXRlbSgpID8gaHRtbGBgIDogdGhpcy5fcmVuZGVySXRlbShyb3V0ZSl9IGAsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICBgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgX3JlbmRlckl0ZW0ocm91dGUpIHtcbiAgICBpZiAocm91dGUucm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2dyb3VwXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1tZW51X19saXN0X19ncm91cF9fdGl0bGVcIj4ke3JvdXRlLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgcm91dGUucm91dGVzLFxuICAgICAgICAgIChjaGlsZFJvdXRlKSA9PiBjaGlsZFJvdXRlLFxuICAgICAgICAgIChjaGlsZFJvdXRlLCBpbmRleCkgPT4gaHRtbGAgJHt0aGlzLl9yZW5kZXJJdGVtKGNoaWxkUm91dGUpfSBgLFxuICAgICAgICApfVxuICAgICAgPC91bD5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGA8bGlcbiAgICAgICAgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2l0ZW0gJHtyb3V0ZS5zZXBhcmF0b3IgPyAnc2VwYXJhdG9yJyA6ICcnfSAke3JvdXRlLmFjdGl2ZSA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgc3R5bGU9XCIke3JvdXRlLnN0eWxlfVwiXG4gICAgICA+XG4gICAgICAgIDxndi1saW5rXG4gICAgICAgICAgLmljb249XCIke3JvdXRlLmljb259XCJcbiAgICAgICAgICAucGF0aD1cIiR7cm91dGUucGF0aH1cIlxuICAgICAgICAgIC50aXRsZT1cIiR7cm91dGUudGl0bGV9XCJcbiAgICAgICAgICAudGFyZ2V0PVwiJHtyb3V0ZS50YXJnZXR9XCJcbiAgICAgICAgICBAY2xpY2s9JHt0aGlzLl9vblNlbGVjdH1cbiAgICAgICAgPjwvZ3YtbGluaz5cbiAgICAgIDwvbGk+YDtcbiAgICB9XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdXNlci1tZW51JywgR3ZVc2VyTWVudSk7XG4iXX0=
149
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi11c2VyLW1lbnUuanMiXSwibmFtZXMiOlsiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJyZXBlYXQiLCJjbGFzc01hcCIsImlzU2FtZVJvdXRlcyIsIkd2VXNlck1lbnUiLCJwcm9wZXJ0aWVzIiwiYXZhdGFyIiwidHlwZSIsIlN0cmluZyIsInJvdXRlcyIsIkFycmF5IiwiX3JvdXRlcyIsImF0dHJpYnV0ZSIsIl9pc0Nsb3NlZCIsIkJvb2xlYW4iLCJ1c2VybmFtZSIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiX29uQ2xpY2siLCJlIiwicHJldmVudERlZmF1bHQiLCJfb25Nb3VzZUxlYXZlIiwiX29uU2VsZWN0IiwiX2hhc09uZUl0ZW0iLCJsZW5ndGgiLCJjYW5kaWRhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJjYW5kaWRhdGVzIiwiYWxsIiwiZnV0dXJlUm91dGVzIiwiZmlsdGVyIiwiciIsIl9yZW5kZXJGaXJzdEl0ZW0iLCJmaXJzdEl0ZW0iLCJpY29uIiwicGF0aCIsInRpdGxlIiwicmVuZGVyIiwiY2xhc3NlcyIsImNsb3NlZCIsInJvdXRlIiwiaW5kZXgiLCJfcmVuZGVySXRlbSIsImNoaWxkUm91dGUiLCJzZXBhcmF0b3IiLCJhY3RpdmUiLCJzdHlsZSIsInRhcmdldCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsYUFBdEM7QUFDQSxPQUFPLHFCQUFQO0FBQ0EsU0FBU0MsTUFBVCxRQUF1Qiw0QkFBdkI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLCtCQUF6QjtBQUNBLFNBQVND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QUFDSyxNQUFOLEdBQWUsUUFBZixHQUEwQixFQUR0RixZQUVBTCxLQUFLLENBQUNNLEtBRk4sc0JBS0VOLEtBQUssQ0FBQ04sSUFMUixZQU1FTSxLQUFLLENBQUNMLElBTlIsYUFPR0ssS0FBSyxDQUFDSixLQVBULGNBUUlJLEtBQUssQ0FBQ08sTUFSVixhQVNFLEtBQUszQixTQVRQLG9CQUFYO0FBWUQ7QUFDRjs7QUF6UXdDO0FBNFEzQzRCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsY0FBN0IsRUFBNkNoRCxVQUE3QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1uYXYnO1xuaW1wb3J0IHsgcmVwZWF0IH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9yZXBlYXQnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBpc1NhbWVSb3V0ZXMgfSBmcm9tICcuLi9saWIvdXRpbHMnO1xuXG4vKipcbiAqIFVzZXIgbWVudVxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBndi1saW5rOmNsaWNrIC0gQ3VzdG9tIGV2ZW50IHdoZW4gbmF2IGxpbmsgY2xpY2tcbiAqXG4gKiBAYXR0ciB7QXJyYXl9IHJvdXRlcyAtIGRlZmluaXRpb24gb2YgdXNlciByb3V0ZXMgW3tpY29uOiBTdHJpbmcsIHBhdGg6IFN0cmluZywgdGl0bGU6IFByb21pc2U8U3RyaW5nPiwgYWN0aXZlOiBCb29sZWFuLCByb3V0ZXM6IEFycmF5PGFueT5dXG4gKiBAYXR0ciB7U3RyaW5nfSB1c2VybmFtZSAtIG5hbWUgb2YgdGhlIHVzZXJcbiAqIEBhdHRyIHtTdHJpbmd9IGF2YXRhciAtIHVybCBvZiB0aGUgdXNlciBhdmF0YXJcbiAqXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYz12YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWRhcmssICMyNjI2MjYpXSAtIENvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYz12YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKV0gLSBIb3ZlciBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi11c2VyLW1lbnUtLWJnYz10cmFuc3BhcmVudF0gLSBCYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1saXN0LS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZildIC0gTGlzdCBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS1ob3Zlci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKV0gLSBIb3ZlciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXVzZXItbWVudS0tYmRjPWxpZ2h0Z3JleV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXVzZXItbWVudS0tdHNoPW5vbmVdIC0gVGV4dCBzaGFkb3dcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtdXNlci1tZW51LWljb24tLWM9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKV0gLSBJY29uIGNvbG9yXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi11c2VyLW1lbnUtaWNvbi0tcz0xNnB4XSAtIEhlaWdodCBhbmQgaWNvbiB3aWR0aFxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdXNlci1tZW51LWxpbmstYS0tcGg9MHB4XSAtIExpbmsgaG9yaXpvbnRhbCBwYWRkaW5nXG4gKiBAY3NzcHJvcCB7U3RyaW5nfSBbLS1ndi11c2VyLW1lbnUtbGluay0tdGE9cmlnaHRdIC0gVGV4dCBhbGlnblxuICovXG5leHBvcnQgY2xhc3MgR3ZVc2VyTWVudSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGF2YXRhcjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHJvdXRlczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgX3JvdXRlczogeyB0eXBlOiBBcnJheSwgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgICAgX2lzQ2xvc2VkOiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIHVzZXJuYW1lOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Y3NzXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLWJkYzogdmFyKC0tZ3YtdXNlci1tZW51LS1iZGMsIGxpZ2h0Z3JleSk7XG4gICAgICAgICAgLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItZGFyaywgIzI2MjYyNikpO1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi11c2VyLW1lbnUtLWJnYywgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgIC0tbGlzdC1iZ2M6IHZhcigtLWd2LXVzZXItbWVudS1saXN0LS1iZ2MsIHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWhvdmVyLWJnYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1iZ2MsIHZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjODZjM2QwKSk7XG4gICAgICAgICAgLS1ndi1saW5rLWFjdGl2ZS0tYzogdmFyKC0tZ3YtdXNlci1tZW51LWhvdmVyLS1jLCB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrZXN0LCAjMDAwMDAwKSk7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiB2YXIoLS1ndi11c2VyLW1lbnUtaWNvbi0tcywgMTZweCk7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXBoOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay1hLS1waCwgMHB4KTtcbiAgICAgICAgICAtLWd2LWxpbmstLXRhOiB2YXIoLS1ndi11c2VyLW1lbnUtbGluay0tdGEsIHJpZ2h0KTtcbiAgICAgICAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnUge1xuICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBjb2xvcjogdmFyKC0tYyk7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHBhZGRpbmc6IDhweCAyNHB4O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICAgICAgIG1pbi13aWR0aDogMTc1cHg7XG4gICAgICAgICAgdGV4dC1zaGFkb3c6IHZhcigtLWd2LXVzZXItbWVudS0tdHNoLCBub25lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIDo6c2xvdHRlZCgqKSB7XG4gICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUubm8tdXNlciB7XG4gICAgICAgICAgcGFkZGluZzogNXB4IDI0cHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X190aXRsZSBndi1saW5rIHtcbiAgICAgICAgICAtLWd2LWxpbmstYS0tcGg6IDA7XG4gICAgICAgICAgLS1ndi1saW5rLWEtLXB2OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fdGl0bGUgc3BhbiB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuNHJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX3RpdGxlID4gZ3YtaWNvbiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZSAwcztcbiAgICAgICAgfVxuXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1saXN0LWJnYyk7XG4gICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGVhc2UgMHM7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtIHtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIHRyYW5zaXRpb246IGFsbCAwLjVzIGVhc2U7XG4gICAgICAgICAgcGFkZGluZzogMnB4IDMwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19pdGVtOmxhc3QtY2hpbGQge1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1iZGMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9faXRlbTpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0taG92ZXItYmdjKTtcbiAgICAgICAgICBib3JkZXItbGVmdDogMXB4IGRvdHRlZCB2YXIoLS1iZGMpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIH1cblxuICAgICAgICBndi1saW5rIHtcbiAgICAgICAgICBtYXJnaW46IDBweDtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgLnNlcGFyYXRvciB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgIH1cblxuICAgICAgICAuYWN0aXZlIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpO1xuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG5cbiAgICAgICAgLyoqIGZvciBhbmltYXRpb25zICovXG4gICAgICAgIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IHZpc2libGU7XG4gICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCUpO1xuICAgICAgICAgIHotaW5kZXg6IDEwMDtcbiAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcywgMHMsIDAuMnM7XG4gICAgICAgIH1cblxuICAgICAgICAudXNlci1tZW51X19saXN0X19ncm91cCB7XG4gICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHZhcigtLWJkYyk7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodCwgI2VmZWZlZik7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLnVzZXItbWVudV9fbGlzdF9fZ3JvdXBfX3RpdGxlIHtcbiAgICAgICAgICBmb250LXNpemU6IHNtYWxsO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrZXIsICMzODNlM2YpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tYmRjKTtcbiAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xvc2VkIC51c2VyLW1lbnVfX2xpc3Qge1xuICAgICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMmVtKTtcbiAgICAgICAgICB6LWluZGV4OiAtMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24ge1xuICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDBkZWcpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsb3NlZCBndi1pY29uIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25DbGljayhlKSB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMuX2lzQ2xvc2VkID0gIXRoaXMuX2lzQ2xvc2VkO1xuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICB0aGlzLl9pc0Nsb3NlZCA9IHRydWU7XG4gIH1cblxuICBfb25TZWxlY3QoKSB7XG4gICAgdGhpcy5faXNDbG9zZWQgPSB0cnVlO1xuICB9XG5cbiAgX2hhc09uZUl0ZW0oKSB7XG4gICAgcmV0dXJuIHRoaXMudXNlcm5hbWUgPT0gbnVsbCAmJiB0aGlzLl9yb3V0ZXMgJiYgdGhpcy5fcm91dGVzLmxlbmd0aCA9PT0gMTtcbiAgfVxuXG4gIHNldCByb3V0ZXMoY2FuZGlkYXRlKSB7XG4gICAgaWYgKGNhbmRpZGF0ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKGNhbmRpZGF0ZSkudGhlbigoY2FuZGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAoY2FuZGlkYXRlcykge1xuICAgICAgICAgIFByb21pc2UuYWxsKGNhbmRpZGF0ZXMpLnRoZW4oKGZ1dHVyZVJvdXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1NhbWVSb3V0ZXModGhpcy5fcm91dGVzLCBmdXR1cmVSb3V0ZXMpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3JvdXRlcyA9IGZ1dHVyZVJvdXRlcy5maWx0ZXIoKHIpID0+IHIgIT0gbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcm91dGVzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgX3JlbmRlckZpcnN0SXRlbSgpIHtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICBpZiAodGhpcy51c2VybmFtZSkge1xuICAgICAgICByZXR1cm4gaHRtbGA8bGkgY2xhc3M9XCJ1c2VyLW1lbnVfX3RpdGxlXCIgQGNsaWNrPSR7dGhpcy5fb25DbGlja30+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3Bhbj4ke3RoaXMudXNlcm5hbWV9PC9zcGFuPlxuICAgICAgICAgIDxndi1pY29uIHNoYXBlPVwiZGVzaWduOnRyaWFuZ2xlXCI+PC9ndi1pY29uPlxuICAgICAgICA8L2xpPmA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX2hhc09uZUl0ZW0oKSkge1xuICAgICAgICBjb25zdCBmaXJzdEl0ZW0gPSB0aGlzLl9yb3V0ZXNbMF07XG4gICAgICAgIHJldHVybiBodG1sYDxsaSBjbGFzcz1cInVzZXItbWVudV9fdGl0bGUgbm8tdXNlclwiIEBjbGljaz0ke3RoaXMuX29uQ2xpY2t9PlxuICAgICAgICAgIDxndi1saW5rIC5pY29uPVwiJHtmaXJzdEl0ZW0uaWNvbn1cIiAucGF0aD1cIiR7Zmlyc3RJdGVtLnBhdGh9XCIgLnRpdGxlPVwiJHtmaXJzdEl0ZW0udGl0bGV9XCIgQGNsaWNrPSR7dGhpcy5fb25TZWxlY3R9PjwvZ3YtbGluaz5cbiAgICAgICAgPC9saT5gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7IGNsb3NlZDogdGhpcy5faXNDbG9zZWQgfTtcbiAgICBpZiAodGhpcy5fcm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGBcbiAgICAgICAgPG5hdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAgICAgPHVsIGNsYXNzPVwidXNlci1tZW51XCIgQG1vdXNlbGVhdmU9JHt0aGlzLl9vbk1vdXNlTGVhdmV9PlxuICAgICAgICAgICAgJHt0aGlzLl9yZW5kZXJGaXJzdEl0ZW0oKX1cblxuICAgICAgICAgICAgPGxpIGNsYXNzPVwidXNlci1tZW51X19jb250ZW50XCI+XG4gICAgICAgICAgICAgIDx1bCBjbGFzcz1cInVzZXItbWVudV9fbGlzdFwiPlxuICAgICAgICAgICAgICAgICR7cmVwZWF0KFxuICAgICAgICAgICAgICAgICAgdGhpcy5fcm91dGVzLFxuICAgICAgICAgICAgICAgICAgKHJvdXRlKSA9PiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgIChyb3V0ZSwgaW5kZXgpID0+IGh0bWxgICR7dGhpcy5faGFzT25lSXRlbSgpID8gaHRtbGBgIDogdGhpcy5fcmVuZGVySXRlbShyb3V0ZSl9IGAsXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgPC9uYXY+XG4gICAgICBgO1xuICAgIH1cbiAgICByZXR1cm4gaHRtbGBgO1xuICB9XG5cbiAgX3JlbmRlckl0ZW0ocm91dGUpIHtcbiAgICBpZiAocm91dGUucm91dGVzKSB7XG4gICAgICByZXR1cm4gaHRtbGA8dWwgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2dyb3VwXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXNlci1tZW51X19saXN0X19ncm91cF9fdGl0bGVcIj4ke3JvdXRlLnRpdGxlfTwvc3Bhbj5cbiAgICAgICAgJHtyZXBlYXQoXG4gICAgICAgICAgcm91dGUucm91dGVzLFxuICAgICAgICAgIChjaGlsZFJvdXRlKSA9PiBjaGlsZFJvdXRlLFxuICAgICAgICAgIChjaGlsZFJvdXRlLCBpbmRleCkgPT4gaHRtbGAgJHt0aGlzLl9yZW5kZXJJdGVtKGNoaWxkUm91dGUpfSBgLFxuICAgICAgICApfVxuICAgICAgPC91bD5gO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gaHRtbGA8bGlcbiAgICAgICAgY2xhc3M9XCJ1c2VyLW1lbnVfX2xpc3RfX2l0ZW0gJHtyb3V0ZS5zZXBhcmF0b3IgPyAnc2VwYXJhdG9yJyA6ICcnfSAke3JvdXRlLmFjdGl2ZSA/ICdhY3RpdmUnIDogJyd9XCJcbiAgICAgICAgc3R5bGU9XCIke3JvdXRlLnN0eWxlfVwiXG4gICAgICA+XG4gICAgICAgIDxndi1saW5rXG4gICAgICAgICAgLmljb249XCIke3JvdXRlLmljb259XCJcbiAgICAgICAgICAucGF0aD1cIiR7cm91dGUucGF0aH1cIlxuICAgICAgICAgIC50aXRsZT1cIiR7cm91dGUudGl0bGV9XCJcbiAgICAgICAgICAudGFyZ2V0PVwiJHtyb3V0ZS50YXJnZXR9XCJcbiAgICAgICAgICBAY2xpY2s9JHt0aGlzLl9vblNlbGVjdH1cbiAgICAgICAgPjwvZ3YtbGluaz5cbiAgICAgIDwvbGk+YDtcbiAgICB9XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdXNlci1tZW51JywgR3ZVc2VyTWVudSk7XG4iXX0=
@@ -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, html, LitElement } from 'lit';
16
+ import { css, html, LitElement } from 'lit-element';
17
17
  import '../molecules/gv-nav';
18
18
  import '../atoms/gv-image';
19
19
  import { isSameRoutes } from '../lib/utils';
@@ -79,4 +79,4 @@ export class GvVerticalMenu extends LitElement {
79
79
 
80
80
  }
81
81
  window.customElements.define('gv-vertical-menu', GvVerticalMenu);
82
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi12ZXJ0aWNhbC1tZW51LmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJMaXRFbGVtZW50IiwiaXNTYW1lUm91dGVzIiwiR3ZWZXJ0aWNhbE1lbnUiLCJwcm9wZXJ0aWVzIiwicm91dGVzIiwidHlwZSIsIkFycmF5IiwiX3JvdXRlcyIsImF0dHJpYnV0ZSIsImxvZ28iLCJTdHJpbmciLCJzdHlsZXMiLCJjb25zdHJ1Y3RvciIsImNhbmRpZGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImNhbmRpZGF0ZXMiLCJhbGwiLCJmdXR1cmVSb3V0ZXMiLCJmaWx0ZXIiLCJyIiwicmVuZGVyIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxFQUFvQkMsVUFBcEIsUUFBc0MsS0FBdEM7QUFDQSxPQUFPLHFCQUFQO0FBQ0EsT0FBTyxtQkFBUDtBQUNBLFNBQVNDLFlBQVQsUUFBNkIsY0FBN0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsY0FBTixTQUE2QkYsVUFBN0IsQ0FBd0M7QUFDeEIsYUFBVkcsVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTDtBQUNBQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BRkg7QUFHTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUMsS0FBUjtBQUFlRSxRQUFBQSxTQUFTLEVBQUU7QUFBMUIsT0FISjtBQUlMQyxNQUFBQSxJQUFJLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFSztBQUFSO0FBSkQsS0FBUDtBQU1EOztBQUVnQixhQUFOQyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMO0FBQ0FiLElBQUFBLEdBQUcsK2xDQUZFLENBQVA7QUE2Q0Q7O0FBRURjLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0E7O0FBQ0EsU0FBS0wsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUFFUyxNQUFOSCxNQUFNLENBQUNTLFNBQUQsRUFBWTtBQUNwQixRQUFJQSxTQUFKLEVBQWU7QUFDYkMsTUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWdCRixTQUFoQixFQUEyQkcsSUFBM0IsQ0FBaUNDLFVBQUQsSUFBZ0I7QUFDOUMsWUFBSUEsVUFBSixFQUFnQjtBQUNkSCxVQUFBQSxPQUFPLENBQUNJLEdBQVIsQ0FBWUQsVUFBWixFQUF3QkQsSUFBeEIsQ0FBOEJHLFlBQUQsSUFBa0I7QUFDN0MsZ0JBQUksQ0FBQ2xCLFlBQVksQ0FBQyxLQUFLTSxPQUFOLEVBQWVZLFlBQWYsQ0FBakIsRUFBK0M7QUFDN0MsbUJBQUtaLE9BQUwsR0FBZVksWUFBWSxDQUFDQyxNQUFiLENBQXFCQyxDQUFELElBQU9BLENBQUMsSUFBSSxJQUFoQyxDQUFmO0FBQ0Q7QUFDRixXQUpEO0FBS0QsU0FORCxNQU1PO0FBQ0wsZUFBS2QsT0FBTCxHQUFlLElBQWY7QUFDRDtBQUNGLE9BVkQ7QUFXRCxLQVpELE1BWU87QUFDTCxXQUFLQSxPQUFMLEdBQWUsSUFBZjtBQUNEO0FBQ0Y7O0FBRURlLEVBQUFBLE1BQU0sR0FBRztBQUNQLFdBQU92QixJQUFJLGlDQUVMLEtBQUtVLElBQUwsR0FBWVYsSUFBSSxtQkFBbUIsS0FBS1UsSUFBeEIsZUFBaEIsR0FBOEQsRUFGekQsaURBSWMsS0FBS0YsT0FKbkIscUNBQVg7QUFRRDs7QUEzRjRDO0FBOEYvQ2dCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsa0JBQTdCLEVBQWlEdkIsY0FBakQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0JztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LW5hdic7XG5pbXBvcnQgJy4uL2F0b21zL2d2LWltYWdlJztcbmltcG9ydCB7IGlzU2FtZVJvdXRlcyB9IGZyb20gJy4uL2xpYi91dGlscyc7XG5cbi8qKlxuICogQSB2ZXJ0aWNhbCBtZW51XG4gKlxuICogQGZpcmVzIGd2LWxpbms6Y2xpY2sgLSBDdXN0b20gZXZlbnQgd2hlbiBsaW5rIGNsaWNrXG4gKlxuICogQGF0dHIge0FycmF5fSByb3V0ZXMgLSBkZWZpbml0aW9uIG9mIHJvdXRlcyBbe2FjdGl2ZTogQm9vbGVhbiwgaWNvbjogU3RyaW5nLCBwYXRoOiBTdHJpbmcsIHRpdGxlOiBQcm9taXNlPFN0cmluZz5dXG4gKlxuICovXG5leHBvcnQgY2xhc3MgR3ZWZXJ0aWNhbE1lbnUgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAvKiogQHJlcXVpcmVkICoqL1xuICAgICAgcm91dGVzOiB7IHR5cGU6IEFycmF5IH0sXG4gICAgICBfcm91dGVzOiB7IHR5cGU6IEFycmF5LCBhdHRyaWJ1dGU6IGZhbHNlIH0sXG4gICAgICBsb2dvOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLy8gbGFuZ3VhZ2U9Y3NzXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICAtLWd2LWxpbmstLWM6IHZhcigtLWd2LW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1jOiB2YXIoLS1ndi1tZW51LS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgICAgLS1ndi1saW5rLS1iZ2M6IHZhcigtLWd2LW1lbnUtbGluay0tYmdjLCB0cmFuc3BhcmVudCk7XG4gICAgICAgICAgLS1ndi1saW5rLWFjdGl2ZS0tYmdjOiB2YXIoLS1ndi1tZW51LWxpbmstYWN0aXZlLS1iZ2MsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1iZHc6IHZhcigtLWd2LW1lbnUtbGluay1hY3RpdmUtLWJkdywgMCAwIDAgNHB4KTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1iZGM6IHZhcigtLWd2LW1lbnUtbGluay1hY3RpdmUtLWJkYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICM4NmMzZDApKTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1iZHM6IHZhcigtLWd2LW1lbnUtbGluay1hY3RpdmUtLWJkcywgc29saWQpO1xuICAgICAgICAgIC0tcHI6IHZhcigtLWd2LXRoZW1lLWxheW91dC0tcHIsIDRyZW0pO1xuICAgICAgICAgIC0tcGw6IHZhcigtLWd2LXRoZW1lLWxheW91dC0tcGwsIDRyZW0pO1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtcywgMTZweCk7XG4gICAgICAgICAgd2lkdGg6IHZhcigtLWd2LXRoZW1lLWxheW91dC1tZW51LXcsIDIwMHB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5tZW51LWNvbnRhaW5lciB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcblxuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWd2LW1lbnUtLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItZGFyaywgIzI4NDQ0ZikpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1ndi1tZW51LS1jLCB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKSk7XG4gICAgICAgIH1cblxuICAgICAgICBndi1pbWFnZSB7XG4gICAgICAgICAgaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICB3aWR0aDogMjAwcHg7XG4gICAgICAgIH1cblxuICAgICAgICBndi1uYXYge1xuICAgICAgICAgIHRyYW5zaXRpb246IHdpZHRoIDI1MG1zIGVhc2UtaW4tb3V0O1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDIwcHg7XG4gICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgLyoqIEBwcm90ZWN0ZWQgKi9cbiAgICB0aGlzLl9yb3V0ZXMgPSBbXTtcbiAgfVxuXG4gIHNldCByb3V0ZXMoY2FuZGlkYXRlKSB7XG4gICAgaWYgKGNhbmRpZGF0ZSkge1xuICAgICAgUHJvbWlzZS5yZXNvbHZlKGNhbmRpZGF0ZSkudGhlbigoY2FuZGlkYXRlcykgPT4ge1xuICAgICAgICBpZiAoY2FuZGlkYXRlcykge1xuICAgICAgICAgIFByb21pc2UuYWxsKGNhbmRpZGF0ZXMpLnRoZW4oKGZ1dHVyZVJvdXRlcykgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc1NhbWVSb3V0ZXModGhpcy5fcm91dGVzLCBmdXR1cmVSb3V0ZXMpKSB7XG4gICAgICAgICAgICAgIHRoaXMuX3JvdXRlcyA9IGZ1dHVyZVJvdXRlcy5maWx0ZXIoKHIpID0+IHIgIT0gbnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcm91dGVzID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlcyA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cIm1lbnUtY29udGFpbmVyXCI+XG4gICAgICAgICR7dGhpcy5sb2dvID8gaHRtbGA8Z3YtaW1hZ2UgLnNyYz1cIiR7dGhpcy5sb2dvfVwiPjwvZ3YtaW1hZ2U+YCA6ICcnfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWNvbnRhaW5lclwiPlxuICAgICAgICAgIDxndi1uYXYgLnJvdXRlcz1cIiR7dGhpcy5fcm91dGVzfVwiIHZlcnRpY2FsPjwvZ3YtbmF2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdmVydGljYWwtbWVudScsIEd2VmVydGljYWxNZW51KTtcbiJdfQ==
82
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi12ZXJ0aWNhbC1tZW51LmpzIl0sIm5hbWVzIjpbImNzcyIsImh0bWwiLCJMaXRFbGVtZW50IiwiaXNTYW1lUm91dGVzIiwiR3ZWZXJ0aWNhbE1lbnUiLCJwcm9wZXJ0aWVzIiwicm91dGVzIiwidHlwZSIsIkFycmF5IiwiX3JvdXRlcyIsImF0dHJpYnV0ZSIsImxvZ28iLCJTdHJpbmciLCJzdHlsZXMiLCJjb25zdHJ1Y3RvciIsImNhbmRpZGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwidGhlbiIsImNhbmRpZGF0ZXMiLCJhbGwiLCJmdXR1cmVSb3V0ZXMiLCJmaWx0ZXIiLCJyIiwicmVuZGVyIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLEdBQVQsRUFBY0MsSUFBZCxFQUFvQkMsVUFBcEIsUUFBc0MsYUFBdEM7QUFDQSxPQUFPLHFCQUFQO0FBQ0EsT0FBTyxtQkFBUDtBQUNBLFNBQVNDLFlBQVQsUUFBNkIsY0FBN0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sTUFBTUMsY0FBTixTQUE2QkYsVUFBN0IsQ0FBd0M7QUFDeEIsYUFBVkcsVUFBVSxHQUFHO0FBQ3RCLFdBQU87QUFDTDtBQUNBQyxNQUFBQSxNQUFNLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BRkg7QUFHTEMsTUFBQUEsT0FBTyxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUMsS0FBUjtBQUFlRSxRQUFBQSxTQUFTLEVBQUU7QUFBMUIsT0FISjtBQUlMQyxNQUFBQSxJQUFJLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFSztBQUFSO0FBSkQsS0FBUDtBQU1EOztBQUVnQixhQUFOQyxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMO0FBQ0FiLElBQUFBLEdBQUcsK2xDQUZFLENBQVA7QUE2Q0Q7O0FBRURjLEVBQUFBLFdBQVcsR0FBRztBQUNaO0FBQ0E7O0FBQ0EsU0FBS0wsT0FBTCxHQUFlLEVBQWY7QUFDRDs7QUFFUyxNQUFOSCxNQUFNLENBQUNTLFNBQUQsRUFBWTtBQUNwQixRQUFJQSxTQUFKLEVBQWU7QUFDYkMsTUFBQUEsT0FBTyxDQUFDQyxPQUFSLENBQWdCRixTQUFoQixFQUEyQkcsSUFBM0IsQ0FBaUNDLFVBQUQsSUFBZ0I7QUFDOUMsWUFBSUEsVUFBSixFQUFnQjtBQUNkSCxVQUFBQSxPQUFPLENBQUNJLEdBQVIsQ0FBWUQsVUFBWixFQUF3QkQsSUFBeEIsQ0FBOEJHLFlBQUQsSUFBa0I7QUFDN0MsZ0JBQUksQ0FBQ2xCLFlBQVksQ0FBQyxLQUFLTSxPQUFOLEVBQWVZLFlBQWYsQ0FBakIsRUFBK0M7QUFDN0MsbUJBQUtaLE9BQUwsR0FBZVksWUFBWSxDQUFDQyxNQUFiLENBQXFCQyxDQUFELElBQU9BLENBQUMsSUFBSSxJQUFoQyxDQUFmO0FBQ0Q7QUFDRixXQUpEO0FBS0QsU0FORCxNQU1PO0FBQ0wsZUFBS2QsT0FBTCxHQUFlLElBQWY7QUFDRDtBQUNGLE9BVkQ7QUFXRCxLQVpELE1BWU87QUFDTCxXQUFLQSxPQUFMLEdBQWUsSUFBZjtBQUNEO0FBQ0Y7O0FBRURlLEVBQUFBLE1BQU0sR0FBRztBQUNQLFdBQU92QixJQUFJLGlDQUVMLEtBQUtVLElBQUwsR0FBWVYsSUFBSSxtQkFBbUIsS0FBS1UsSUFBeEIsZUFBaEIsR0FBOEQsRUFGekQsaURBSWMsS0FBS0YsT0FKbkIscUNBQVg7QUFRRDs7QUEzRjRDO0FBOEYvQ2dCLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsa0JBQTdCLEVBQWlEdkIsY0FBakQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0ICcuLi9tb2xlY3VsZXMvZ3YtbmF2JztcbmltcG9ydCAnLi4vYXRvbXMvZ3YtaW1hZ2UnO1xuaW1wb3J0IHsgaXNTYW1lUm91dGVzIH0gZnJvbSAnLi4vbGliL3V0aWxzJztcblxuLyoqXG4gKiBBIHZlcnRpY2FsIG1lbnVcbiAqXG4gKiBAZmlyZXMgZ3YtbGluazpjbGljayAtIEN1c3RvbSBldmVudCB3aGVuIGxpbmsgY2xpY2tcbiAqXG4gKiBAYXR0ciB7QXJyYXl9IHJvdXRlcyAtIGRlZmluaXRpb24gb2Ygcm91dGVzIFt7YWN0aXZlOiBCb29sZWFuLCBpY29uOiBTdHJpbmcsIHBhdGg6IFN0cmluZywgdGl0bGU6IFByb21pc2U8U3RyaW5nPl1cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlZlcnRpY2FsTWVudSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC8qKiBAcmVxdWlyZWQgKiovXG4gICAgICByb3V0ZXM6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIF9yb3V0ZXM6IHsgdHlwZTogQXJyYXksIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICAgIGxvZ286IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAvLyBsYW5ndWFnZT1jc3NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIC0tZ3YtbGluay0tYzogdmFyKC0tZ3YtbWVudS0tYywgdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1saWdodCwgI2ZmZmZmZikpO1xuICAgICAgICAgIC0tZ3YtbGluay1hY3RpdmUtLWM6IHZhcigtLWd2LW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpKTtcbiAgICAgICAgICAtLWd2LWxpbmstLWJnYzogdmFyKC0tZ3YtbWVudS1saW5rLS1iZ2MsIHRyYW5zcGFyZW50KTtcbiAgICAgICAgICAtLWd2LWxpbmstYWN0aXZlLS1iZ2M6IHZhcigtLWd2LW1lbnUtbGluay1hY3RpdmUtLWJnYywgdHJhbnNwYXJlbnQpO1xuICAgICAgICAgIC0tZ3YtbGluay1hY3RpdmUtLWJkdzogdmFyKC0tZ3YtbWVudS1saW5rLWFjdGl2ZS0tYmR3LCAwIDAgMCA0cHgpO1xuICAgICAgICAgIC0tZ3YtbGluay1hY3RpdmUtLWJkYzogdmFyKC0tZ3YtbWVudS1saW5rLWFjdGl2ZS0tYmRjLCB2YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgIzg2YzNkMCkpO1xuICAgICAgICAgIC0tZ3YtbGluay1hY3RpdmUtLWJkczogdmFyKC0tZ3YtbWVudS1saW5rLWFjdGl2ZS0tYmRzLCBzb2xpZCk7XG4gICAgICAgICAgLS1wcjogdmFyKC0tZ3YtdGhlbWUtbGF5b3V0LS1wciwgNHJlbSk7XG4gICAgICAgICAgLS1wbDogdmFyKC0tZ3YtdGhlbWUtbGF5b3V0LS1wbCwgNHJlbSk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1zLCAxNnB4KTtcbiAgICAgICAgICB3aWR0aDogdmFyKC0tZ3YtdGhlbWUtbGF5b3V0LW1lbnUtdywgMjAwcHgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLm1lbnUtY29udGFpbmVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuXG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tZ3YtbWVudS0tYmdjLCB2YXIoLS1ndi10aGVtZS1jb2xvci1kYXJrLCAjMjg0NDRmKSk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWd2LW1lbnUtLWMsIHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWltYWdlIHtcbiAgICAgICAgICBoZWlnaHQ6IDIwMHB4O1xuICAgICAgICAgIHdpZHRoOiAyMDBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LW5hdiB7XG4gICAgICAgICAgdHJhbnNpdGlvbjogd2lkdGggMjUwbXMgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICAgICAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvKiogQHByb3RlY3RlZCAqL1xuICAgIHRoaXMuX3JvdXRlcyA9IFtdO1xuICB9XG5cbiAgc2V0IHJvdXRlcyhjYW5kaWRhdGUpIHtcbiAgICBpZiAoY2FuZGlkYXRlKSB7XG4gICAgICBQcm9taXNlLnJlc29sdmUoY2FuZGlkYXRlKS50aGVuKChjYW5kaWRhdGVzKSA9PiB7XG4gICAgICAgIGlmIChjYW5kaWRhdGVzKSB7XG4gICAgICAgICAgUHJvbWlzZS5hbGwoY2FuZGlkYXRlcykudGhlbigoZnV0dXJlUm91dGVzKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzU2FtZVJvdXRlcyh0aGlzLl9yb3V0ZXMsIGZ1dHVyZVJvdXRlcykpIHtcbiAgICAgICAgICAgICAgdGhpcy5fcm91dGVzID0gZnV0dXJlUm91dGVzLmZpbHRlcigocikgPT4gciAhPSBudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLl9yb3V0ZXMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcm91dGVzID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwibWVudS1jb250YWluZXJcIj5cbiAgICAgICAgJHt0aGlzLmxvZ28gPyBodG1sYDxndi1pbWFnZSAuc3JjPVwiJHt0aGlzLmxvZ299XCI+PC9ndi1pbWFnZT5gIDogJyd9XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtY29udGFpbmVyXCI+XG4gICAgICAgICAgPGd2LW5hdiAucm91dGVzPVwiJHt0aGlzLl9yb3V0ZXN9XCIgdmVydGljYWw+PC9ndi1uYXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi12ZXJ0aWNhbC1tZW51JywgR3ZWZXJ0aWNhbE1lbnUpO1xuIl19