@gravitee/ui-components 3.18.1 → 3.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravitee/ui-components",
3
- "version": "3.18.1",
3
+ "version": "3.20.1",
4
4
  "description": "Gravitee.io UI Components library, based on Web Components",
5
5
  "repository": {
6
6
  "type": "git",
@@ -49,10 +49,10 @@
49
49
  "package.json": "npm run lint:package"
50
50
  },
51
51
  "dependencies": {
52
- "@formatjs/intl-locale": "^2.4.37",
52
+ "@formatjs/intl-locale": "^2.4.38",
53
53
  "@formatjs/intl-relativetimeformat": "^9.3.1",
54
54
  "clipboard-copy": "^4.0.0",
55
- "codemirror": "^5.63.0",
55
+ "codemirror": "^5.63.1",
56
56
  "date-fns": "^2.24.0",
57
57
  "jdenticon": "^3.1.0",
58
58
  "jsonschema": "^1.4.0",
@@ -72,26 +72,26 @@
72
72
  "@highcharts/map-collection": "1.1.3",
73
73
  "@semantic-release/changelog": "6.0.0",
74
74
  "@semantic-release/git": "10.0.0",
75
- "@storybook/addon-a11y": "6.3.10",
76
- "@storybook/addon-essentials": "6.3.10",
77
- "@storybook/components": "6.3.10",
78
- "@storybook/theming": "6.3.10",
79
- "@storybook/web-components": "6.3.10",
75
+ "@storybook/addon-a11y": "6.3.12",
76
+ "@storybook/addon-essentials": "6.3.12",
77
+ "@storybook/components": "6.3.12",
78
+ "@storybook/theming": "6.3.12",
79
+ "@storybook/web-components": "6.3.12",
80
80
  "asciidoctor": "2.2.5",
81
81
  "asciidoctor-highlight.js": "0.3.0",
82
- "babel-jest": "27.2.5",
82
+ "babel-jest": "27.3.1",
83
83
  "babel-loader": "8.2.2",
84
84
  "babel-plugin-template-html-minifier": "4.1.0",
85
85
  "bundle-phobia-cli": "0.14.13",
86
86
  "chromatic": "5.10.2",
87
87
  "codemirror-asciidoc": "1.0.4",
88
- "danger": "10.6.6",
88
+ "danger": "10.7.0",
89
89
  "del": "6.0.0",
90
90
  "eslint": "7.32.0",
91
91
  "eslint-config-prettier": "8.3.0",
92
92
  "eslint-config-standard": "16.0.3",
93
- "eslint-plugin-import": "2.24.2",
94
- "eslint-plugin-lit": "1.6.0",
93
+ "eslint-plugin-import": "2.25.2",
94
+ "eslint-plugin-lit": "1.6.1",
95
95
  "eslint-plugin-node": "11.1.0",
96
96
  "eslint-plugin-promise": "5.1.0",
97
97
  "eslint-plugin-standard": "4.1.0",
@@ -101,18 +101,18 @@
101
101
  "glob": "7.2.0",
102
102
  "gzip-size": "6.0.0",
103
103
  "highcharts": "9.2.2",
104
- "highlight.js": "11.2.0",
104
+ "highlight.js": "11.3.1",
105
105
  "html-to-react": "1.4.7",
106
106
  "husky": "7.0.2",
107
107
  "i18n-extract": "0.6.7",
108
108
  "ignore-loader": "0.1.2",
109
109
  "is-ci": "3.0.0",
110
- "jest": "27.2.5",
110
+ "jest": "27.3.1",
111
111
  "license-check-and-add": "4.0.2",
112
112
  "lint-staged": "11.2.3",
113
113
  "markdown-it": "12.2.0",
114
114
  "node-static": "0.7.11",
115
- "nodemon": "2.0.13",
115
+ "nodemon": "2.0.14",
116
116
  "pascal-case": "3.1.2",
117
117
  "prettier": "2.4.1",
118
118
  "semantic-release": "18.0.0",
@@ -452,9 +452,14 @@ export class GvInput extends InputElement(LitElement) {
452
452
  return '';
453
453
  }
454
454
 
455
+ _shapePassword() {
456
+ return this._showPassword ? 'general:visible' : 'general:hidden';
457
+ }
458
+
455
459
  _renderPasswordIcon() {
456
460
  if (this.isPassword) {
457
- const shape = this._showPassword ? 'general:visible' : 'general:hidden';
461
+ const shape = this._shapePassword();
462
+
458
463
  const title = this._showPassword ? 'Show' : 'Hide';
459
464
  return html`<div class="box-icon"> <gv-icon class="link" shape="${shape}" title="${title}" @click="${this._onIconVisibleClick}"></gv-icon> </div>`;
460
465
  }
@@ -523,4 +528,4 @@ export class GvInput extends InputElement(LitElement) {
523
528
 
524
529
  }
525
530
  window.customElements.define('gv-input', GvInput);
526
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWlucHV0LmpzIl0sIm5hbWVzIjpbImNsYXNzTWFwIiwiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJza2VsZXRvbiIsImlucHV0IiwibGluayIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJpMThuIiwiSW5wdXRFbGVtZW50Iiwic2hhcGVDbGlwYm9hcmQiLCJzaGFwZUNvcGllZCIsIkd2SW5wdXQiLCJwcm9wZXJ0aWVzIiwidHlwZSIsIlN0cmluZyIsInJlZmxlY3QiLCJsYXJnZSIsIkJvb2xlYW4iLCJtZWRpdW0iLCJzbWFsbCIsImljb24iLCJpY29uTGVmdCIsImF0dHJpYnV0ZSIsImxvYWRpbmciLCJtaW4iLCJOdW1iZXIiLCJtYXgiLCJhdXRvY29tcGxldGUiLCJjbGlwYm9hcmQiLCJjbGlja2FibGUiLCJjbGVhcmFibGUiLCJub1N1Ym1pdCIsInBhdHRlcm4iLCJkZXNjcmlwdGlvbiIsIl90eXBlIiwic3R5bGVzIiwic2hhcGVTZWFyY2giLCJzaGFwZUNsZWFyIiwic2hhcGVJbnZpc2libGUiLCJzaGFwZVZpc2libGUiLCJjb25zdHJ1Y3RvciIsIl9zaG93UGFzc3dvcmQiLCJ2YWx1ZSIsInJlc2V0IiwiZ2V0SW5wdXRFbGVtZW50IiwiYmx1ciIsImZvY3VzIiwiX2lucHV0IiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwibmFtZSIsInJlcXVpcmVkIiwidHJpbSIsImludmFsaWQiLCJyZWFkb25seSIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsInRpdGxlIiwibGFiZWwiLCJfcmVnZXhQYXR0ZXJuIiwiUmVnRXhwIiwiZGlzYWJsZWQiLCJwbGFjZWhvbGRlciIsInVwZGF0ZVN0YXRlIiwiX3NldENsaXBib2FyZEljb24iLCJzaGFwZSIsImZpcnN0VXBkYXRlZCIsImRlZmF1bHRJbnB1dEVsZW1lbnQiLCJub2RlIiwiY2hpbGROb2RlcyIsIm5vZGVUeXBlIiwiY2hpbGQiLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwicXVlcnlTZWxlY3RvciIsInJlbW92ZSIsInRoZW4iLCJtb2QiLCJjb3B5IiwiZGVmYXVsdCIsIl9jb3BpZWQiLCJzZXRUaW1lb3V0IiwiY2xpcGJvYXJkUG9wb3ZlciIsInNoYWRvd1Jvb3QiLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY2xpY2siLCJjbGlja2FibGVJY29uIiwiX29uSWNvbkNsaWNrIiwiYmluZCIsImlkIiwiX2lkIiwiX29uSW5wdXQiLCJfb25LZXlVcCIsIl9vbktleVByZXNzIiwidmFsaWQiLCJtYXRjaCIsInNldFZhbGlkaXR5IiwiX3ZhbHVlIiwidmFsdWVPZiIsImlzTmFOIiwidGFyZ2V0Iiwia2V5IiwiY2xpcGJvYXJkRGF0YSIsImdldERhdGEiLCJmcm9tQ2hhckNvZGUiLCJrZXlDb2RlIiwicmVnZXgiLCJ0ZXN0IiwiZm9ybSIsImNsb3Nlc3QiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImlzQ2xlYXJhYmxlIiwiaW5jbHVkZXMiLCJfb25JY29uVmlzaWJsZUNsaWNrIiwiaXNQYXNzd29yZCIsImhhc0NsaWNrYWJsZUljb24iLCJoYXNDbGlwYm9hcmQiLCJjbGVhciIsIl9yZW5kZXJDbGVhckljb24iLCJfcmVuZGVyUGFzc3dvcmRJY29uIiwiaGFzQmFja2dyb3VuZCIsIl9yZW5kZXJJY29uIiwiY2xhc3NlcyIsImNvcGllZCIsImljb25DbGFzc2VzIiwicmVuZGVyIiwicmVuZGVyTGFiZWwiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBVCxRQUF5QiwrQkFBekI7QUFFQSxTQUFTQyxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUNBLFNBQVNDLEtBQVQsUUFBc0IsaUJBQXRCO0FBQ0EsU0FBU0MsSUFBVCxRQUFxQixnQkFBckI7QUFDQSxTQUFTQyxtQkFBVCxRQUFvQyxlQUFwQztBQUNBLE9BQU8sV0FBUDtBQUNBLE9BQU8seUJBQVA7QUFDQSxTQUFTQyxJQUFULFFBQXFCLGFBQXJCO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qix5QkFBN0I7QUFDQSxTQUFTQyxjQUFULEVBQXlCQyxXQUF6QixRQUE0QyxrQkFBNUM7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxPQUFOLFNBQXNCSCxZQUFZLENBQUNSLFVBQUQsQ0FBbEMsQ0FBK0M7QUFDL0IsYUFBVlksVUFBVSxHQUFHO0FBQ3RCLFdBQU8sRUFDTCxHQUFHLE1BQU1BLFVBREo7QUFFTEMsTUFBQUEsSUFBSSxFQUFFO0FBQUVBLFFBQUFBLElBQUksRUFBRUMsTUFBUjtBQUFnQkMsUUFBQUEsT0FBTyxFQUFFO0FBQXpCLE9BRkQ7QUFHTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVILFFBQUFBLElBQUksRUFBRUk7QUFBUixPQUhGO0FBSUxDLE1BQUFBLE1BQU0sRUFBRTtBQUFFTCxRQUFBQSxJQUFJLEVBQUVJO0FBQVIsT0FKSDtBQUtMRSxNQUFBQSxLQUFLLEVBQUU7QUFBRU4sUUFBQUEsSUFBSSxFQUFFSTtBQUFSLE9BTEY7QUFNTEcsTUFBQUEsSUFBSSxFQUFFO0FBQUVQLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQU5EO0FBT0xPLE1BQUFBLFFBQVEsRUFBRTtBQUFFUixRQUFBQSxJQUFJLEVBQUVDLE1BQVI7QUFBZ0JRLFFBQUFBLFNBQVMsRUFBRTtBQUEzQixPQVBMO0FBUUxDLE1BQUFBLE9BQU8sRUFBRTtBQUFFVixRQUFBQSxJQUFJLEVBQUVJO0FBQVIsT0FSSjtBQVNMTyxNQUFBQSxHQUFHLEVBQUU7QUFBRVgsUUFBQUEsSUFBSSxFQUFFWTtBQUFSLE9BVEE7QUFVTEMsTUFBQUEsR0FBRyxFQUFFO0FBQUViLFFBQUFBLElBQUksRUFBRVk7QUFBUixPQVZBO0FBV0xFLE1BQUFBLFlBQVksRUFBRTtBQUFFZCxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FYVDtBQVlMYyxNQUFBQSxTQUFTLEVBQUU7QUFBRWYsUUFBQUEsSUFBSSxFQUFFSTtBQUFSLE9BWk47QUFhTFksTUFBQUEsU0FBUyxFQUFFO0FBQUVoQixRQUFBQSxJQUFJLEVBQUVJO0FBQVIsT0FiTjtBQWNMYSxNQUFBQSxTQUFTLEVBQUU7QUFBRWpCLFFBQUFBLElBQUksRUFBRUk7QUFBUixPQWROO0FBZUxjLE1BQUFBLFFBQVEsRUFBRTtBQUFFbEIsUUFBQUEsSUFBSSxFQUFFSSxPQUFSO0FBQWlCSyxRQUFBQSxTQUFTLEVBQUU7QUFBNUIsT0FmTDtBQWdCTFUsTUFBQUEsT0FBTyxFQUFFO0FBQUVuQixRQUFBQSxJQUFJLEVBQUVDLE1BQVI7QUFBZ0JDLFFBQUFBLE9BQU8sRUFBRTtBQUF6QixPQWhCSjtBQWlCTGtCLE1BQUFBLFdBQVcsRUFBRTtBQUFFcEIsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BakJSO0FBa0JMb0IsTUFBQUEsS0FBSyxFQUFFO0FBQUVyQixRQUFBQSxJQUFJLEVBQUVDLE1BQVI7QUFBZ0JRLFFBQUFBLFNBQVMsRUFBRTtBQUEzQjtBQWxCRixLQUFQO0FBb0JEOztBQUVnQixhQUFOYSxNQUFNLEdBQUc7QUFDbEIsV0FBTyxDQUNMLEdBQUcsTUFBTUEsTUFESixFQUVMaEMsUUFGSyxFQUdMQyxLQUhLLEVBSUxDLElBSkssRUFLTDtBQUNBSCxJQUFBQSxHQUFHLHc2QkFORSxDQUFQO0FBa0VEOztBQUVxQixhQUFYa0MsV0FBVyxHQUFHO0FBQ3ZCLFdBQU8sZ0JBQVA7QUFDRDs7QUFFb0IsYUFBVkMsVUFBVSxHQUFHO0FBQ3RCLFdBQU8sWUFBUDtBQUNEOztBQUV3QixhQUFkQyxjQUFjLEdBQUc7QUFDMUIsV0FBTyxtQkFBUDtBQUNEOztBQUVzQixhQUFaQyxZQUFZLEdBQUc7QUFDeEIsV0FBTyxpQkFBUDtBQUNEOztBQUVEQyxFQUFBQSxXQUFXLEdBQUc7QUFDWjtBQUNBLFNBQUtOLEtBQUwsR0FBYSxNQUFiO0FBQ0EsU0FBS08sYUFBTCxHQUFxQixLQUFyQjtBQUNBLFNBQUtDLEtBQUwsR0FBYSxFQUFiO0FBQ0EsU0FBS2YsWUFBTCxHQUFvQixLQUFwQjtBQUNBLFNBQUtJLFFBQUwsR0FBZ0IsS0FBaEI7QUFDRDs7QUFFRFksRUFBQUEsS0FBSyxHQUFHO0FBQ04sU0FBS0QsS0FBTCxHQUFhLEVBQWI7QUFDQSxTQUFLRSxlQUFMLEdBQXVCQyxJQUF2QjtBQUNEOztBQUVEQyxFQUFBQSxLQUFLLEdBQUc7QUFDTixTQUFLRixlQUFMLEdBQXVCRSxLQUF2QjtBQUNEOztBQUVERixFQUFBQSxlQUFlLEdBQUc7QUFDaEIsV0FBTyxLQUFLRyxNQUFMLElBQWUsTUFBTUgsZUFBTixFQUF0QjtBQUNEOztBQUVESSxFQUFBQSxPQUFPLENBQUNDLGlCQUFELEVBQW9CO0FBQ3pCLFFBQUlBLGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixPQUF0QixDQUFKLEVBQW9DO0FBQ2xDLFdBQUtOLGVBQUwsR0FBdUIvQixJQUF2QixHQUE4QixLQUFLcUIsS0FBbkM7QUFDRDs7QUFFRCxRQUFJZSxpQkFBaUIsQ0FBQ0MsR0FBbEIsQ0FBc0IsY0FBdEIsQ0FBSixFQUEyQztBQUN6QyxXQUFLTixlQUFMLEdBQXVCakIsWUFBdkIsR0FBc0MsS0FBS0EsWUFBM0M7QUFDRDs7QUFFRCxRQUFJc0IsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLE1BQXRCLEtBQWlDLEtBQUtDLElBQUwsSUFBYSxJQUFsRCxFQUF3RDtBQUN0RCxXQUFLUCxlQUFMLEdBQXVCTyxJQUF2QixHQUE4QixLQUFLQSxJQUFuQztBQUNEOztBQUVELFFBQUlGLGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixVQUF0QixDQUFKLEVBQXVDO0FBQ3JDLFdBQUtOLGVBQUwsR0FBdUJRLFFBQXZCLEdBQWtDLEtBQUtBLFFBQXZDO0FBQ0EsV0FBS1IsZUFBTCxHQUF1QixlQUF2QixJQUEwQyxDQUFDLENBQUMsS0FBS1EsUUFBakQ7O0FBQ0EsVUFBSSxLQUFLVixLQUFMLElBQWMsSUFBZCxJQUFzQixLQUFLQSxLQUFMLENBQVdXLElBQVgsT0FBc0IsRUFBaEQsRUFBb0Q7QUFDbEQsYUFBS0MsT0FBTCxHQUFlLElBQWY7QUFDRDtBQUNGOztBQUVELFFBQUksS0FBS0MsUUFBVCxFQUFtQjtBQUNqQixXQUFLWCxlQUFMLEdBQXVCWSxZQUF2QixDQUFvQyxVQUFwQyxFQUFnRCxJQUFoRDtBQUNELEtBRkQsTUFFTztBQUNMLFdBQUtaLGVBQUwsR0FBdUJhLGVBQXZCLENBQXVDLFVBQXZDO0FBQ0Q7O0FBRUQsUUFBSVIsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLE9BQXRCLEtBQWtDRCxpQkFBaUIsQ0FBQ0MsR0FBbEIsQ0FBc0IsT0FBdEIsQ0FBdEMsRUFBc0U7QUFDcEUsWUFBTVEsS0FBSyxHQUFHLEtBQUtBLEtBQUwsSUFBYyxLQUFLQyxLQUFqQzs7QUFDQSxVQUFJRCxLQUFLLElBQUksSUFBYixFQUFtQjtBQUNqQixhQUFLZCxlQUFMLEdBQXVCYyxLQUF2QixHQUErQkEsS0FBL0I7QUFDRDtBQUNGOztBQUVELFFBQUlULGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixPQUF0QixLQUFrQyxLQUFLUyxLQUEzQyxFQUFrRDtBQUNoRCxXQUFLZixlQUFMLEdBQXVCLFlBQXZCLElBQXVDLEtBQUtlLEtBQTVDO0FBQ0Q7O0FBRUQsUUFBSVYsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLFNBQXRCLENBQUosRUFBc0M7QUFDcEMsV0FBS04sZUFBTCxHQUF1QlosT0FBdkIsR0FBaUMsS0FBS0EsT0FBdEM7QUFDQSxXQUFLNEIsYUFBTCxHQUFxQixJQUFJQyxNQUFKLENBQVcsS0FBSzdCLE9BQWhCLENBQXJCO0FBQ0Q7O0FBRUQsUUFBSWlCLGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixVQUF0QixLQUFxQ0QsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLFVBQXRCLENBQXpDLEVBQTRFO0FBQzFFLFdBQUtOLGVBQUwsR0FBdUJrQixRQUF2QixHQUFrQyxLQUFLQSxRQUFMLElBQWlCLEtBQUszRCxRQUF4RDtBQUNEOztBQUVELFFBQUk4QyxpQkFBaUIsQ0FBQ0MsR0FBbEIsQ0FBc0IsYUFBdEIsS0FBd0MsS0FBS2EsV0FBTCxJQUFvQixJQUFoRSxFQUFzRTtBQUNwRSxXQUFLbkIsZUFBTCxHQUF1Qm1CLFdBQXZCLEdBQXFDLEtBQUtBLFdBQTFDO0FBQ0Q7O0FBRUQsUUFBSWQsaUJBQWlCLENBQUNDLEdBQWxCLENBQXNCLE9BQXRCLENBQUosRUFBb0M7QUFDbEMsV0FBS04sZUFBTCxHQUF1QkYsS0FBdkIsR0FBK0IsS0FBS0EsS0FBcEM7QUFDQSxXQUFLc0IsV0FBTCxDQUFpQixLQUFLdEIsS0FBdEI7QUFDRDs7QUFFRCxRQUFJTyxpQkFBaUIsQ0FBQ0MsR0FBbEIsQ0FBc0IsS0FBdEIsS0FBZ0MsS0FBSzFCLEdBQUwsSUFBWSxJQUFoRCxFQUFzRDtBQUNwRCxXQUFLb0IsZUFBTCxHQUF1QnBCLEdBQXZCLEdBQTZCLEtBQUtBLEdBQWxDO0FBQ0Q7O0FBRUQsUUFBSXlCLGlCQUFpQixDQUFDQyxHQUFsQixDQUFzQixLQUF0QixLQUFnQyxLQUFLeEIsR0FBTCxJQUFZLElBQWhELEVBQXNEO0FBQ3BELFdBQUtrQixlQUFMLEdBQXVCbEIsR0FBdkIsR0FBNkIsS0FBS0EsR0FBbEM7QUFDRDtBQUNGOztBQUVEdUMsRUFBQUEsaUJBQWlCLENBQUNDLEtBQUQsRUFBUTtBQUN2QixRQUFJLEtBQUs5QyxJQUFMLElBQWEsSUFBYixJQUFxQixLQUFLQSxJQUFMLEtBQWNWLFdBQW5DLElBQWtELEtBQUtVLElBQUwsS0FBY1gsY0FBcEUsRUFBb0Y7QUFDbEYsV0FBS1ksUUFBTCxHQUFnQjZDLEtBQWhCO0FBQ0QsS0FGRCxNQUVPO0FBQ0wsV0FBSzlDLElBQUwsR0FBWThDLEtBQVo7QUFDRDtBQUNGOztBQUVEQyxFQUFBQSxZQUFZLENBQUNsQixpQkFBRCxFQUFvQjtBQUM5QixVQUFNa0IsWUFBTixDQUFtQmxCLGlCQUFuQjtBQUVBLFVBQU1tQixtQkFBbUIsR0FBRyxLQUFLeEIsZUFBTCxFQUE1Qjs7QUFDQSxTQUFLLE1BQU15QixJQUFYLElBQW1CLEtBQUtDLFVBQXhCLEVBQW9DO0FBQ2xDLFVBQUlELElBQUksQ0FBQ0UsUUFBTCxLQUFrQixDQUF0QixFQUF5QjtBQUN2QixjQUFNQyxLQUFLLEdBQUdILElBQUksQ0FBQ0ksUUFBTCxDQUFjQyxXQUFkLE9BQWdDLE9BQWhDLEdBQTBDTCxJQUExQyxHQUFpREEsSUFBSSxDQUFDTSxhQUFMLENBQW1CLE9BQW5CLENBQS9EOztBQUNBLFlBQUlILEtBQUosRUFBVztBQUNULGVBQUt6QixNQUFMLEdBQWN5QixLQUFkO0FBQ0E7QUFDRDtBQUNGO0FBQ0Y7O0FBQ0QsUUFBSSxLQUFLekIsTUFBVCxFQUFpQjtBQUNmcUIsTUFBQUEsbUJBQW1CLENBQUNRLE1BQXBCO0FBQ0Q7O0FBRUQsUUFBSSxLQUFLaEQsU0FBVCxFQUFvQjtBQUNsQixhQUFPLGdCQUFQLEVBQXlCaUQsSUFBekIsQ0FDR0MsR0FBRCxJQUNHLEtBQUtDLElBQUwsR0FBWSxNQUFNO0FBQ2pCLGNBQU1BLElBQUksR0FBR0QsR0FBRyxDQUFDRSxPQUFqQjtBQUNBRCxRQUFBQSxJQUFJLENBQUMsS0FBS3JDLEtBQU4sQ0FBSjtBQUNBLGFBQUt1QyxPQUFMLEdBQWUsSUFBZjs7QUFDQSxhQUFLaEIsaUJBQUwsQ0FBdUJ2RCxXQUF2Qjs7QUFDQXdFLFFBQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2YsZUFBS0QsT0FBTCxHQUFlLEtBQWY7O0FBQ0EsZUFBS2hCLGlCQUFMLENBQXVCeEQsY0FBdkI7QUFDRCxTQUhTLEVBR1AsSUFITyxDQUFWO0FBSUQsT0FYTDs7QUFhQSxXQUFLd0QsaUJBQUwsQ0FBdUJ4RCxjQUF2Qjs7QUFFQXlFLE1BQUFBLFVBQVUsQ0FBQyxNQUFNO0FBQ2YsY0FBTUMsZ0JBQWdCLEdBQUcsS0FBS0MsVUFBTCxDQUFnQlQsYUFBaEIsQ0FBOEIscUJBQTlCLENBQXpCOztBQUNBLFlBQUksS0FBS3BCLFFBQVQsRUFBbUI7QUFDakIsZUFBS1gsZUFBTCxHQUF1QnlDLGdCQUF2QixDQUF3QyxPQUF4QyxFQUFrREMsQ0FBRCxJQUFPO0FBQ3REQSxZQUFBQSxDQUFDLENBQUNDLGNBQUY7QUFDQUQsWUFBQUEsQ0FBQyxDQUFDRSxlQUFGO0FBQ0FMLFlBQUFBLGdCQUFnQixDQUFDTSxLQUFqQjtBQUNELFdBSkQ7QUFLRDs7QUFDRE4sUUFBQUEsZ0JBQWdCLENBQUNFLGdCQUFqQixDQUFrQyxPQUFsQyxFQUE0Q0MsQ0FBRCxJQUFPO0FBQ2hEQSxVQUFBQSxDQUFDLENBQUNDLGNBQUY7QUFDQUQsVUFBQUEsQ0FBQyxDQUFDRSxlQUFGO0FBQ0EsZUFBS1QsSUFBTCxDQUFVLEtBQUtyQyxLQUFmO0FBQ0QsU0FKRDtBQUtELE9BZFMsRUFjUCxDQWRPLENBQVY7QUFlRCxLQS9CRCxNQStCTztBQUNMLFlBQU1nRCxhQUFhLEdBQUcsS0FBS04sVUFBTCxDQUFnQlQsYUFBaEIsQ0FBOEIsY0FBOUIsQ0FBdEI7O0FBQ0EsVUFBSWUsYUFBSixFQUFtQjtBQUNqQkEsUUFBQUEsYUFBYSxDQUFDTCxnQkFBZCxDQUErQixPQUEvQixFQUF3QyxLQUFLTSxZQUFMLENBQWtCQyxJQUFsQixDQUF1QixJQUF2QixDQUF4QztBQUNEO0FBQ0Y7O0FBRUQsU0FBS2hELGVBQUwsR0FBdUJpRCxFQUF2QixHQUE0QixLQUFLQyxHQUFqQztBQUNBLFNBQUtsRCxlQUFMLEdBQXVCeUMsZ0JBQXZCLENBQXdDLE9BQXhDLEVBQWlELEtBQUtVLFFBQUwsQ0FBY0gsSUFBZCxDQUFtQixJQUFuQixDQUFqRDtBQUNBLFNBQUtoRCxlQUFMLEdBQXVCeUMsZ0JBQXZCLENBQXdDLE9BQXhDLEVBQWlELEtBQUtXLFFBQUwsQ0FBY0osSUFBZCxDQUFtQixJQUFuQixDQUFqRDtBQUNBLFNBQUtoRCxlQUFMLEdBQXVCeUMsZ0JBQXZCLENBQXdDLFVBQXhDLEVBQW9ELEtBQUtZLFdBQUwsQ0FBaUJMLElBQWpCLENBQXNCLElBQXRCLENBQXBEO0FBQ0Q7O0FBRUQ1QixFQUFBQSxXQUFXLENBQUN0QixLQUFELEVBQVE7QUFDakIsVUFBTXNCLFdBQU4sQ0FBa0J0QixLQUFsQjs7QUFDQSxRQUFJLEtBQUt3RCxLQUFMLEtBQWUsSUFBZixJQUF1QixDQUFDLEtBQUszQyxRQUFqQyxFQUEyQztBQUN6QyxVQUFJLEtBQUtLLGFBQVQsRUFBd0I7QUFDdEIsWUFBSWxCLEtBQUssSUFBSSxJQUFULElBQWlCQSxLQUFLLENBQUNXLElBQU4sT0FBaUIsRUFBdEMsRUFBMEM7QUFDeEMsZ0JBQU02QyxLQUFLLEdBQUd4RCxLQUFLLENBQUN5RCxLQUFOLENBQVksS0FBS3ZDLGFBQWpCLENBQWQ7QUFDQSxlQUFLd0MsV0FBTCxDQUFpQkYsS0FBSyxJQUFJLElBQTFCLEVBQWlDLGlDQUFnQyxLQUFLdEMsYUFBYyxFQUFwRjtBQUNEO0FBQ0YsT0FMRCxNQUtPLElBQUksS0FBSzFCLEtBQUwsS0FBZSxRQUFmLElBQTJCUSxLQUFLLElBQUksSUFBcEMsS0FBNkMsT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QkEsS0FBSyxDQUFDVyxJQUFOLE9BQWlCLEVBQTNGLENBQUosRUFBb0c7QUFDekcsY0FBTWdELE1BQU0sR0FBRzVFLE1BQU0sQ0FBQ2lCLEtBQUQsQ0FBTixDQUFjNEQsT0FBZCxFQUFmOztBQUNBLFlBQUlDLEtBQUssQ0FBQ0YsTUFBRCxDQUFULEVBQW1CO0FBQ2pCLGVBQUtELFdBQUwsQ0FBaUIsSUFBakIsRUFBd0IscUJBQXhCO0FBQ0QsU0FGRCxNQUVPLElBQUksS0FBSzVFLEdBQUwsSUFBWSxJQUFaLElBQW9CLEtBQUtBLEdBQUwsR0FBVzZFLE1BQW5DLEVBQTJDO0FBQ2hELGVBQUtELFdBQUwsQ0FBaUIsSUFBakIsRUFBd0IsY0FBYSxLQUFLNUUsR0FBSSxFQUE5QztBQUNELFNBRk0sTUFFQSxJQUFJLEtBQUtFLEdBQUwsSUFBWSxJQUFaLElBQW9CLEtBQUtBLEdBQUwsR0FBVzJFLE1BQW5DLEVBQTJDO0FBQ2hELGVBQUtELFdBQUwsQ0FBaUIsSUFBakIsRUFBd0IsY0FBYSxLQUFLMUUsR0FBSSxFQUE5QztBQUNELFNBRk0sTUFFQTtBQUNMLGVBQUswRSxXQUFMLENBQWlCLEtBQWpCO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7O0FBRURMLEVBQUFBLFFBQVEsQ0FBQ1QsQ0FBRCxFQUFJO0FBQ1YsU0FBS3RCLFdBQUwsQ0FBaUJzQixDQUFDLENBQUNrQixNQUFGLENBQVM5RCxLQUExQjtBQUNBLFNBQUtBLEtBQUwsR0FBYTRDLENBQUMsQ0FBQ2tCLE1BQUYsQ0FBUzlELEtBQXRCO0FBQ0FwQyxJQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sT0FBUCxFQUFnQixLQUFLb0MsS0FBckIsQ0FBbkI7QUFDRDs7QUFFRHVELEVBQUFBLFdBQVcsQ0FBQ1gsQ0FBRCxFQUFJO0FBQ2IsUUFBSSxLQUFLcEQsS0FBTCxLQUFlLFFBQW5CLEVBQTZCO0FBQzNCLFVBQUl1RSxHQUFKOztBQUNBLFVBQUluQixDQUFDLENBQUN6RSxJQUFGLEtBQVcsT0FBZixFQUF3QjtBQUN0QjRGLFFBQUFBLEdBQUcsR0FBR25CLENBQUMsQ0FBQ29CLGFBQUYsQ0FBZ0JDLE9BQWhCLENBQXdCLFlBQXhCLENBQU47QUFDRCxPQUZELE1BRU87QUFDTEYsUUFBQUEsR0FBRyxHQUFHM0YsTUFBTSxDQUFDOEYsWUFBUCxDQUFvQnRCLENBQUMsQ0FBQ3VCLE9BQXRCLENBQU47QUFDRDs7QUFFRCxVQUFJQyxLQUFLLEdBQUcsT0FBWjs7QUFDQSxVQUFJLEtBQUt0RixHQUFMLElBQVksSUFBWixJQUFvQixLQUFLQSxHQUFMLEdBQVcsQ0FBbkMsRUFBc0M7QUFDcENzRixRQUFBQSxLQUFLLEdBQUcsUUFBUjtBQUNEOztBQUNELFVBQUksQ0FBQ0EsS0FBSyxDQUFDQyxJQUFOLENBQVdOLEdBQVgsQ0FBTCxFQUFzQjtBQUNwQm5CLFFBQUFBLENBQUMsQ0FBQ0MsY0FBRjtBQUNEO0FBQ0Y7QUFDRjs7QUFFRFMsRUFBQUEsUUFBUSxDQUFDVixDQUFELEVBQUk7QUFDVixRQUFJQSxDQUFDLENBQUN1QixPQUFGLEtBQWMsRUFBbEIsRUFBc0I7QUFDcEIsVUFBSSxDQUFDLEtBQUs5RSxRQUFWLEVBQW9CO0FBQ2xCLGNBQU1pRixJQUFJLEdBQUcsS0FBS0MsT0FBTCxDQUFhLE1BQWIsQ0FBYjs7QUFDQSxZQUFJRCxJQUFKLEVBQVU7QUFDUkEsVUFBQUEsSUFBSSxDQUFDRSxhQUFMLENBQW1CLElBQUlDLEtBQUosQ0FBVSxRQUFWLEVBQW9CO0FBQUVDLFlBQUFBLE9BQU8sRUFBRSxJQUFYO0FBQWlCQyxZQUFBQSxVQUFVLEVBQUU7QUFBN0IsV0FBcEIsQ0FBbkI7QUFDRDtBQUNGOztBQUNEL0csTUFBQUEsbUJBQW1CLENBQUMsSUFBRCxFQUFPLFFBQVAsRUFBaUIsS0FBS29DLEtBQXRCLENBQW5CO0FBQ0Q7QUFDRjs7QUFFYyxNQUFYNEUsV0FBVyxHQUFHO0FBQ2hCLFdBQU8sS0FBS3hGLFNBQUwsSUFBa0IsQ0FBQyxLQUFLZ0MsUUFBeEIsSUFBb0MsQ0FBQyxLQUFLUCxRQUExQyxJQUFzRCxDQUFDLEtBQUtoQyxPQUE1RCxJQUF1RSxLQUFLbUIsS0FBTCxJQUFjLElBQXJGLElBQTZGLEtBQUtBLEtBQUwsS0FBZSxFQUFuSDtBQUNEOztBQUVPLE1BQUo3QixJQUFJLENBQUM2QixLQUFELEVBQVE7QUFDZCxRQUFJLENBQUMsTUFBRCxFQUFTLFVBQVQsRUFBcUIsT0FBckIsRUFBOEIsUUFBOUIsRUFBd0MsUUFBeEMsRUFBa0QsS0FBbEQsRUFBeUQ2RSxRQUF6RCxDQUFrRTdFLEtBQWxFLENBQUosRUFBOEU7QUFDNUUsV0FBS1IsS0FBTCxHQUFhUSxLQUFiO0FBQ0Q7O0FBQ0QsUUFBSSxLQUFLUixLQUFMLEtBQWUsS0FBbkIsRUFBMEI7QUFDeEIsV0FBS0YsT0FBTCxHQUFlLGdDQUFmO0FBQ0Q7O0FBRUQsUUFBSSxLQUFLRSxLQUFMLEtBQWUsT0FBbkIsRUFBNEI7QUFDMUIsV0FBS0YsT0FBTCxHQUNFLDJKQURGO0FBRUQ7O0FBRUQsUUFBSSxLQUFLRSxLQUFMLEtBQWUsUUFBZixJQUEyQixLQUFLZCxJQUFMLElBQWEsSUFBeEMsSUFBZ0QsS0FBS0MsUUFBTCxJQUFpQixJQUFyRSxFQUEyRTtBQUN6RSxXQUFLRCxJQUFMLEdBQVlULE9BQU8sQ0FBQ3lCLFdBQXBCO0FBQ0EsV0FBS04sU0FBTCxHQUFpQixJQUFqQjtBQUNEOztBQUVELFFBQUksS0FBS0ksS0FBTCxLQUFlLFVBQW5CLEVBQStCO0FBQzdCLFdBQUtkLElBQUwsR0FBWVQsT0FBTyxDQUFDeUIsV0FBcEI7QUFDRDtBQUNGOztBQUVPLE1BQUp2QixJQUFJLEdBQUc7QUFDVCxXQUFPLEtBQUtxQixLQUFaO0FBQ0Q7O0FBRUR5RCxFQUFBQSxZQUFZLEdBQUc7QUFDYnJGLElBQUFBLG1CQUFtQixDQUFDLElBQUQsRUFBTyxZQUFQLEVBQXFCLEtBQUtvQyxLQUExQixDQUFuQjtBQUNBcEMsSUFBQUEsbUJBQW1CLENBQUMsSUFBRCxFQUFPLFFBQVAsRUFBaUIsS0FBS29DLEtBQXRCLENBQW5CO0FBQ0Q7O0FBRUQ4RSxFQUFBQSxtQkFBbUIsQ0FBQ2xDLENBQUQsRUFBSTtBQUNyQixRQUFJLEtBQUttQyxVQUFULEVBQXFCO0FBQ25CbkMsTUFBQUEsQ0FBQyxDQUFDQyxjQUFGO0FBQ0FELE1BQUFBLENBQUMsQ0FBQ0UsZUFBRjtBQUNBLFdBQUsvQyxhQUFMLEdBQXFCLENBQUMsS0FBS0EsYUFBM0I7QUFDQSxXQUFLUCxLQUFMLEdBQWEsS0FBS08sYUFBTCxHQUFxQixNQUFyQixHQUE4QixVQUEzQztBQUNEO0FBQ0Y7O0FBRWEsTUFBVmdGLFVBQVUsR0FBRztBQUNmLFdBQU8sQ0FBQyxLQUFLM0QsUUFBTixLQUFtQixLQUFLNUIsS0FBTCxLQUFlLFVBQWYsSUFBOEIsS0FBS0EsS0FBTCxLQUFlLE1BQWYsSUFBeUIsS0FBS08sYUFBL0UsQ0FBUDtBQUNEOztBQUVtQixNQUFoQmlGLGdCQUFnQixHQUFHO0FBQ3JCLFdBQU8sQ0FBQyxLQUFLNUQsUUFBTixJQUFrQixDQUFDLEtBQUtQLFFBQXhCLEtBQXFDLEtBQUsxQixTQUFMLElBQWtCLEtBQUtLLEtBQUwsS0FBZSxRQUFqQyxJQUE2QyxLQUFLTixTQUF2RixDQUFQO0FBQ0Q7O0FBRWUsTUFBWitGLFlBQVksR0FBRztBQUNqQixXQUFPLENBQUMsS0FBSzdELFFBQU4sSUFBa0IsS0FBS2xDLFNBQTlCO0FBQ0Q7O0FBRURnRyxFQUFBQSxLQUFLLEdBQUc7QUFDTixTQUFLOUUsS0FBTDtBQUNBLFNBQUtKLEtBQUwsR0FBYSxFQUFiO0FBQ0FwQyxJQUFBQSxtQkFBbUIsQ0FBQyxJQUFELEVBQU8sT0FBUCxFQUFnQixLQUFLb0MsS0FBckIsQ0FBbkI7QUFDRDs7QUFFRG1GLEVBQUFBLGdCQUFnQixHQUFHO0FBQ2pCLFFBQUksS0FBS1AsV0FBVCxFQUFzQjtBQUNwQixhQUFPckgsSUFBSSx5RkFDeUNNLElBQUksQ0FBQyxnQkFBRCxDQUQ3QyxhQUM0RSxLQUFLcUgsS0FEakYscUJBQVg7QUFHRDs7QUFDRCxXQUFPLEVBQVA7QUFDRDs7QUFFREUsRUFBQUEsbUJBQW1CLEdBQUc7QUFDcEIsUUFBSSxLQUFLTCxVQUFULEVBQXFCO0FBQ25CLFlBQU12RCxLQUFLLEdBQUcsS0FBS3pCLGFBQUwsR0FBcUIsaUJBQXJCLEdBQXlDLGdCQUF2RDtBQUNBLFlBQU1pQixLQUFLLEdBQUcsS0FBS2pCLGFBQUwsR0FBcUIsTUFBckIsR0FBOEIsTUFBNUM7QUFDQSxhQUFPeEMsSUFBSSx1REFDc0JpRSxLQUR0QixZQUN1Q1IsS0FEdkMsYUFDeUQsS0FBSzhELG1CQUQ5RCxxQkFBWDtBQUdEOztBQUNELFdBQU8sRUFBUDtBQUNEOztBQUVnQixNQUFiTyxhQUFhLEdBQUc7QUFDbEIsV0FBTyxDQUFDLEtBQUt4RyxPQUFiO0FBQ0Q7O0FBRUR5RyxFQUFBQSxXQUFXLEdBQUc7QUFDWixRQUFJOUQsS0FBSyxHQUFHLElBQVo7O0FBQ0EsUUFBSyxDQUFDLEtBQUt1RCxVQUFOLElBQW9CLEtBQUtyRyxJQUExQixJQUFtQyxLQUFLQyxRQUE1QyxFQUFzRDtBQUNwRDZDLE1BQUFBLEtBQUssR0FBSSxDQUFDLEtBQUt1RCxVQUFOLElBQW9CLEtBQUtyRyxJQUExQixJQUFtQyxLQUFLQyxRQUFoRDtBQUNEOztBQUNELFFBQUksS0FBS0UsT0FBVCxFQUFrQjtBQUNoQjJDLE1BQUFBLEtBQUssR0FBRyxvQkFBUjtBQUNEOztBQUVELFFBQUlBLEtBQUosRUFBVztBQUNULFlBQU0rRCxPQUFPLEdBQUc7QUFDZCxvQkFBWSxJQURFO0FBRWQseUJBQWlCLEtBQUs1RyxRQUFMLElBQWlCLElBQWpCLElBQXlCLEtBQUtTLFNBRmpDO0FBR2Qsd0JBQWdCLEtBQUtpRyxhQUhQO0FBSWRHLFFBQUFBLE1BQU0sRUFBRSxLQUFLUCxZQUFMLElBQXFCLEtBQUsxQztBQUpwQixPQUFoQjtBQU9BLFlBQU1rRCxXQUFXLEdBQUc7QUFDbEI5SCxRQUFBQSxJQUFJLEVBQUUsS0FBS3FILGdCQURPO0FBRWxCbkcsUUFBQUEsT0FBTyxFQUFFLEtBQUtBO0FBRkksT0FBcEI7QUFJQSxVQUFJbUMsS0FBSyxHQUFHLEVBQVo7O0FBQ0EsVUFBSSxLQUFLeEIsS0FBTCxLQUFlLFFBQW5CLEVBQTZCO0FBQzNCd0IsUUFBQUEsS0FBSyxHQUFHbkQsSUFBSSxDQUFDLGlCQUFELENBQVo7QUFDRCxPQUZELE1BRU8sSUFBSSxLQUFLb0gsWUFBVCxFQUF1QjtBQUM1QmpFLFFBQUFBLEtBQUssR0FBR25ELElBQUksQ0FBQyxlQUFELENBQVo7QUFDQSxlQUFPTixJQUFJLGVBQWVGLFFBQVEsQ0FBQ2tJLE9BQUQsQ0FBdkIsK0VBQ2tFLEtBRGxFLHNCQUVXbEksUUFBUSxDQUFDb0ksV0FBRCxDQUZuQixZQUU0Q2pFLEtBRjVDLFlBRTZEUixLQUY3RCwySkFBWDtBQVNELE9BWE0sTUFXQSxJQUFJLEtBQUtLLFdBQVQsRUFBc0I7QUFDM0JMLFFBQUFBLEtBQUssR0FBRyxLQUFLSyxXQUFiO0FBQ0Q7O0FBQ0QsYUFBTzlELElBQUksZUFBZUYsUUFBUSxDQUFDa0ksT0FBRCxDQUF2QixzQkFDU2xJLFFBQVEsQ0FBQ29JLFdBQUQsQ0FEakIsWUFDMENqRSxLQUQxQyxZQUMyRFIsS0FEM0QscUJBQVg7QUFHRDs7QUFDRCxXQUFPLEVBQVA7QUFDRDs7QUFFRDBFLEVBQUFBLE1BQU0sR0FBRztBQUNQLFVBQU1ILE9BQU8sR0FBRztBQUNkLG1CQUFhLElBREM7QUFFZDlILE1BQUFBLFFBQVEsRUFBRSxLQUFLQSxRQUZEO0FBR2RhLE1BQUFBLEtBQUssRUFBRSxLQUFLQSxLQUhFO0FBSWRFLE1BQUFBLE1BQU0sRUFBRSxLQUFLQSxNQUFMLElBQWdCLENBQUMsS0FBS0YsS0FBTixJQUFlLENBQUMsS0FBS0csS0FKL0I7QUFLZEEsTUFBQUEsS0FBSyxFQUFFLEtBQUtBLEtBTEU7QUFNZEMsTUFBQUEsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLQSxJQUFQLElBQWUsQ0FBQyxLQUFLVSxTQU5iO0FBT2RBLE1BQUFBLFNBQVMsRUFBRSxLQUFLQSxTQVBGO0FBUWQsbUJBQWEsQ0FBQyxDQUFDLEtBQUtULFFBQVAsSUFBb0IsQ0FBQyxDQUFDLEtBQUtELElBQVAsSUFBZSxLQUFLVSxTQVJ2QztBQVNkRixNQUFBQSxTQUFTLEVBQUUsS0FBSytGLFlBVEY7QUFVZHZFLE1BQUFBLFFBQVEsRUFBRSxLQUFLQTtBQVZELEtBQWhCO0FBYUEsV0FBT25ELElBQUksZ0JBQ0tGLFFBQVEsQ0FBQ2tJLE9BQUQsQ0FEYixNQUVMLEtBQUtJLFdBQUwsRUFGSywwQkFLTCxLQUFLUixnQkFBTCxFQUxLLElBS3NCLEtBQUtHLFdBQUwsRUFMdEIsSUFLNEMsS0FBS0YsbUJBQUwsRUFMNUMsV0FPUCxLQUFLN0YsV0FBTCxJQUFvQixJQUFwQixHQUEyQmhDLElBQUksd0NBQXdDLEtBQUtnQyxXQUE3QyxVQUEvQixHQUFvRyxFQVA3RixHQUFYO0FBU0Q7O0FBaGVtRDtBQW1ldERxRyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFVBQTdCLEVBQXlDN0gsT0FBekMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5cbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcbmltcG9ydCB7IGlucHV0IH0gZnJvbSAnLi4vc3R5bGVzL2lucHV0JztcbmltcG9ydCB7IGxpbmsgfSBmcm9tICcuLi9zdHlsZXMvbGluayc7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgJy4vZ3YtaWNvbic7XG5pbXBvcnQgJy4uL21vbGVjdWxlcy9ndi1wb3BvdmVyJztcbmltcG9ydCB7IGkxOG4gfSBmcm9tICcuLi9saWIvaTE4bic7XG5pbXBvcnQgeyBJbnB1dEVsZW1lbnQgfSBmcm9tICcuLi9taXhpbnMvaW5wdXQtZWxlbWVudCc7XG5pbXBvcnQgeyBzaGFwZUNsaXBib2FyZCwgc2hhcGVDb3BpZWQgfSBmcm9tICcuLi9zdHlsZXMvc2hhcGVzJztcblxuLyoqXG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGd2LWlucHV0OmlucHV0IC0gbWlycm9ycyBuYXRpdmUgaW5wdXQgZXZlbnRzIHdpdGggdGhlIGB2YWx1ZWAgb24gYGRldGFpbGBcbiAqIEBmaXJlcyBndi1pbnB1dDpjbGVhciAtIGV2ZW50IHdoZW4gdXNlciBjbGVhciBhIGNsZWFyYWJsZSBpbnB1dFxuICpcbiAqIEBhdHRyIHtCb29sZWFufSBkaXNhYmxlZCAtIHNhbWUgYXMgbmF0aXZlIGlucHV0IGVsZW1lbnQgYGRpc2FibGVkYCBhdHRyaWJ1dGVcbiAqIEBhdHRyIHtCb29sZWFufSByZXF1aXJlZCAtIHNhbWUgYXMgbmF0aXZlIGlucHV0IGVsZW1lbnQgYHJlcXVpcmVkYCBhdHRyaWJ1dGVcbiAqIEBhdHRyIHtCb29sZWFufSBza2VsZXRvbiAtIGVuYWJsZSBza2VsZXRvbiBzY3JlZW4gVUkgcGF0dGVybiAobG9hZGluZyBoaW50KVxuICogQGF0dHIge1N0cmluZ30gdmFsdWUgLSB0aGUgdmFsdWUgb2YgdGhlIGlucHV0XG4gKiBAYXR0ciB7U3RyaW5nfSBsYWJlbCAtIGxhYmVsIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gdGl0bGUgLSB0aXRsZSBvZiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IG5hbWUgLSBuYW1lIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gcGxhY2Vob2xkZXIgLSBhbiBleGFtcGxlIHZhbHVlIHRvIGRpc3BsYXkgaW4gdGhlIGlucHV0IHdoZW4gZW1wdHlcbiAqIEBhdHRyIHtTdHJpbmd9IGRlc2NyaXB0aW9uIC0gYSBkZXNjcmlwdGlvblxuICogQGF0dHIge1N0cmluZ30gdHlwZSAtIHR5cGUgb2YgdGhlIGlucHV0LCBjYW4gYmUgdGV4dCAoRGVmYXVsdCksIHBhc3N3b3JkLCBlbWFpbCwgc2VhcmNoLCBudW1iZXIsIHVybC5cbiAqIEBhdHRyIHtCb29sZWFufSBjbGlwYm9hcmQgLSBmb3IgcmVhZG9ubHkgaW5wdXQgd2l0aCBjbGlwYm9hcmRcbiAqIEBhdHRyIHtCb29sZWFufSBsYXJnZSAtIGZvciBhIGxhcmdlIGlucHV0XG4gKiBAYXR0ciB7Qm9vbGVhbn0gbWVkaXVtIC0gZm9yIGEgbWVkaXVtIGlucHV0IChEZWZhdWx0KVxuICogQGF0dHIge0Jvb2xlYW59IHNtYWxsIC0gZm9yIGEgc21hbGwgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IGljb24gLSBpY29uIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gaWNvbi1sZWZ0IC0gaWNvbiBvZiB0aGUgaW5wdXQgdG8gZGlzcGxheSBhdCBsZWZ0XG4gKiBAYXR0ciB7Qm9vbGVhbn0gdmFsaWQgLSBpZiB2YWx1ZSBpcyB2YWxpZFxuICogQGF0dHIge0Jvb2xlYW59IGludmFsaWQgLSBpZiB2YWx1ZSBpcyBpbnZhbGlkXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2xvYWRpbmc9ZmFsc2VdIC0gdHJ1ZSB0byBkaXNwbGF5IGEgbG9hZGluZyBpY29uXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2F1dG9mb2N1cz1mYWxzZV0gLSB0cnVlIHRvIHB1dCB0aGUgZm9jdXMgb24gdGhlIGlucHV0XG4gKiBAYXR0ciB7Qm9vbGVhbn0gW3JlYWRvbmx5PWZhbHNlXSAtIHRydWUgaWYgZmllbGQgaXMgcmVhZG9ubHkgbW9kZVxuICogQGF0dHIge1N0cmluZ30gW2F1dG9jb21wbGV0ZT0nb2ZmJ10gLSBzdGFuZGFyZCBhdXRvY29tcGxldGUgYXR0cmlidXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2NsaWNrYWJsZT1mYWxzZV0gLSBJZiB0cnVlLCBpY29uIGhhcyBsaW5rIHN0eWxlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2NsZWFyYWJsZT1mYWxzZV0gLSBJZiB0cnVlLCBpbnB1dCBjYW4gYmUgY2xlYXIgd2l0aCBidXR0b25cbiAqIEBhdHRyIHtCb29sZWFufSBbbm8tc3VibWl0PWZhbHNlXSAtIElmIHRydWUsIGlucHV0IGNhbm5vdCBkaXNwYXRjaCBuYXRpdmUgc3VibWl0IGV2ZW50IG9uIGVudGVyIGtleSBwcmVzcyB0byBjbG9zZXN0IGZvcm1cbiAqIEBhdHRyIHtTdHJpbmd9IFtwYXR0ZXJuPW51bGxdIC0gUGF0dGVybiBmb3IgaW5wdXQgdmFsaWRhdGlvbi4gSWYgdHlwZSBpcyB1cmwsIGRlZmF1bHQgcGF0dGVybiBpcyBeKGh0dHB8aHR0cHMpOi8vXG4gKlxuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3YtaW5wdXQtLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLCAjRjVGNUY1KV0gLSBCb3JkZXIgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtaW5wdXQtLWJkcz1zb2xpZF0gLSBCb3JkZXIgc3R5bGVcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtaW5wdXQtaWNvbi0tYmdjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNGNUY1RjUpXSAtIEljb24gYmFja2dyb3VuZCBjb2xvclxuICovXG5leHBvcnQgY2xhc3MgR3ZJbnB1dCBleHRlbmRzIElucHV0RWxlbWVudChMaXRFbGVtZW50KSB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VwZXIucHJvcGVydGllcyxcbiAgICAgIHR5cGU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBsYXJnZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBtZWRpdW06IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgc21hbGw6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgaWNvbjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGljb25MZWZ0OiB7IHR5cGU6IFN0cmluZywgYXR0cmlidXRlOiAnaWNvbi1sZWZ0JyB9LFxuICAgICAgbG9hZGluZzogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBtaW46IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBtYXg6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBhdXRvY29tcGxldGU6IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBjbGlwYm9hcmQ6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgY2xpY2thYmxlOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIGNsZWFyYWJsZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBub1N1Ym1pdDogeyB0eXBlOiBCb29sZWFuLCBhdHRyaWJ1dGU6ICduby1zdWJtaXQnIH0sXG4gICAgICBwYXR0ZXJuOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgZGVzY3JpcHRpb246IHsgdHlwZTogU3RyaW5nIH0sXG4gICAgICBfdHlwZTogeyB0eXBlOiBTdHJpbmcsIGF0dHJpYnV0ZTogZmFsc2UgfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnN1cGVyLnN0eWxlcyxcbiAgICAgIHNrZWxldG9uLFxuICAgICAgaW5wdXQsXG4gICAgICBsaW5rLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIC5jbGlja2FibGUgaW5wdXQsXG4gICAgICAgIC5jbGlja2FibGUgOjpzbG90dGVkKGlucHV0KSB7XG4gICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsaWNrYWJsZSBpbnB1dDpob3ZlcixcbiAgICAgICAgLmNsaWNrYWJsZSA6OnNsb3R0ZWQoaW5wdXQ6aG92ZXIpIHtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDFweCAzcHggdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjYmZiZmJmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGd2LWljb24ge1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjJweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5ib3gtaWNvbi5jb3BpZWQgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiAjMzM5OTAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2LmJveC1pY29uIGd2LWljb24ubG9hZGluZyxcbiAgICAgICAgLmxvYWRpbmcgOjpzbG90dGVkKGlucHV0KSB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBzcGlubmVyIDEuNnMgbGluZWFyIGluZmluaXRlO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMjBweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5sb2FkaW5nLnNtYWxsIGd2LWljb24ge1xuICAgICAgICAgIC0tZ3YtaWNvbi0tczogMThweDtcbiAgICAgICAgfVxuXG4gICAgICAgIEBrZXlmcmFtZXMgc3Bpbm5lciB7XG4gICAgICAgICAgdG8ge1xuICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuY2xpcGJvYXJkIGlucHV0LFxuICAgICAgICAuY2xpcGJvYXJkIDo6c2xvdHRlZChpbnB1dCkge1xuICAgICAgICAgIGN1cnNvcjogY29weTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbGlwYm9hcmQgaW5wdXQ6cmVhZC1vbmx5OmhvdmVyLFxuICAgICAgICAuY2xpcGJvYXJkIDo6c2xvdHRlZChpbnB1dDpyZWFkLW9ubHk6aG92ZXIpIHtcbiAgICAgICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsaXBib2FyZF9fcG9wb3ZlciB7XG4gICAgICAgICAgLS1ndi1wb3BvdmVyLS1iZ2M6IHZhcigtLWd2LXRoZW1lLWNvbG9yLWRhcmtlciwgIzM4M2UzZik7XG4gICAgICAgICAgLS1ndi1wb3BvdmVyLS1jOiB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKTtcbiAgICAgICAgICAtLWd2LXBvcG92ZXItLXA6IDByZW0gMC40cmVtIDByZW0gMC4ycmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5jbGlwYm9hcmRfX3BvcG92ZXItY29udGVudCB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgIC0tZ3YtaWNvbi0tYzogdmFyKC0tZ3YtdGhlbWUtZm9udC1jb2xvci1saWdodCwgI2ZmZmZmZik7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc2hhcGVTZWFyY2goKSB7XG4gICAgcmV0dXJuICdnZW5lcmFsOnNlYXJjaCc7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHNoYXBlQ2xlYXIoKSB7XG4gICAgcmV0dXJuICdjb2RlOmVycm9yJztcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc2hhcGVJbnZpc2libGUoKSB7XG4gICAgcmV0dXJuICdnZW5lcmFsOmludmlzaWJsZSc7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHNoYXBlVmlzaWJsZSgpIHtcbiAgICByZXR1cm4gJ2dlbmVyYWw6dmlzaWJsZSc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuX3R5cGUgPSAndGV4dCc7XG4gICAgdGhpcy5fc2hvd1Bhc3N3b3JkID0gZmFsc2U7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMuYXV0b2NvbXBsZXRlID0gJ29mZic7XG4gICAgdGhpcy5ub1N1Ym1pdCA9IGZhbHNlO1xuICB9XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYmx1cigpO1xuICB9XG5cbiAgZm9jdXMoKSB7XG4gICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5mb2N1cygpO1xuICB9XG5cbiAgZ2V0SW5wdXRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9pbnB1dCB8fCBzdXBlci5nZXRJbnB1dEVsZW1lbnQoKTtcbiAgfVxuXG4gIHVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdfdHlwZScpKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnR5cGUgPSB0aGlzLl90eXBlO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2F1dG9jb21wbGV0ZScpKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmF1dG9jb21wbGV0ZSA9IHRoaXMuYXV0b2NvbXBsZXRlO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25hbWUnKSAmJiB0aGlzLm5hbWUgIT0gbnVsbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5uYW1lID0gdGhpcy5uYW1lO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkucmVxdWlyZWQgPSB0aGlzLnJlcXVpcmVkO1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKVsnYXJpYS1yZXF1aXJlZCddID0gISF0aGlzLnJlcXVpcmVkO1xuICAgICAgaWYgKHRoaXMudmFsdWUgPT0gbnVsbCB8fCB0aGlzLnZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgdGhpcy5pbnZhbGlkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5zZXRBdHRyaWJ1dGUoJ3JlYWRvbmx5JywgdHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkucmVtb3ZlQXR0cmlidXRlKCdyZWFkb25seScpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xhYmVsJykgfHwgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd0aXRsZScpKSB7XG4gICAgICBjb25zdCB0aXRsZSA9IHRoaXMudGl0bGUgfHwgdGhpcy5sYWJlbDtcbiAgICAgIGlmICh0aXRsZSAhPSBudWxsKSB7XG4gICAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkudGl0bGUgPSB0aXRsZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsYWJlbCcpICYmIHRoaXMubGFiZWwpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KClbJ2FyaWEtbGFiZWwnXSA9IHRoaXMubGFiZWw7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncGF0dGVybicpKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnBhdHRlcm4gPSB0aGlzLnBhdHRlcm47XG4gICAgICB0aGlzLl9yZWdleFBhdHRlcm4gPSBuZXcgUmVnRXhwKHRoaXMucGF0dGVybik7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3NrZWxldG9uJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuc2tlbGV0b247XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncGxhY2Vob2xkZXInKSAmJiB0aGlzLnBsYWNlaG9sZGVyICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkucGxhY2Vob2xkZXIgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3ZhbHVlJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkudmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVTdGF0ZSh0aGlzLnZhbHVlKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdtaW4nKSAmJiB0aGlzLm1pbiAhPSBudWxsKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLm1pbiA9IHRoaXMubWluO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ21heCcpICYmIHRoaXMubWF4ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkubWF4ID0gdGhpcy5tYXg7XG4gICAgfVxuICB9XG5cbiAgX3NldENsaXBib2FyZEljb24oc2hhcGUpIHtcbiAgICBpZiAodGhpcy5pY29uICE9IG51bGwgJiYgdGhpcy5pY29uICE9PSBzaGFwZUNvcGllZCAmJiB0aGlzLmljb24gIT09IHNoYXBlQ2xpcGJvYXJkKSB7XG4gICAgICB0aGlzLmljb25MZWZ0ID0gc2hhcGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaWNvbiA9IHNoYXBlO1xuICAgIH1cbiAgfVxuXG4gIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBjb25zdCBkZWZhdWx0SW5wdXRFbGVtZW50ID0gdGhpcy5nZXRJbnB1dEVsZW1lbnQoKTtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5jaGlsZE5vZGVzKSB7XG4gICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gMSkge1xuICAgICAgICBjb25zdCBjaGlsZCA9IG5vZGUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ2lucHV0JyA/IG5vZGUgOiBub2RlLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XG4gICAgICAgIGlmIChjaGlsZCkge1xuICAgICAgICAgIHRoaXMuX2lucHV0ID0gY2hpbGQ7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuX2lucHV0KSB7XG4gICAgICBkZWZhdWx0SW5wdXRFbGVtZW50LnJlbW92ZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmNsaXBib2FyZCkge1xuICAgICAgaW1wb3J0KCdjbGlwYm9hcmQtY29weScpLnRoZW4oXG4gICAgICAgIChtb2QpID0+XG4gICAgICAgICAgKHRoaXMuY29weSA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvcHkgPSBtb2QuZGVmYXVsdDtcbiAgICAgICAgICAgIGNvcHkodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9jb3BpZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fc2V0Q2xpcGJvYXJkSWNvbihzaGFwZUNvcGllZCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5fY29waWVkID0gZmFsc2U7XG4gICAgICAgICAgICAgIHRoaXMuX3NldENsaXBib2FyZEljb24oc2hhcGVDbGlwYm9hcmQpO1xuICAgICAgICAgICAgfSwgMTAwMCk7XG4gICAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgdGhpcy5fc2V0Q2xpcGJvYXJkSWNvbihzaGFwZUNsaXBib2FyZCk7XG5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zdCBjbGlwYm9hcmRQb3BvdmVyID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJy5jbGlwYm9hcmRfX3BvcG92ZXInKTtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkpIHtcbiAgICAgICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBjbGlwYm9hcmRQb3BvdmVyLmNsaWNrKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY2xpcGJvYXJkUG9wb3Zlci5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XG4gICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgdGhpcy5jb3B5KHRoaXMudmFsdWUpO1xuICAgICAgICB9KTtcbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjbGlja2FibGVJY29uID0gdGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3IoJ2d2LWljb24ubGluaycpO1xuICAgICAgaWYgKGNsaWNrYWJsZUljb24pIHtcbiAgICAgICAgY2xpY2thYmxlSWNvbi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuX29uSWNvbkNsaWNrLmJpbmQodGhpcykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuaWQgPSB0aGlzLl9pZDtcbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgdGhpcy5fb25JbnB1dC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXVwJywgdGhpcy5fb25LZXlVcC5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmFkZEV2ZW50TGlzdGVuZXIoJ2tleXByZXNzJywgdGhpcy5fb25LZXlQcmVzcy5iaW5kKHRoaXMpKTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHZhbHVlKSB7XG4gICAgc3VwZXIudXBkYXRlU3RhdGUodmFsdWUpO1xuICAgIGlmICh0aGlzLnZhbGlkID09PSB0cnVlICYmICF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICBpZiAodGhpcy5fcmVnZXhQYXR0ZXJuKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsICYmIHZhbHVlLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgICAgICBjb25zdCB2YWxpZCA9IHZhbHVlLm1hdGNoKHRoaXMuX3JlZ2V4UGF0dGVybik7XG4gICAgICAgICAgdGhpcy5zZXRWYWxpZGl0eSh2YWxpZCA9PSBudWxsLCBgZmllbGQgbm90IHJlc3BlY3QgdGhlIHBhdHRlcm4gJHt0aGlzLl9yZWdleFBhdHRlcm59YCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdHlwZSA9PT0gJ251bWJlcicgJiYgdmFsdWUgIT0gbnVsbCAmJiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyB8fCB2YWx1ZS50cmltKCkgIT09ICcnKSkge1xuICAgICAgICBjb25zdCBfdmFsdWUgPSBOdW1iZXIodmFsdWUpLnZhbHVlT2YoKTtcbiAgICAgICAgaWYgKGlzTmFOKF92YWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbGlkaXR5KHRydWUsIGBmaWVsZCBpcyBub3QgbnVtYmVyYCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5taW4gIT0gbnVsbCAmJiB0aGlzLm1pbiA+IF92YWx1ZSkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsaWRpdHkodHJ1ZSwgYGZpZWxkIGlzIDwgJHt0aGlzLm1pbn1gKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1heCAhPSBudWxsICYmIHRoaXMubWF4IDwgX3ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWxpZGl0eSh0cnVlLCBgZmllbGQgaXMgPiAke3RoaXMubWF4fWApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2V0VmFsaWRpdHkoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX29uSW5wdXQoZSkge1xuICAgIHRoaXMudXBkYXRlU3RhdGUoZS50YXJnZXQudmFsdWUpO1xuICAgIHRoaXMudmFsdWUgPSBlLnRhcmdldC52YWx1ZTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpbnB1dCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX29uS2V5UHJlc3MoZSkge1xuICAgIGlmICh0aGlzLl90eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgbGV0IGtleTtcbiAgICAgIGlmIChlLnR5cGUgPT09ICdwYXN0ZScpIHtcbiAgICAgICAga2V5ID0gZS5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGtleSA9IFN0cmluZy5mcm9tQ2hhckNvZGUoZS5rZXlDb2RlKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHJlZ2V4ID0gL1swLTldLztcbiAgICAgIGlmICh0aGlzLm1pbiA9PSBudWxsIHx8IHRoaXMubWluIDwgMCkge1xuICAgICAgICByZWdleCA9IC9bMC05LV0vO1xuICAgICAgfVxuICAgICAgaWYgKCFyZWdleC50ZXN0KGtleSkpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIF9vbktleVVwKGUpIHtcbiAgICBpZiAoZS5rZXlDb2RlID09PSAxMykge1xuICAgICAgaWYgKCF0aGlzLm5vU3VibWl0KSB7XG4gICAgICAgIGNvbnN0IGZvcm0gPSB0aGlzLmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgICAgICAgaWYgKGZvcm0pIHtcbiAgICAgICAgICBmb3JtLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdzdWJtaXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNhbmNlbGFibGU6IHRydWUgfSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdzdWJtaXQnLCB0aGlzLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNDbGVhcmFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuY2xlYXJhYmxlICYmICF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRvbmx5ICYmICF0aGlzLmxvYWRpbmcgJiYgdGhpcy52YWx1ZSAhPSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnO1xuICB9XG5cbiAgc2V0IHR5cGUodmFsdWUpIHtcbiAgICBpZiAoWyd0ZXh0JywgJ3Bhc3N3b3JkJywgJ2VtYWlsJywgJ3NlYXJjaCcsICdudW1iZXInLCAndXJsJ10uaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICB0aGlzLl90eXBlID0gdmFsdWU7XG4gICAgfVxuICAgIGlmICh0aGlzLl90eXBlID09PSAndXJsJykge1xuICAgICAgdGhpcy5wYXR0ZXJuID0gJyhodHRwcz86Ly8udyopKDpcXFxcZCopP1xcXFwvPyguKiknO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90eXBlID09PSAnZW1haWwnKSB7XG4gICAgICB0aGlzLnBhdHRlcm4gPVxuICAgICAgICAvXigoW148PigpXFxcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKFxcLltePD4oKVxcXFxbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFxdKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLztcbiAgICB9XG5cbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ3NlYXJjaCcgJiYgdGhpcy5pY29uID09IG51bGwgJiYgdGhpcy5pY29uTGVmdCA9PSBudWxsKSB7XG4gICAgICB0aGlzLmljb24gPSBHdklucHV0LnNoYXBlU2VhcmNoO1xuICAgICAgdGhpcy5jbGVhcmFibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90eXBlID09PSAncGFzc3dvcmQnKSB7XG4gICAgICB0aGlzLmljb24gPSBHdklucHV0LnNoYXBlU2VhcmNoO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0eXBlKCkge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgX29uSWNvbkNsaWNrKCkge1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2ljb24tY2xpY2snLCB0aGlzLnZhbHVlKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdzdWJtaXQnLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIF9vbkljb25WaXNpYmxlQ2xpY2soZSkge1xuICAgIGlmICh0aGlzLmlzUGFzc3dvcmQpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB0aGlzLl9zaG93UGFzc3dvcmQgPSAhdGhpcy5fc2hvd1Bhc3N3b3JkO1xuICAgICAgdGhpcy5fdHlwZSA9IHRoaXMuX3Nob3dQYXNzd29yZCA/ICd0ZXh0JyA6ICdwYXNzd29yZCc7XG4gICAgfVxuICB9XG5cbiAgZ2V0IGlzUGFzc3dvcmQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmICh0aGlzLl90eXBlID09PSAncGFzc3dvcmQnIHx8ICh0aGlzLl90eXBlID09PSAndGV4dCcgJiYgdGhpcy5fc2hvd1Bhc3N3b3JkKSk7XG4gIH1cblxuICBnZXQgaGFzQ2xpY2thYmxlSWNvbigpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkgJiYgKHRoaXMuY2xpY2thYmxlIHx8IHRoaXMuX3R5cGUgPT09ICdzZWFyY2gnIHx8IHRoaXMuY2xpcGJvYXJkKTtcbiAgfVxuXG4gIGdldCBoYXNDbGlwYm9hcmQoKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIHRoaXMuY2xpcGJvYXJkO1xuICB9XG5cbiAgY2xlYXIoKSB7XG4gICAgdGhpcy5mb2N1cygpO1xuICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdjbGVhcicsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX3JlbmRlckNsZWFySWNvbigpIHtcbiAgICBpZiAodGhpcy5pc0NsZWFyYWJsZSkge1xuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImJveC1pY29uIGJveC1pY29uLWNsZWFyXCI+XG4gICAgICAgIDxndi1pY29uIGNsYXNzPVwibGlua1wiIHNoYXBlPVwiY29kZTplcnJvclwiIHRpdGxlPVwiJHtpMThuKCdndi1pbnB1dC5jbGVhcicpfVwiIEBjbGljaz1cIiR7dGhpcy5jbGVhcn1cIj48L2d2LWljb24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBfcmVuZGVyUGFzc3dvcmRJY29uKCkge1xuICAgIGlmICh0aGlzLmlzUGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHNoYXBlID0gdGhpcy5fc2hvd1Bhc3N3b3JkID8gJ2dlbmVyYWw6dmlzaWJsZScgOiAnZ2VuZXJhbDpoaWRkZW4nO1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLl9zaG93UGFzc3dvcmQgPyAnU2hvdycgOiAnSGlkZSc7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiYm94LWljb25cIj5cbiAgICAgICAgPGd2LWljb24gY2xhc3M9XCJsaW5rXCIgc2hhcGU9XCIke3NoYXBlfVwiIHRpdGxlPVwiJHt0aXRsZX1cIiBAY2xpY2s9XCIke3RoaXMuX29uSWNvblZpc2libGVDbGlja31cIj48L2d2LWljb24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXQgaGFzQmFja2dyb3VuZCgpIHtcbiAgICByZXR1cm4gIXRoaXMubG9hZGluZztcbiAgfVxuXG4gIF9yZW5kZXJJY29uKCkge1xuICAgIGxldCBzaGFwZSA9IG51bGw7XG4gICAgaWYgKCghdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMuaWNvbikgfHwgdGhpcy5pY29uTGVmdCkge1xuICAgICAgc2hhcGUgPSAoIXRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLmljb24pIHx8IHRoaXMuaWNvbkxlZnQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHNoYXBlID0gJ25hdmlnYXRpb246d2FpdGluZyc7XG4gICAgfVxuXG4gICAgaWYgKHNoYXBlKSB7XG4gICAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgICAnYm94LWljb24nOiB0cnVlLFxuICAgICAgICAnYm94LWljb24tbGVmdCc6IHRoaXMuaWNvbkxlZnQgIT0gbnVsbCB8fCB0aGlzLmNsZWFyYWJsZSxcbiAgICAgICAgJ2JveC1pY29uLWJnYyc6IHRoaXMuaGFzQmFja2dyb3VuZCxcbiAgICAgICAgY29waWVkOiB0aGlzLmhhc0NsaXBib2FyZCAmJiB0aGlzLl9jb3BpZWQsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBpY29uQ2xhc3NlcyA9IHtcbiAgICAgICAgbGluazogdGhpcy5oYXNDbGlja2FibGVJY29uLFxuICAgICAgICBsb2FkaW5nOiB0aGlzLmxvYWRpbmcsXG4gICAgICB9O1xuICAgICAgbGV0IHRpdGxlID0gJyc7XG4gICAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ3NlYXJjaCcpIHtcbiAgICAgICAgdGl0bGUgPSBpMThuKCdndi1pbnB1dC5zZWFyY2gnKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNDbGlwYm9hcmQpIHtcbiAgICAgICAgdGl0bGUgPSBpMThuKCdndi1pbnB1dC5jb3B5Jyk7XG4gICAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgICAgIDxndi1wb3BvdmVyIGNsYXNzPVwiY2xpcGJvYXJkX19wb3BvdmVyXCIgZXZlbnQ9XCJjbGlja1wiIGRlbGF5PVwiNzUwXCIgLmFycm93PVwiJHtmYWxzZX1cIj5cbiAgICAgICAgICAgIDxndi1pY29uIGNsYXNzPVwiJHtjbGFzc01hcChpY29uQ2xhc3Nlcyl9XCIgc2hhcGU9XCIke3NoYXBlfVwiIHRpdGxlPVwiJHt0aXRsZX1cIj48L2d2LWljb24+XG4gICAgICAgICAgICA8ZGl2IHNsb3Q9XCJwb3BvdmVyXCIgY2xhc3M9XCJjbGlwYm9hcmRfX3BvcG92ZXItY29udGVudFwiPlxuICAgICAgICAgICAgICA8Z3YtaWNvbiBzaGFwZT1cImNvZGU6Y2hlY2tcIj48L2d2LWljb24+XG4gICAgICAgICAgICAgIDxkaXY+Q29waWVkPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2d2LXBvcG92ZXI+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgdGl0bGUgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAgIDxndi1pY29uIGNsYXNzPVwiJHtjbGFzc01hcChpY29uQ2xhc3Nlcyl9XCIgc2hhcGU9XCIke3NoYXBlfVwiIHRpdGxlPVwiJHt0aXRsZX1cIj48L2d2LWljb24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgICdib3gtaW5wdXQnOiB0cnVlLFxuICAgICAgc2tlbGV0b246IHRoaXMuc2tlbGV0b24sXG4gICAgICBsYXJnZTogdGhpcy5sYXJnZSxcbiAgICAgIG1lZGl1bTogdGhpcy5tZWRpdW0gfHwgKCF0aGlzLmxhcmdlICYmICF0aGlzLnNtYWxsKSxcbiAgICAgIHNtYWxsOiB0aGlzLnNtYWxsLFxuICAgICAgaWNvbjogISF0aGlzLmljb24gJiYgIXRoaXMuY2xlYXJhYmxlLFxuICAgICAgY2xlYXJhYmxlOiB0aGlzLmNsZWFyYWJsZSxcbiAgICAgICdpY29uLWxlZnQnOiAhIXRoaXMuaWNvbkxlZnQgfHwgKCEhdGhpcy5pY29uICYmIHRoaXMuY2xlYXJhYmxlKSxcbiAgICAgIGNsaXBib2FyZDogdGhpcy5oYXNDbGlwYm9hcmQsXG4gICAgICByZXF1aXJlZDogdGhpcy5yZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgIDxpbnB1dCAvPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICR7dGhpcy5fcmVuZGVyQ2xlYXJJY29uKCl9ICR7dGhpcy5fcmVuZGVySWNvbigpfSAke3RoaXMuX3JlbmRlclBhc3N3b3JkSWNvbigpfVxuICAgICAgPC9kaXY+XG4gICAgICAke3RoaXMuZGVzY3JpcHRpb24gIT0gbnVsbCA/IGh0bWxgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgLmlubmVySFRNTD1cIiR7dGhpcy5kZXNjcmlwdGlvbn1cIj48L2Rpdj5gIDogJyd9XG4gICAgYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1pbnB1dCcsIEd2SW5wdXQpO1xuIl19
531
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LWlucHV0LmpzIl0sIm5hbWVzIjpbImNsYXNzTWFwIiwiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJza2VsZXRvbiIsImlucHV0IiwibGluayIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJpMThuIiwiSW5wdXRFbGVtZW50Iiwic2hhcGVDbGlwYm9hcmQiLCJzaGFwZUNvcGllZCIsIkd2SW5wdXQiLCJwcm9wZXJ0aWVzIiwidHlwZSIsIlN0cmluZyIsInJlZmxlY3QiLCJsYXJnZSIsIkJvb2xlYW4iLCJtZWRpdW0iLCJzbWFsbCIsImljb24iLCJpY29uTGVmdCIsImF0dHJpYnV0ZSIsImxvYWRpbmciLCJtaW4iLCJOdW1iZXIiLCJtYXgiLCJhdXRvY29tcGxldGUiLCJjbGlwYm9hcmQiLCJjbGlja2FibGUiLCJjbGVhcmFibGUiLCJub1N1Ym1pdCIsInBhdHRlcm4iLCJkZXNjcmlwdGlvbiIsIl90eXBlIiwic3R5bGVzIiwic2hhcGVTZWFyY2giLCJzaGFwZUNsZWFyIiwic2hhcGVJbnZpc2libGUiLCJzaGFwZVZpc2libGUiLCJjb25zdHJ1Y3RvciIsIl9zaG93UGFzc3dvcmQiLCJ2YWx1ZSIsInJlc2V0IiwiZ2V0SW5wdXRFbGVtZW50IiwiYmx1ciIsImZvY3VzIiwiX2lucHV0IiwidXBkYXRlZCIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwibmFtZSIsInJlcXVpcmVkIiwidHJpbSIsImludmFsaWQiLCJyZWFkb25seSIsInNldEF0dHJpYnV0ZSIsInJlbW92ZUF0dHJpYnV0ZSIsInRpdGxlIiwibGFiZWwiLCJfcmVnZXhQYXR0ZXJuIiwiUmVnRXhwIiwiZGlzYWJsZWQiLCJwbGFjZWhvbGRlciIsInVwZGF0ZVN0YXRlIiwiX3NldENsaXBib2FyZEljb24iLCJzaGFwZSIsImZpcnN0VXBkYXRlZCIsImRlZmF1bHRJbnB1dEVsZW1lbnQiLCJub2RlIiwiY2hpbGROb2RlcyIsIm5vZGVUeXBlIiwiY2hpbGQiLCJub2RlTmFtZSIsInRvTG93ZXJDYXNlIiwicXVlcnlTZWxlY3RvciIsInJlbW92ZSIsInRoZW4iLCJtb2QiLCJjb3B5IiwiZGVmYXVsdCIsIl9jb3BpZWQiLCJzZXRUaW1lb3V0IiwiY2xpcGJvYXJkUG9wb3ZlciIsInNoYWRvd1Jvb3QiLCJhZGRFdmVudExpc3RlbmVyIiwiZSIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiY2xpY2siLCJjbGlja2FibGVJY29uIiwiX29uSWNvbkNsaWNrIiwiYmluZCIsImlkIiwiX2lkIiwiX29uSW5wdXQiLCJfb25LZXlVcCIsIl9vbktleVByZXNzIiwidmFsaWQiLCJtYXRjaCIsInNldFZhbGlkaXR5IiwiX3ZhbHVlIiwidmFsdWVPZiIsImlzTmFOIiwidGFyZ2V0Iiwia2V5IiwiY2xpcGJvYXJkRGF0YSIsImdldERhdGEiLCJmcm9tQ2hhckNvZGUiLCJrZXlDb2RlIiwicmVnZXgiLCJ0ZXN0IiwiZm9ybSIsImNsb3Nlc3QiLCJkaXNwYXRjaEV2ZW50IiwiRXZlbnQiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImlzQ2xlYXJhYmxlIiwiaW5jbHVkZXMiLCJfb25JY29uVmlzaWJsZUNsaWNrIiwiaXNQYXNzd29yZCIsImhhc0NsaWNrYWJsZUljb24iLCJoYXNDbGlwYm9hcmQiLCJjbGVhciIsIl9yZW5kZXJDbGVhckljb24iLCJfc2hhcGVQYXNzd29yZCIsIl9yZW5kZXJQYXNzd29yZEljb24iLCJoYXNCYWNrZ3JvdW5kIiwiX3JlbmRlckljb24iLCJjbGFzc2VzIiwiY29waWVkIiwiaWNvbkNsYXNzZXMiLCJyZW5kZXIiLCJyZW5kZXJMYWJlbCIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxRQUFULFFB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QUw1QyxXQU9QLEtBQUs5RixXQUFMLElBQW9CLElBQXBCLEdBQTJCaEMsSUFBSSx3Q0FBd0MsS0FBS2dDLFdBQTdDLFVBQS9CLEdBQW9HLEVBUDdGLEdBQVg7QUFTRDs7QUFwZW1EO0FBdWV0RHNHLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsVUFBN0IsRUFBeUM5SCxPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcblxuaW1wb3J0IHsgTGl0RWxlbWVudCwgaHRtbCwgY3NzIH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0IHsgc2tlbGV0b24gfSBmcm9tICcuLi9zdHlsZXMvc2tlbGV0b24nO1xuaW1wb3J0IHsgaW5wdXQgfSBmcm9tICcuLi9zdHlsZXMvaW5wdXQnO1xuaW1wb3J0IHsgbGluayB9IGZyb20gJy4uL3N0eWxlcy9saW5rJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCAnLi9ndi1pY29uJztcbmltcG9ydCAnLi4vbW9sZWN1bGVzL2d2LXBvcG92ZXInO1xuaW1wb3J0IHsgaTE4biB9IGZyb20gJy4uL2xpYi9pMThuJztcbmltcG9ydCB7IElucHV0RWxlbWVudCB9IGZyb20gJy4uL21peGlucy9pbnB1dC1lbGVtZW50JztcbmltcG9ydCB7IHNoYXBlQ2xpcGJvYXJkLCBzaGFwZUNvcGllZCB9IGZyb20gJy4uL3N0eWxlcy9zaGFwZXMnO1xuXG4vKipcbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtaW5wdXQ6aW5wdXQgLSBtaXJyb3JzIG5hdGl2ZSBpbnB1dCBldmVudHMgd2l0aCB0aGUgYHZhbHVlYCBvbiBgZGV0YWlsYFxuICogQGZpcmVzIGd2LWlucHV0OmNsZWFyIC0gZXZlbnQgd2hlbiB1c2VyIGNsZWFyIGEgY2xlYXJhYmxlIGlucHV0XG4gKlxuICogQGF0dHIge0Jvb2xlYW59IGRpc2FibGVkIC0gc2FtZSBhcyBuYXRpdmUgaW5wdXQgZWxlbWVudCBgZGlzYWJsZWRgIGF0dHJpYnV0ZVxuICogQGF0dHIge0Jvb2xlYW59IHJlcXVpcmVkIC0gc2FtZSBhcyBuYXRpdmUgaW5wdXQgZWxlbWVudCBgcmVxdWlyZWRgIGF0dHJpYnV0ZVxuICogQGF0dHIge0Jvb2xlYW59IHNrZWxldG9uIC0gZW5hYmxlIHNrZWxldG9uIHNjcmVlbiBVSSBwYXR0ZXJuIChsb2FkaW5nIGhpbnQpXG4gKiBAYXR0ciB7U3RyaW5nfSB2YWx1ZSAtIHRoZSB2YWx1ZSBvZiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtTdHJpbmd9IGxhYmVsIC0gbGFiZWwgb2YgdGhlIGlucHV0XG4gKiBAYXR0ciB7U3RyaW5nfSB0aXRsZSAtIHRpdGxlIG9mIHRoZSBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gbmFtZSAtIG5hbWUgb2YgdGhlIGlucHV0XG4gKiBAYXR0ciB7U3RyaW5nfSBwbGFjZWhvbGRlciAtIGFuIGV4YW1wbGUgdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgaW5wdXQgd2hlbiBlbXB0eVxuICogQGF0dHIge1N0cmluZ30gZGVzY3JpcHRpb24gLSBhIGRlc2NyaXB0aW9uXG4gKiBAYXR0ciB7U3RyaW5nfSB0eXBlIC0gdHlwZSBvZiB0aGUgaW5wdXQsIGNhbiBiZSB0ZXh0IChEZWZhdWx0KSwgcGFzc3dvcmQsIGVtYWlsLCBzZWFyY2gsIG51bWJlciwgdXJsLlxuICogQGF0dHIge0Jvb2xlYW59IGNsaXBib2FyZCAtIGZvciByZWFkb25seSBpbnB1dCB3aXRoIGNsaXBib2FyZFxuICogQGF0dHIge0Jvb2xlYW59IGxhcmdlIC0gZm9yIGEgbGFyZ2UgaW5wdXRcbiAqIEBhdHRyIHtCb29sZWFufSBtZWRpdW0gLSBmb3IgYSBtZWRpdW0gaW5wdXQgKERlZmF1bHQpXG4gKiBAYXR0ciB7Qm9vbGVhbn0gc21hbGwgLSBmb3IgYSBzbWFsbCBpbnB1dFxuICogQGF0dHIge1N0cmluZ30gaWNvbiAtIGljb24gb2YgdGhlIGlucHV0XG4gKiBAYXR0ciB7U3RyaW5nfSBpY29uLWxlZnQgLSBpY29uIG9mIHRoZSBpbnB1dCB0byBkaXNwbGF5IGF0IGxlZnRcbiAqIEBhdHRyIHtCb29sZWFufSB2YWxpZCAtIGlmIHZhbHVlIGlzIHZhbGlkXG4gKiBAYXR0ciB7Qm9vbGVhbn0gaW52YWxpZCAtIGlmIHZhbHVlIGlzIGludmFsaWRcbiAqIEBhdHRyIHtCb29sZWFufSBbbG9hZGluZz1mYWxzZV0gLSB0cnVlIHRvIGRpc3BsYXkgYSBsb2FkaW5nIGljb25cbiAqIEBhdHRyIHtCb29sZWFufSBbYXV0b2ZvY3VzPWZhbHNlXSAtIHRydWUgdG8gcHV0IHRoZSBmb2N1cyBvbiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtCb29sZWFufSBbcmVhZG9ubHk9ZmFsc2VdIC0gdHJ1ZSBpZiBmaWVsZCBpcyByZWFkb25seSBtb2RlXG4gKiBAYXR0ciB7U3RyaW5nfSBbYXV0b2NvbXBsZXRlPSdvZmYnXSAtIHN0YW5kYXJkIGF1dG9jb21wbGV0ZSBhdHRyaWJ1dGVcbiAqIEBhdHRyIHtCb29sZWFufSBbY2xpY2thYmxlPWZhbHNlXSAtIElmIHRydWUsIGljb24gaGFzIGxpbmsgc3R5bGVcbiAqIEBhdHRyIHtCb29sZWFufSBbY2xlYXJhYmxlPWZhbHNlXSAtIElmIHRydWUsIGlucHV0IGNhbiBiZSBjbGVhciB3aXRoIGJ1dHRvblxuICogQGF0dHIge0Jvb2xlYW59IFtuby1zdWJtaXQ9ZmFsc2VdIC0gSWYgdHJ1ZSwgaW5wdXQgY2Fubm90IGRpc3BhdGNoIG5hdGl2ZSBzdWJtaXQgZXZlbnQgb24gZW50ZXIga2V5IHByZXNzIHRvIGNsb3Nlc3QgZm9ybVxuICogQGF0dHIge1N0cmluZ30gW3BhdHRlcm49bnVsbF0gLSBQYXR0ZXJuIGZvciBpbnB1dCB2YWxpZGF0aW9uLiBJZiB0eXBlIGlzIHVybCwgZGVmYXVsdCBwYXR0ZXJuIGlzIF4oaHR0cHxodHRwcyk6Ly9cbiAqXG4gKiBAY3NzcHJvcCB7U3RyaW5nfSBbLS1ndi1pbnB1dC0tYmRjPXZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3IsICNGNUY1RjUpXSAtIEJvcmRlciBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1pbnB1dC0tYmRzPXNvbGlkXSAtIEJvcmRlciBzdHlsZVxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1pbnB1dC1pY29uLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvciwgI0Y1RjVGNSldIC0gSWNvbiBiYWNrZ3JvdW5kIGNvbG9yXG4gKi9cbmV4cG9ydCBjbGFzcyBHdklucHV0IGV4dGVuZHMgSW5wdXRFbGVtZW50KExpdEVsZW1lbnQpIHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5zdXBlci5wcm9wZXJ0aWVzLFxuICAgICAgdHlwZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGxhcmdlOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIG1lZGl1bTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBzbWFsbDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBpY29uOiB7IHR5cGU6IFN0cmluZyB9LFxuICAgICAgaWNvbkxlZnQ6IHsgdHlwZTogU3RyaW5nLCBhdHRyaWJ1dGU6ICdpY29uLWxlZnQnIH0sXG4gICAgICBsb2FkaW5nOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIG1pbjogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIG1heDogeyB0eXBlOiBOdW1iZXIgfSxcbiAgICAgIGF1dG9jb21wbGV0ZTogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIGNsaXBib2FyZDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBjbGlja2FibGU6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgY2xlYXJhYmxlOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIG5vU3VibWl0OiB7IHR5cGU6IEJvb2xlYW4sIGF0dHJpYnV0ZTogJ25vLXN1Ym1pdCcgfSxcbiAgICAgIHBhdHRlcm46IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIF90eXBlOiB7IHR5cGU6IFN0cmluZywgYXR0cmlidXRlOiBmYWxzZSB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uc3VwZXIuc3R5bGVzLFxuICAgICAgc2tlbGV0b24sXG4gICAgICBpbnB1dCxcbiAgICAgIGxpbmssXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmNsaWNrYWJsZSBpbnB1dCxcbiAgICAgICAgLmNsaWNrYWJsZSA6OnNsb3R0ZWQoaW5wdXQpIHtcbiAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xpY2thYmxlIGlucHV0OmhvdmVyLFxuICAgICAgICAuY2xpY2thYmxlIDo6c2xvdHRlZChpbnB1dDpob3Zlcikge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCB2YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNiZmJmYmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAyMnB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmJveC1pY29uLmNvcGllZCBndi1pY29uIHtcbiAgICAgICAgICAtLWd2LWljb24tLWM6ICMzMzk5MDA7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYuYm94LWljb24gZ3YtaWNvbi5sb2FkaW5nLFxuICAgICAgICAubG9hZGluZyA6OnNsb3R0ZWQoaW5wdXQpIHtcbiAgICAgICAgICBhbmltYXRpb246IHNwaW5uZXIgMS42cyBsaW5lYXIgaW5maW5pdGU7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAyMHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmxvYWRpbmcuc21hbGwgZ3YtaWNvbiB7XG4gICAgICAgICAgLS1ndi1pY29uLS1zOiAxOHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgQGtleWZyYW1lcyBzcGlubmVyIHtcbiAgICAgICAgICB0byB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jbGlwYm9hcmQgaW5wdXQsXG4gICAgICAgIC5jbGlwYm9hcmQgOjpzbG90dGVkKGlucHV0KSB7XG4gICAgICAgICAgY3Vyc29yOiBjb3B5O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsaXBib2FyZCBpbnB1dDpyZWFkLW9ubHk6aG92ZXIsXG4gICAgICAgIC5jbGlwYm9hcmQgOjpzbG90dGVkKGlucHV0OnJlYWQtb25seTpob3Zlcikge1xuICAgICAgICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgICAgIH1cblxuICAgICAgICAuY2xpcGJvYXJkX19wb3BvdmVyIHtcbiAgICAgICAgICAtLWd2LXBvcG92ZXItLWJnYzogdmFyKC0tZ3YtdGhlbWUtY29sb3ItZGFya2VyLCAjMzgzZTNmKTtcbiAgICAgICAgICAtLWd2LXBvcG92ZXItLWM6IHZhcigtLWd2LXRoZW1lLWZvbnQtY29sb3ItbGlnaHQsICNmZmZmZmYpO1xuICAgICAgICAgIC0tZ3YtcG9wb3Zlci0tcDogMHJlbSAwLjRyZW0gMHJlbSAwLjJyZW07XG4gICAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmNsaXBib2FyZF9fcG9wb3Zlci1jb250ZW50IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgLS1ndi1pY29uLS1jOiB2YXIoLS1ndi10aGVtZS1mb250LWNvbG9yLWxpZ2h0LCAjZmZmZmZmKTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgc3RhdGljIGdldCBzaGFwZVNlYXJjaCgpIHtcbiAgICByZXR1cm4gJ2dlbmVyYWw6c2VhcmNoJztcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc2hhcGVDbGVhcigpIHtcbiAgICByZXR1cm4gJ2NvZGU6ZXJyb3InO1xuICB9XG5cbiAgc3RhdGljIGdldCBzaGFwZUludmlzaWJsZSgpIHtcbiAgICByZXR1cm4gJ2dlbmVyYWw6aW52aXNpYmxlJztcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc2hhcGVWaXNpYmxlKCkge1xuICAgIHJldHVybiAnZ2VuZXJhbDp2aXNpYmxlJztcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5fdHlwZSA9ICd0ZXh0JztcbiAgICB0aGlzLl9zaG93UGFzc3dvcmQgPSBmYWxzZTtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5hdXRvY29tcGxldGUgPSAnb2ZmJztcbiAgICB0aGlzLm5vU3VibWl0ID0gZmFsc2U7XG4gIH1cblxuICByZXNldCgpIHtcbiAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5ibHVyKCk7XG4gIH1cblxuICBmb2N1cygpIHtcbiAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLmZvY3VzKCk7XG4gIH1cblxuICBnZXRJbnB1dEVsZW1lbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2lucHV0IHx8IHN1cGVyLmdldElucHV0RWxlbWVudCgpO1xuICB9XG5cbiAgdXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ190eXBlJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkudHlwZSA9IHRoaXMuX3R5cGU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnYXV0b2NvbXBsZXRlJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYXV0b2NvbXBsZXRlID0gdGhpcy5hdXRvY29tcGxldGU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmFtZScpICYmIHRoaXMubmFtZSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLm5hbWUgPSB0aGlzLm5hbWU7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncmVxdWlyZWQnKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5yZXF1aXJlZCA9IHRoaXMucmVxdWlyZWQ7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpWydhcmlhLXJlcXVpcmVkJ10gPSAhIXRoaXMucmVxdWlyZWQ7XG4gICAgICBpZiAodGhpcy52YWx1ZSA9PSBudWxsIHx8IHRoaXMudmFsdWUudHJpbSgpID09PSAnJykge1xuICAgICAgICB0aGlzLmludmFsaWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmdldElucHV0RWxlbWVudCgpLnNldEF0dHJpYnV0ZSgncmVhZG9ubHknLCB0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5yZW1vdmVBdHRyaWJ1dGUoJ3JlYWRvbmx5Jyk7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbGFiZWwnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3RpdGxlJykpIHtcbiAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy50aXRsZSB8fCB0aGlzLmxhYmVsO1xuICAgICAgaWYgKHRpdGxlICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS50aXRsZSA9IHRpdGxlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2xhYmVsJykgJiYgdGhpcy5sYWJlbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKVsnYXJpYS1sYWJlbCddID0gdGhpcy5sYWJlbDtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwYXR0ZXJuJykpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkucGF0dGVybiA9IHRoaXMucGF0dGVybjtcbiAgICAgIHRoaXMuX3JlZ2V4UGF0dGVybiA9IG5ldyBSZWdFeHAodGhpcy5wYXR0ZXJuKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpIHx8IGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2tlbGV0b24nKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5kaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5za2VsZXRvbjtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdwbGFjZWhvbGRlcicpICYmIHRoaXMucGxhY2Vob2xkZXIgIT0gbnVsbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5wbGFjZWhvbGRlciA9IHRoaXMucGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS52YWx1ZSA9IHRoaXMudmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlKHRoaXMudmFsdWUpO1xuICAgIH1cblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ21pbicpICYmIHRoaXMubWluICE9IG51bGwpIHtcbiAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkubWluID0gdGhpcy5taW47XG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbWF4JykgJiYgdGhpcy5tYXggIT0gbnVsbCkge1xuICAgICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5tYXggPSB0aGlzLm1heDtcbiAgICB9XG4gIH1cblxuICBfc2V0Q2xpcGJvYXJkSWNvbihzaGFwZSkge1xuICAgIGlmICh0aGlzLmljb24gIT0gbnVsbCAmJiB0aGlzLmljb24gIT09IHNoYXBlQ29waWVkICYmIHRoaXMuaWNvbiAhPT0gc2hhcGVDbGlwYm9hcmQpIHtcbiAgICAgIHRoaXMuaWNvbkxlZnQgPSBzaGFwZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pY29uID0gc2hhcGU7XG4gICAgfVxuICB9XG5cbiAgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKSB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGNvbnN0IGRlZmF1bHRJbnB1dEVsZW1lbnQgPSB0aGlzLmdldElucHV0RWxlbWVudCgpO1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiB0aGlzLmNoaWxkTm9kZXMpIHtcbiAgICAgIGlmIChub2RlLm5vZGVUeXBlID09PSAxKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkID0gbm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSAnaW5wdXQnID8gbm9kZSA6IG5vZGUucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcbiAgICAgICAgaWYgKGNoaWxkKSB7XG4gICAgICAgICAgdGhpcy5faW5wdXQgPSBjaGlsZDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAodGhpcy5faW5wdXQpIHtcbiAgICAgIGRlZmF1bHRJbnB1dEVsZW1lbnQucmVtb3ZlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuY2xpcGJvYXJkKSB7XG4gICAgICBpbXBvcnQoJ2NsaXBib2FyZC1jb3B5JykudGhlbihcbiAgICAgICAgKG1vZCkgPT5cbiAgICAgICAgICAodGhpcy5jb3B5ID0gKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY29weSA9IG1vZC5kZWZhdWx0O1xuICAgICAgICAgICAgY29weSh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NvcGllZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9zZXRDbGlwYm9hcmRJY29uKHNoYXBlQ29waWVkKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLl9jb3BpZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgdGhpcy5fc2V0Q2xpcGJvYXJkSWNvbihzaGFwZUNsaXBib2FyZCk7XG4gICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLl9zZXRDbGlwYm9hcmRJY29uKHNoYXBlQ2xpcGJvYXJkKTtcblxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNsaXBib2FyZFBvcG92ZXIgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignLmNsaXBib2FyZF9fcG9wb3ZlcicpO1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoZSkgPT4ge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGNsaXBib2FyZFBvcG92ZXIuY2xpY2soKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjbGlwYm9hcmRQb3BvdmVyLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKGUpID0+IHtcbiAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB0aGlzLmNvcHkodGhpcy52YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNsaWNrYWJsZUljb24gPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcignZ3YtaWNvbi5saW5rJyk7XG4gICAgICBpZiAoY2xpY2thYmxlSWNvbikge1xuICAgICAgICBjbGlja2FibGVJY29uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5fb25JY29uQ2xpY2suYmluZCh0aGlzKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5nZXRJbnB1dEVsZW1lbnQoKS5pZCA9IHRoaXMuX2lkO1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCB0aGlzLl9vbklucHV0LmJpbmQodGhpcykpO1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCB0aGlzLl9vbktleVVwLmJpbmQodGhpcykpO1xuICAgIHRoaXMuZ2V0SW5wdXRFbGVtZW50KCkuYWRkRXZlbnRMaXN0ZW5lcigna2V5cHJlc3MnLCB0aGlzLl9vbktleVByZXNzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUodmFsdWUpIHtcbiAgICBzdXBlci51cGRhdGVTdGF0ZSh2YWx1ZSk7XG4gICAgaWYgKHRoaXMudmFsaWQgPT09IHRydWUgJiYgIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgIGlmICh0aGlzLl9yZWdleFBhdHRlcm4pIHtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgdmFsdWUudHJpbSgpICE9PSAnJykge1xuICAgICAgICAgIGNvbnN0IHZhbGlkID0gdmFsdWUubWF0Y2godGhpcy5fcmVnZXhQYXR0ZXJuKTtcbiAgICAgICAgICB0aGlzLnNldFZhbGlkaXR5KHZhbGlkID09IG51bGwsIGBmaWVsZCBub3QgcmVzcGVjdCB0aGUgcGF0dGVybiAke3RoaXMuX3JlZ2V4UGF0dGVybn1gKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl90eXBlID09PSAnbnVtYmVyJyAmJiB2YWx1ZSAhPSBudWxsICYmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHZhbHVlLnRyaW0oKSAhPT0gJycpKSB7XG4gICAgICAgIGNvbnN0IF92YWx1ZSA9IE51bWJlcih2YWx1ZSkudmFsdWVPZigpO1xuICAgICAgICBpZiAoaXNOYU4oX3ZhbHVlKSkge1xuICAgICAgICAgIHRoaXMuc2V0VmFsaWRpdHkodHJ1ZSwgYGZpZWxkIGlzIG5vdCBudW1iZXJgKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1pbiAhPSBudWxsICYmIHRoaXMubWluID4gX3ZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWxpZGl0eSh0cnVlLCBgZmllbGQgaXMgPCAke3RoaXMubWlufWApO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWF4ICE9IG51bGwgJiYgdGhpcy5tYXggPCBfdmFsdWUpIHtcbiAgICAgICAgICB0aGlzLnNldFZhbGlkaXR5KHRydWUsIGBmaWVsZCBpcyA+ICR7dGhpcy5tYXh9YCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZXRWYWxpZGl0eShmYWxzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBfb25JbnB1dChlKSB7XG4gICAgdGhpcy51cGRhdGVTdGF0ZShlLnRhcmdldC52YWx1ZSk7XG4gICAgdGhpcy52YWx1ZSA9IGUudGFyZ2V0LnZhbHVlO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2lucHV0JywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfb25LZXlQcmVzcyhlKSB7XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICBsZXQga2V5O1xuICAgICAgaWYgKGUudHlwZSA9PT0gJ3Bhc3RlJykge1xuICAgICAgICBrZXkgPSBlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAga2V5ID0gU3RyaW5nLmZyb21DaGFyQ29kZShlLmtleUNvZGUpO1xuICAgICAgfVxuXG4gICAgICBsZXQgcmVnZXggPSAvWzAtOV0vO1xuICAgICAgaWYgKHRoaXMubWluID09IG51bGwgfHwgdGhpcy5taW4gPCAwKSB7XG4gICAgICAgIHJlZ2V4ID0gL1swLTktXS87XG4gICAgICB9XG4gICAgICBpZiAoIXJlZ2V4LnRlc3Qoa2V5KSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgX29uS2V5VXAoZSkge1xuICAgIGlmIChlLmtleUNvZGUgPT09IDEzKSB7XG4gICAgICBpZiAoIXRoaXMubm9TdWJtaXQpIHtcbiAgICAgICAgY29uc3QgZm9ybSA9IHRoaXMuY2xvc2VzdCgnZm9ybScpO1xuICAgICAgICBpZiAoZm9ybSkge1xuICAgICAgICAgIGZvcm0uZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3N1Ym1pdCcsIHsgYnViYmxlczogdHJ1ZSwgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3N1Ym1pdCcsIHRoaXMudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBpc0NsZWFyYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5jbGVhcmFibGUgJiYgIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMucmVhZG9ubHkgJiYgIXRoaXMubG9hZGluZyAmJiB0aGlzLnZhbHVlICE9IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gJyc7XG4gIH1cblxuICBzZXQgdHlwZSh2YWx1ZSkge1xuICAgIGlmIChbJ3RleHQnLCAncGFzc3dvcmQnLCAnZW1haWwnLCAnc2VhcmNoJywgJ251bWJlcicsICd1cmwnXS5pbmNsdWRlcyh2YWx1ZSkpIHtcbiAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICd1cmwnKSB7XG4gICAgICB0aGlzLnBhdHRlcm4gPSAnKGh0dHBzPzovLy53KikoOlxcXFxkKik/XFxcXC8/KC4qKSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdlbWFpbCcpIHtcbiAgICAgIHRoaXMucGF0dGVybiA9XG4gICAgICAgIC9eKChbXjw+KClcXFxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXF0pfCgoW2EtekEtWlxcLTAtOV0rXFwuKStbYS16QS1aXXsyLH0pKSQvO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl90eXBlID09PSAnc2VhcmNoJyAmJiB0aGlzLmljb24gPT0gbnVsbCAmJiB0aGlzLmljb25MZWZ0ID09IG51bGwpIHtcbiAgICAgIHRoaXMuaWNvbiA9IEd2SW5wdXQuc2hhcGVTZWFyY2g7XG4gICAgICB0aGlzLmNsZWFyYWJsZSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdwYXNzd29yZCcpIHtcbiAgICAgIHRoaXMuaWNvbiA9IEd2SW5wdXQuc2hhcGVTZWFyY2g7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHR5cGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cblxuICBfb25JY29uQ2xpY2soKSB7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnaWNvbi1jbGljaycsIHRoaXMudmFsdWUpO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ3N1Ym1pdCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX29uSWNvblZpc2libGVDbGljayhlKSB7XG4gICAgaWYgKHRoaXMuaXNQYXNzd29yZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuX3Nob3dQYXNzd29yZCA9ICF0aGlzLl9zaG93UGFzc3dvcmQ7XG4gICAgICB0aGlzLl90eXBlID0gdGhpcy5fc2hvd1Bhc3N3b3JkID8gJ3RleHQnIDogJ3Bhc3N3b3JkJztcbiAgICB9XG4gIH1cblxuICBnZXQgaXNQYXNzd29yZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgKHRoaXMuX3R5cGUgPT09ICdwYXNzd29yZCcgfHwgKHRoaXMuX3R5cGUgPT09ICd0ZXh0JyAmJiB0aGlzLl9zaG93UGFzc3dvcmQpKTtcbiAgfVxuXG4gIGdldCBoYXNDbGlja2FibGVJY29uKCkge1xuICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkb25seSAmJiAodGhpcy5jbGlja2FibGUgfHwgdGhpcy5fdHlwZSA9PT0gJ3NlYXJjaCcgfHwgdGhpcy5jbGlwYm9hcmQpO1xuICB9XG5cbiAgZ2V0IGhhc0NsaXBib2FyZCgpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZWQgJiYgdGhpcy5jbGlwYm9hcmQ7XG4gIH1cblxuICBjbGVhcigpIHtcbiAgICB0aGlzLmZvY3VzKCk7XG4gICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgIGRpc3BhdGNoQ3VzdG9tRXZlbnQodGhpcywgJ2NsZWFyJywgdGhpcy52YWx1ZSk7XG4gIH1cblxuICBfcmVuZGVyQ2xlYXJJY29uKCkge1xuICAgIGlmICh0aGlzLmlzQ2xlYXJhYmxlKSB7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiYm94LWljb24gYm94LWljb24tY2xlYXJcIj5cbiAgICAgICAgPGd2LWljb24gY2xhc3M9XCJsaW5rXCIgc2hhcGU9XCJjb2RlOmVycm9yXCIgdGl0bGU9XCIke2kxOG4oJ2d2LWlucHV0LmNsZWFyJyl9XCIgQGNsaWNrPVwiJHt0aGlzLmNsZWFyfVwiPjwvZ3YtaWNvbj5cbiAgICAgIDwvZGl2PmA7XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIF9zaGFwZVBhc3N3b3JkKCkge1xuICAgIHJldHVybiB0aGlzLl9zaG93UGFzc3dvcmQgPyAnZ2VuZXJhbDp2aXNpYmxlJyA6ICdnZW5lcmFsOmhpZGRlbic7XG4gIH1cblxuICBfcmVuZGVyUGFzc3dvcmRJY29uKCkge1xuICAgIGlmICh0aGlzLmlzUGFzc3dvcmQpIHtcbiAgICAgIGNvbnN0IHNoYXBlID0gdGhpcy5fc2hhcGVQYXNzd29yZCgpO1xuICAgICAgY29uc3QgdGl0bGUgPSB0aGlzLl9zaG93UGFzc3dvcmQgPyAnU2hvdycgOiAnSGlkZSc7XG4gICAgICByZXR1cm4gaHRtbGA8ZGl2IGNsYXNzPVwiYm94LWljb25cIj5cbiAgICAgICAgPGd2LWljb24gY2xhc3M9XCJsaW5rXCIgc2hhcGU9XCIke3NoYXBlfVwiIHRpdGxlPVwiJHt0aXRsZX1cIiBAY2xpY2s9XCIke3RoaXMuX29uSWNvblZpc2libGVDbGlja31cIj48L2d2LWljb24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXQgaGFzQmFja2dyb3VuZCgpIHtcbiAgICByZXR1cm4gIXRoaXMubG9hZGluZztcbiAgfVxuXG4gIF9yZW5kZXJJY29uKCkge1xuICAgIGxldCBzaGFwZSA9IG51bGw7XG4gICAgaWYgKCghdGhpcy5pc1Bhc3N3b3JkICYmIHRoaXMuaWNvbikgfHwgdGhpcy5pY29uTGVmdCkge1xuICAgICAgc2hhcGUgPSAoIXRoaXMuaXNQYXNzd29yZCAmJiB0aGlzLmljb24pIHx8IHRoaXMuaWNvbkxlZnQ7XG4gICAgfVxuICAgIGlmICh0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHNoYXBlID0gJ25hdmlnYXRpb246d2FpdGluZyc7XG4gICAgfVxuXG4gICAgaWYgKHNoYXBlKSB7XG4gICAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgICAnYm94LWljb24nOiB0cnVlLFxuICAgICAgICAnYm94LWljb24tbGVmdCc6IHRoaXMuaWNvbkxlZnQgIT0gbnVsbCB8fCB0aGlzLmNsZWFyYWJsZSxcbiAgICAgICAgJ2JveC1pY29uLWJnYyc6IHRoaXMuaGFzQmFja2dyb3VuZCxcbiAgICAgICAgY29waWVkOiB0aGlzLmhhc0NsaXBib2FyZCAmJiB0aGlzLl9jb3BpZWQsXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBpY29uQ2xhc3NlcyA9IHtcbiAgICAgICAgbGluazogdGhpcy5oYXNDbGlja2FibGVJY29uLFxuICAgICAgICBsb2FkaW5nOiB0aGlzLmxvYWRpbmcsXG4gICAgICB9O1xuICAgICAgbGV0IHRpdGxlID0gJyc7XG4gICAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ3NlYXJjaCcpIHtcbiAgICAgICAgdGl0bGUgPSBpMThuKCdndi1pbnB1dC5zZWFyY2gnKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNDbGlwYm9hcmQpIHtcbiAgICAgICAgdGl0bGUgPSBpMThuKCdndi1pbnB1dC5jb3B5Jyk7XG4gICAgICAgIHJldHVybiBodG1sYDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiPlxuICAgICAgICAgIDxndi1wb3BvdmVyIGNsYXNzPVwiY2xpcGJvYXJkX19wb3BvdmVyXCIgZXZlbnQ9XCJjbGlja1wiIGRlbGF5PVwiNzUwXCIgLmFycm93PVwiJHtmYWxzZX1cIj5cbiAgICAgICAgICAgIDxndi1pY29uIGNsYXNzPVwiJHtjbGFzc01hcChpY29uQ2xhc3Nlcyl9XCIgc2hhcGU9XCIke3NoYXBlfVwiIHRpdGxlPVwiJHt0aXRsZX1cIj48L2d2LWljb24+XG4gICAgICAgICAgICA8ZGl2IHNsb3Q9XCJwb3BvdmVyXCIgY2xhc3M9XCJjbGlwYm9hcmRfX3BvcG92ZXItY29udGVudFwiPlxuICAgICAgICAgICAgICA8Z3YtaWNvbiBzaGFwZT1cImNvZGU6Y2hlY2tcIj48L2d2LWljb24+XG4gICAgICAgICAgICAgIDxkaXY+Q29waWVkPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2d2LXBvcG92ZXI+XG4gICAgICAgIDwvZGl2PmA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgdGl0bGUgPSB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCI+XG4gICAgICAgIDxndi1pY29uIGNsYXNzPVwiJHtjbGFzc01hcChpY29uQ2xhc3Nlcyl9XCIgc2hhcGU9XCIke3NoYXBlfVwiIHRpdGxlPVwiJHt0aXRsZX1cIj48L2d2LWljb24+XG4gICAgICA8L2Rpdj5gO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IHtcbiAgICAgICdib3gtaW5wdXQnOiB0cnVlLFxuICAgICAgc2tlbGV0b246IHRoaXMuc2tlbGV0b24sXG4gICAgICBsYXJnZTogdGhpcy5sYXJnZSxcbiAgICAgIG1lZGl1bTogdGhpcy5tZWRpdW0gfHwgKCF0aGlzLmxhcmdlICYmICF0aGlzLnNtYWxsKSxcbiAgICAgIHNtYWxsOiB0aGlzLnNtYWxsLFxuICAgICAgaWNvbjogISF0aGlzLmljb24gJiYgIXRoaXMuY2xlYXJhYmxlLFxuICAgICAgY2xlYXJhYmxlOiB0aGlzLmNsZWFyYWJsZSxcbiAgICAgICdpY29uLWxlZnQnOiAhIXRoaXMuaWNvbkxlZnQgfHwgKCEhdGhpcy5pY29uICYmIHRoaXMuY2xlYXJhYmxlKSxcbiAgICAgIGNsaXBib2FyZDogdGhpcy5oYXNDbGlwYm9hcmQsXG4gICAgICByZXF1aXJlZDogdGhpcy5yZXF1aXJlZCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgIDxpbnB1dCAvPlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICAgICR7dGhpcy5fcmVuZGVyQ2xlYXJJY29uKCl9ICR7dGhpcy5fcmVuZGVySWNvbigpfSAke3RoaXMuX3JlbmRlclBhc3N3b3JkSWNvbigpfVxuICAgICAgPC9kaXY+XG4gICAgICAke3RoaXMuZGVzY3JpcHRpb24gIT0gbnVsbCA/IGh0bWxgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uXCIgLmlubmVySFRNTD1cIiR7dGhpcy5kZXNjcmlwdGlvbn1cIj48L2Rpdj5gIDogJyd9XG4gICAgYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1pbnB1dCcsIEd2SW5wdXQpO1xuIl19
@@ -34,6 +34,8 @@ import { skeleton } from '../styles/skeleton';
34
34
  *
35
35
  * @cssprop {Length} [--gv-state--bdr=17px] - Border radius
36
36
  * @cssprop {Length} [--gv-state--fz=var(--gv-theme-font-size-s, 12px)] - Font size
37
+ * @cssprop {String} [--gv-state--fw=bold] - Font weight
38
+ * @cssprop {String} [--gv-state--tt=uppercase] - Text transform
37
39
  * @cssprop {Length} [--gv-state--p=4px 8px] - Padding
38
40
  * @cssprop {Color} [--gv-state--bgc=#f0f5ff] - Background color
39
41
  * @cssprop {Color} [--gv-state--c=#597ef7] - Color
@@ -67,7 +69,7 @@ export class GvState extends LitElement {
67
69
 
68
70
  static get styles() {
69
71
  return [skeleton, // language=CSS
70
- css`:host{box-sizing:border-box;display:inline-block;margin:.2rem;vertical-align:middle}div.default{--bgc:var(--gv-state--bgc, #f0f5ff);--c:var(--gv-state--c, #597ef7)}div.error{--bgc:var(--gv-theme-color-error-light, #e57373);--c:var(--gv-theme-neutral-color-lightest, #ffffff)}div.major{--bgc:var(--gv-state-major--bgc, var(--gv-theme-color-light, #d5fdcb));--c:var(--gv-state-major--c, var(--gv-theme-color, #009b5b))}div.success{--bgc:var(--gv-theme-color-success-light, #81c784);--c:var(--gv-theme-neutral-color-lightest, #ffffff)}div.warn{--bgc:var(--gv-theme-color-warning-light, #ffb74d);--c:var(--gv-theme-neutral-color-lightest, #ffffff)}div{background-color:var(--bgc);border-radius:var(--gv-state--bdr,17px);color:var(--c);--fz:var(--gv-state--fz, var(--gv-theme-font-size-s, 12px));font-size:var(--fz);font-weight:700;text-transform:uppercase;line-height:var(--fz);padding:var(--gv-state--p,4px 8px)}`];
72
+ css`:host{box-sizing:border-box;display:inline-block;margin:.2rem;vertical-align:middle}div.default{--bgc:var(--gv-state--bgc, #f0f5ff);--c:var(--gv-state--c, #597ef7)}div.error{--bgc:var(--gv-theme-color-error-light, #e57373);--c:var(--gv-theme-neutral-color-lightest, #ffffff)}div.major{--bgc:var(--gv-state-major--bgc, var(--gv-theme-color-light, #d5fdcb));--c:var(--gv-state-major--c, var(--gv-theme-color, #009b5b))}div.success{--bgc:var(--gv-theme-color-success-light, #81c784);--c:var(--gv-theme-neutral-color-lightest, #ffffff)}div.warn{--bgc:var(--gv-theme-color-warning-light, #ffb74d);--c:var(--gv-theme-neutral-color-lightest, #ffffff)}div{background-color:var(--bgc);border-radius:var(--gv-state--bdr,17px);color:var(--c);--fz:var(--gv-state--fz, var(--gv-theme-font-size-s, 12px));font-size:var(--fz);font-weight:var(--gv-state--fw,bold);text-transform:var(--gv-state--tt,uppercase);line-height:var(--fz);padding:var(--gv-state--p,4px 8px)}`];
71
73
  }
72
74
 
73
75
  render() {
@@ -84,4 +86,4 @@ export class GvState extends LitElement {
84
86
 
85
87
  }
86
88
  window.customElements.define('gv-state', GvState);
87
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LXN0YXRlLmpzIl0sIm5hbWVzIjpbImNsYXNzTWFwIiwiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJza2VsZXRvbiIsIkd2U3RhdGUiLCJwcm9wZXJ0aWVzIiwiZGVmYXVsdCIsInR5cGUiLCJCb29sZWFuIiwiZXJyb3IiLCJtYWpvciIsInN1Y2Nlc3MiLCJ3YXJuIiwic3R5bGVzIiwicmVuZGVyIiwibW9kZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBVCxRQUF5QiwrQkFBekI7QUFDQSxTQUFTQyxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFDQSxPQUFPLE1BQU1DLE9BQU4sU0FBc0JKLFVBQXRCLENBQWlDO0FBQ2pCLGFBQVZLLFVBQVUsR0FBRztBQUN0QixXQUFPO0FBQ0xDLE1BQUFBLE9BQU8sRUFBRTtBQUFFQyxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FESjtBQUVMQyxNQUFBQSxLQUFLLEVBQUU7QUFBRUYsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BRkY7QUFHTEUsTUFBQUEsS0FBSyxFQUFFO0FBQUVILFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUhGO0FBSUxMLE1BQUFBLFFBQVEsRUFBRTtBQUFFSSxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FKTDtBQUtMRyxNQUFBQSxPQUFPLEVBQUU7QUFBRUosUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BTEo7QUFNTEksTUFBQUEsSUFBSSxFQUFFO0FBQUVMLFFBQUFBLElBQUksRUFBRUM7QUFBUjtBQU5ELEtBQVA7QUFRRDs7QUFFZ0IsYUFBTkssTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTFYsUUFESyxFQUVMO0FBQ0FELElBQUFBLEdBQUcsKzRCQUhFLENBQVA7QUFtREQ7O0FBRURZLEVBQUFBLE1BQU0sR0FBRztBQUNQLFVBQU1DLEtBQUssR0FBRztBQUNaVCxNQUFBQSxPQUFPLEVBQUUsQ0FBQyxLQUFLSSxLQUFOLElBQWUsQ0FBQyxLQUFLRCxLQUFyQixJQUE4QixDQUFDLEtBQUtFLE9BQXBDLElBQStDLENBQUMsS0FBS0MsSUFEbEQ7QUFFWkgsTUFBQUEsS0FBSyxFQUFFLEtBQUtBLEtBRkE7QUFHWkMsTUFBQUEsS0FBSyxFQUFFLEtBQUtBLEtBSEE7QUFJWlAsTUFBQUEsUUFBUSxFQUFFLEtBQUtBLFFBSkg7QUFLWlEsTUFBQUEsT0FBTyxFQUFFLEtBQUtBLE9BTEY7QUFNWkMsTUFBQUEsSUFBSSxFQUFFLEtBQUtBO0FBTkMsS0FBZDtBQVNBLFdBQU9YLElBQUksZ0JBQ0lGLFFBQVEsQ0FBQ2dCLEtBQUQsQ0FEWiwwQkFBWDtBQUtEOztBQWpGcUM7QUFvRnhDQyxNQUFNLENBQUNDLGNBQVAsQ0FBc0JDLE1BQXRCLENBQTZCLFVBQTdCLEVBQXlDZCxPQUF6QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwsIGNzcyB9IGZyb20gJ2xpdC1lbGVtZW50JztcbmltcG9ydCB7IHNrZWxldG9uIH0gZnJvbSAnLi4vc3R5bGVzL3NrZWxldG9uJztcblxuLyoqXG4gKiBBIFN0YXRlXG4gKlxuICogIyMgRGV0YWlsc1xuICogKiBoYXMgQHRoZW1lIGZhY2V0XG4gKlxuICogQGZpcmVzIGNsaWNrIC0gTmF0aXZlIGNsaWNrIGV2ZW50XG4gKlxuICogQHNsb3QgLSBUaGUgY29udGVudCBvZiB0aGUgc3RhdGUgKHRleHQgb3IgSFRNTClcbiAqXG4gKiBAYXR0ciB7Qm9vbGVhbn0gZXJyb3IgLSBlbmFibGUgZXJyb3IgbW9kZVxuICogQGF0dHIge0Jvb2xlYW59IG1ham9yIC0gZW5hYmxlIG1ham9yIG1vZGVcbiAqIEBhdHRyIHtCb29sZWFufSBzdWNjZXNzIC0gZW5hYmxlIHN1Y2Nlc3MgbW9kZVxuICogQGF0dHIge0Jvb2xlYW59IHdhcm4gLSBlbmFibGUgd2FybiBtb2RlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gc2tlbGV0b24gLSAgZW5hYmxlIHNrZWxldG9uIHNjcmVlbiBVSSBwYXR0ZXJuIChsb2FkaW5nIGhpbnQpXG4gKlxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3Ytc3RhdGUtLWJkcj0xN3B4XSAtIEJvcmRlciByYWRpdXNcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXN0YXRlLS1mej12YXIoLS1ndi10aGVtZS1mb250LXNpemUtcywgMTJweCldIC0gRm9udCBzaXplXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1zdGF0ZS0tcD00cHggOHB4XSAtIFBhZGRpbmdcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3Ytc3RhdGUtLWJnYz0jZjBmNWZmXSAtIEJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3Ytc3RhdGUtLWM9IzU5N2VmN10gLSBDb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zdGF0ZS1tYWpvci0tYmdjPXZhcigtLWd2LXRoZW1lLWNvbG9yLWxpZ2h0LCAjZDVmZGNiKV0gLSBNYWpvciBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0YXRlLW1ham9yLS1jPXZhcigtLWd2LXRoZW1lLWNvbG9yLCAjMDA5YjViKV0gLSBNYWpvciBjb2xvclxuICovXG5leHBvcnQgY2xhc3MgR3ZTdGF0ZSBleHRlbmRzIExpdEVsZW1lbnQge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRlZmF1bHQ6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgZXJyb3I6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgbWFqb3I6IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgc2tlbGV0b246IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgICAgc3VjY2VzczogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICB3YXJuOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICB9O1xuICB9XG5cbiAgc3RhdGljIGdldCBzdHlsZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHNrZWxldG9uLFxuICAgICAgLy8gbGFuZ3VhZ2U9Q1NTXG4gICAgICBjc3NgXG4gICAgICAgIDpob3N0IHtcbiAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICBtYXJnaW46IDAuMnJlbTtcbiAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2LmRlZmF1bHQge1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi1zdGF0ZS0tYmdjLCAjZjBmNWZmKTtcbiAgICAgICAgICAtLWM6IHZhcigtLWd2LXN0YXRlLS1jLCAjNTk3ZWY3KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi5lcnJvciB7XG4gICAgICAgICAgLS1iZ2M6IHZhcigtLWd2LXRoZW1lLWNvbG9yLWVycm9yLWxpZ2h0LCAjZTU3MzczKTtcbiAgICAgICAgICAtLWM6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2Lm1ham9yIHtcbiAgICAgICAgICAtLWJnYzogdmFyKC0tZ3Ytc3RhdGUtbWFqb3ItLWJnYywgdmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICNkNWZkY2IpKTtcbiAgICAgICAgICAtLWM6IHZhcigtLWd2LXN0YXRlLW1ham9yLS1jLCB2YXIoLS1ndi10aGVtZS1jb2xvciwgIzAwOWI1YikpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2LnN1Y2Nlc3Mge1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi10aGVtZS1jb2xvci1zdWNjZXNzLWxpZ2h0LCAjODFjNzg0KTtcbiAgICAgICAgICAtLWM6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2Lndhcm4ge1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi10aGVtZS1jb2xvci13YXJuaW5nLWxpZ2h0LCAjZmZiNzRkKTtcbiAgICAgICAgICAtLWM6IHZhcigtLWd2LXRoZW1lLW5ldXRyYWwtY29sb3ItbGlnaHRlc3QsICNmZmZmZmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1iZ2MpO1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWd2LXN0YXRlLS1iZHIsIDE3cHgpO1xuICAgICAgICAgIGNvbG9yOiB2YXIoLS1jKTtcblxuICAgICAgICAgIC0tZno6IHZhcigtLWd2LXN0YXRlLS1meiwgdmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMsIDEycHgpKTtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWZ6KTtcblxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWZ6KTtcbiAgICAgICAgICBwYWRkaW5nOiB2YXIoLS1ndi1zdGF0ZS0tcCwgNHB4IDhweCk7XG4gICAgICAgIH1cbiAgICAgIGAsXG4gICAgXTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBtb2RlcyA9IHtcbiAgICAgIGRlZmF1bHQ6ICF0aGlzLm1ham9yICYmICF0aGlzLmVycm9yICYmICF0aGlzLnN1Y2Nlc3MgJiYgIXRoaXMud2FybixcbiAgICAgIGVycm9yOiB0aGlzLmVycm9yLFxuICAgICAgbWFqb3I6IHRoaXMubWFqb3IsXG4gICAgICBza2VsZXRvbjogdGhpcy5za2VsZXRvbixcbiAgICAgIHN1Y2Nlc3M6IHRoaXMuc3VjY2VzcyxcbiAgICAgIHdhcm46IHRoaXMud2FybixcbiAgICB9O1xuXG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPSR7Y2xhc3NNYXAobW9kZXMpfT5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi1zdGF0ZScsIEd2U3RhdGUpO1xuIl19
89
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LXN0YXRlLmpzIl0sIm5hbWVzIjpbImNsYXNzTWFwIiwiTGl0RWxlbWVudCIsImh0bWwiLCJjc3MiLCJza2VsZXRvbiIsIkd2U3RhdGUiLCJwcm9wZXJ0aWVzIiwiZGVmYXVsdCIsInR5cGUiLCJCb29sZWFuIiwiZXJyb3IiLCJtYWpvciIsInN1Y2Nlc3MiLCJ3YXJuIiwic3R5bGVzIiwicmVuZGVyIiwibW9kZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsUUFBVCxRQUF5QiwrQkFBekI7QUFDQSxTQUFTQyxVQUFULEVBQXFCQyxJQUFyQixFQUEyQkMsR0FBM0IsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxNQUFNQyxPQUFOLFNBQXNCSixVQUF0QixDQUFpQztBQUNqQixhQUFWSyxVQUFVLEdBQUc7QUFDdEIsV0FBTztBQUNMQyxNQUFBQSxPQUFPLEVBQUU7QUFBRUMsUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BREo7QUFFTEMsTUFBQUEsS0FBSyxFQUFFO0FBQUVGLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUZGO0FBR0xFLE1BQUFBLEtBQUssRUFBRTtBQUFFSCxRQUFBQSxJQUFJLEVBQUVDO0FBQVIsT0FIRjtBQUlMTCxNQUFBQSxRQUFRLEVBQUU7QUFBRUksUUFBQUEsSUFBSSxFQUFFQztBQUFSLE9BSkw7QUFLTEcsTUFBQUEsT0FBTyxFQUFFO0FBQUVKLFFBQUFBLElBQUksRUFBRUM7QUFBUixPQUxKO0FBTUxJLE1BQUFBLElBQUksRUFBRTtBQUFFTCxRQUFBQSxJQUFJLEVBQUVDO0FBQVI7QUFORCxLQUFQO0FBUUQ7O0FBRWdCLGFBQU5LLE1BQU0sR0FBRztBQUNsQixXQUFPLENBQ0xWLFFBREssRUFFTDtBQUNBRCxJQUFBQSxHQUFHLHc3QkFIRSxDQUFQO0FBbUREOztBQUVEWSxFQUFBQSxNQUFNLEdBQUc7QUFDUCxVQUFNQyxLQUFLLEdBQUc7QUFDWlQsTUFBQUEsT0FBTyxFQUFFLENBQUMsS0FBS0ksS0FBTixJQUFlLENBQUMsS0FBS0QsS0FBckIsSUFBOEIsQ0FBQyxLQUFLRSxPQUFwQyxJQUErQyxDQUFDLEtBQUtDLElBRGxEO0FBRVpILE1BQUFBLEtBQUssRUFBRSxLQUFLQSxLQUZBO0FBR1pDLE1BQUFBLEtBQUssRUFBRSxLQUFLQSxLQUhBO0FBSVpQLE1BQUFBLFFBQVEsRUFBRSxLQUFLQSxRQUpIO0FBS1pRLE1BQUFBLE9BQU8sRUFBRSxLQUFLQSxPQUxGO0FBTVpDLE1BQUFBLElBQUksRUFBRSxLQUFLQTtBQU5DLEtBQWQ7QUFTQSxXQUFPWCxJQUFJLGdCQUNJRixRQUFRLENBQUNnQixLQUFELENBRFosMEJBQVg7QUFLRDs7QUFqRnFDO0FBb0Z4Q0MsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixVQUE3QixFQUF5Q2QsT0FBekMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCBodG1sLCBjc3MgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5cbi8qKlxuICogQSBTdGF0ZVxuICpcbiAqICMjIERldGFpbHNcbiAqICogaGFzIEB0aGVtZSBmYWNldFxuICpcbiAqIEBmaXJlcyBjbGljayAtIE5hdGl2ZSBjbGljayBldmVudFxuICpcbiAqIEBzbG90IC0gVGhlIGNvbnRlbnQgb2YgdGhlIHN0YXRlICh0ZXh0IG9yIEhUTUwpXG4gKlxuICogQGF0dHIge0Jvb2xlYW59IGVycm9yIC0gZW5hYmxlIGVycm9yIG1vZGVcbiAqIEBhdHRyIHtCb29sZWFufSBtYWpvciAtIGVuYWJsZSBtYWpvciBtb2RlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gc3VjY2VzcyAtIGVuYWJsZSBzdWNjZXNzIG1vZGVcbiAqIEBhdHRyIHtCb29sZWFufSB3YXJuIC0gZW5hYmxlIHdhcm4gbW9kZVxuICogQGF0dHIge0Jvb2xlYW59IHNrZWxldG9uIC0gIGVuYWJsZSBza2VsZXRvbiBzY3JlZW4gVUkgcGF0dGVybiAobG9hZGluZyBoaW50KVxuICpcbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXN0YXRlLS1iZHI9MTdweF0gLSBCb3JkZXIgcmFkaXVzXG4gKiBAY3NzcHJvcCB7TGVuZ3RofSBbLS1ndi1zdGF0ZS0tZno9dmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLXMsIDEycHgpXSAtIEZvbnQgc2l6ZVxuICogQGNzc3Byb3Age1N0cmluZ30gWy0tZ3Ytc3RhdGUtLWZ3PWJvbGRdIC0gRm9udCB3ZWlnaHRcbiAqIEBjc3Nwcm9wIHtTdHJpbmd9IFstLWd2LXN0YXRlLS10dD11cHBlcmNhc2VdIC0gVGV4dCB0cmFuc2Zvcm1cbiAqIEBjc3Nwcm9wIHtMZW5ndGh9IFstLWd2LXN0YXRlLS1wPTRweCA4cHhdIC0gUGFkZGluZ1xuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zdGF0ZS0tYmdjPSNmMGY1ZmZdIC0gQmFja2dyb3VuZCBjb2xvclxuICogQGNzc3Byb3Age0NvbG9yfSBbLS1ndi1zdGF0ZS0tYz0jNTk3ZWY3XSAtIENvbG9yXG4gKiBAY3NzcHJvcCB7Q29sb3J9IFstLWd2LXN0YXRlLW1ham9yLS1iZ2M9dmFyKC0tZ3YtdGhlbWUtY29sb3ItbGlnaHQsICNkNWZkY2IpXSAtIE1ham9yIGJhY2tncm91bmQgY29sb3JcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3Ytc3RhdGUtbWFqb3ItLWM9dmFyKC0tZ3YtdGhlbWUtY29sb3IsICMwMDliNWIpXSAtIE1ham9yIGNvbG9yXG4gKi9cbmV4cG9ydCBjbGFzcyBHdlN0YXRlIGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGVmYXVsdDogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBlcnJvcjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBtYWpvcjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBza2VsZXRvbjogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgICBzdWNjZXNzOiB7IHR5cGU6IEJvb2xlYW4gfSxcbiAgICAgIHdhcm46IHsgdHlwZTogQm9vbGVhbiB9LFxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgOmhvc3Qge1xuICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIG1hcmdpbjogMC4ycmVtO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYuZGVmYXVsdCB7XG4gICAgICAgICAgLS1iZ2M6IHZhcigtLWd2LXN0YXRlLS1iZ2MsICNmMGY1ZmYpO1xuICAgICAgICAgIC0tYzogdmFyKC0tZ3Ytc3RhdGUtLWMsICM1OTdlZjcpO1xuICAgICAgICB9XG5cbiAgICAgICAgZGl2LmVycm9yIHtcbiAgICAgICAgICAtLWJnYzogdmFyKC0tZ3YtdGhlbWUtY29sb3ItZXJyb3ItbGlnaHQsICNlNTczNzMpO1xuICAgICAgICAgIC0tYzogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZik7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYubWFqb3Ige1xuICAgICAgICAgIC0tYmdjOiB2YXIoLS1ndi1zdGF0ZS1tYWpvci0tYmdjLCB2YXIoLS1ndi10aGVtZS1jb2xvci1saWdodCwgI2Q1ZmRjYikpO1xuICAgICAgICAgIC0tYzogdmFyKC0tZ3Ytc3RhdGUtbWFqb3ItLWMsIHZhcigtLWd2LXRoZW1lLWNvbG9yLCAjMDA5YjViKSk7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYuc3VjY2VzcyB7XG4gICAgICAgICAgLS1iZ2M6IHZhcigtLWd2LXRoZW1lLWNvbG9yLXN1Y2Nlc3MtbGlnaHQsICM4MWM3ODQpO1xuICAgICAgICAgIC0tYzogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZik7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYud2FybiB7XG4gICAgICAgICAgLS1iZ2M6IHZhcigtLWd2LXRoZW1lLWNvbG9yLXdhcm5pbmctbGlnaHQsICNmZmI3NGQpO1xuICAgICAgICAgIC0tYzogdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1saWdodGVzdCwgI2ZmZmZmZik7XG4gICAgICAgIH1cblxuICAgICAgICBkaXYge1xuICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWJnYyk7XG4gICAgICAgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZ3Ytc3RhdGUtLWJkciwgMTdweCk7XG4gICAgICAgICAgY29sb3I6IHZhcigtLWMpO1xuXG4gICAgICAgICAgLS1mejogdmFyKC0tZ3Ytc3RhdGUtLWZ6LCB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtcywgMTJweCkpO1xuICAgICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZnopO1xuXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IHZhcigtLWd2LXN0YXRlLS1mdywgYm9sZCk7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHZhcigtLWd2LXN0YXRlLS10dCwgdXBwZXJjYXNlKTtcbiAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZnopO1xuICAgICAgICAgIHBhZGRpbmc6IHZhcigtLWd2LXN0YXRlLS1wLCA0cHggOHB4KTtcbiAgICAgICAgfVxuICAgICAgYCxcbiAgICBdO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IG1vZGVzID0ge1xuICAgICAgZGVmYXVsdDogIXRoaXMubWFqb3IgJiYgIXRoaXMuZXJyb3IgJiYgIXRoaXMuc3VjY2VzcyAmJiAhdGhpcy53YXJuLFxuICAgICAgZXJyb3I6IHRoaXMuZXJyb3IsXG4gICAgICBtYWpvcjogdGhpcy5tYWpvcixcbiAgICAgIHNrZWxldG9uOiB0aGlzLnNrZWxldG9uLFxuICAgICAgc3VjY2VzczogdGhpcy5zdWNjZXNzLFxuICAgICAgd2FybjogdGhpcy53YXJuLFxuICAgIH07XG5cbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9JHtjbGFzc01hcChtb2Rlcyl9PlxuICAgICAgICA8c2xvdD48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbndpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ2d2LXN0YXRlJywgR3ZTdGF0ZSk7XG4iXX0=
@@ -98,10 +98,10 @@ export class GvText extends InputElement(LitElement) {
98
98
  return '';
99
99
  }
100
100
 
101
- const rows = this.autosize ? this.value.split('\n').length : this.rows;
101
+ const rows = this.autosize && this.value ? this.value.split('\n').length : this.rows;
102
102
  return html` <div class="box"> ${this.renderLabel()} <textarea class="${classMap(classes)}" id="${this._id}" .name="${ifDefined(this.name)}" .title="${ifDefined(this.title || this.label)}" .required="${this.required}" ?readonly="${this.readonly}" maxlength="${this.maxlength}" minlength="${this.minlength}" aria-required="${!!this.required}" ?disabled="${this.disabled || this.skeleton}" .placeholder="${ifDefined(this.placeholder)}" .value="${ifDefined(this.value)}" rows="${this.rows < rows ? rows : this.rows}" @input="${this._onInput}"></textarea> </div> `;
103
103
  }
104
104
 
105
105
  }
106
106
  window.customElements.define('gv-text', GvText);
107
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LXRleHQuanMiXSwibmFtZXMiOlsiY2xhc3NNYXAiLCJpZkRlZmluZWQiLCJMaXRFbGVtZW50IiwiY3NzIiwiaHRtbCIsInNrZWxldG9uIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsIklucHV0RWxlbWVudCIsIkd2VGV4dCIsInByb3BlcnRpZXMiLCJyb3dzIiwidHlwZSIsIk51bWJlciIsIm1pbmxlbmd0aCIsIm1heGxlbmd0aCIsImF1dG9zaXplIiwiQm9vbGVhbiIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiZ2V0SW5wdXRFbGVtZW50Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJfb25JbnB1dCIsImUiLCJ1cGRhdGVTdGF0ZSIsInRhcmdldCIsInZhbHVlIiwicmVuZGVyIiwiY2xhc3NlcyIsInJlcXVpcmVkIiwidGV4dGFyZWEiLCJyZWFkb25seSIsInRyaW0iLCJyZW5kZXJMYWJlbCIsInRpdGxlIiwibGFiZWwiLCJzcGxpdCIsImxlbmd0aCIsIl9pZCIsIm5hbWUiLCJkaXNhYmxlZCIsInBsYWNlaG9sZGVyIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFFBQVQsUUFBeUIsK0JBQXpCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixnQ0FBMUI7QUFDQSxTQUFTQyxVQUFULEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qix5QkFBN0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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LElBQW5CLEdBQTBCLEtBQUtBLElBaEJsQyxhQWlCSSxLQUFLWSxRQWpCVCx1QkFBWDtBQXFCRDs7QUFySGtEO0FBd0hyRG9CLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsU0FBN0IsRUFBd0NwQyxNQUF4QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGlmRGVmaW5lZCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvaWYtZGVmaW5lZCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCBjc3MsIGh0bWwgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBJbnB1dEVsZW1lbnQgfSBmcm9tICcuLi9taXhpbnMvaW5wdXQtZWxlbWVudCc7XG5cbi8qKlxuICogQSB3cmFwcGVyIG9mIGEgPHRleHQ+IGNvbXBvbmVudC5cbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtdGV4dDppbnB1dCAtIG1pcnJvcnMgbmF0aXZlIHRleHRhcmVhIGV2ZW50cyB3aXRoIHRoZSBgdmFsdWVgIG9uIGBkZXRhaWxgXG4gKlxuICogQGF0dHIge0Jvb2xlYW59IGRpc2FibGVkIC0gc2FtZSBhcyBuYXRpdmUgdGV4dCBlbGVtZW50IGBkaXNhYmxlZGAgYXR0cmlidXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gcmVxdWlyZWQgLSBzYW1lIGFzIG5hdGl2ZSB0ZXh0IGVsZW1lbnQgYHJlcXVpcmVkYCBhdHRyaWJ1dGVcbiAqIEBhdHRyIHtCb29sZWFufSBza2VsZXRvbiAtIGVuYWJsZSBza2VsZXRvbiBzY3JlZW4gVUkgcGF0dGVybiAobG9hZGluZyBoaW50KVxuICogQGF0dHIge1N0cmluZ30gdmFsdWUgLSB0aGUgdmFsdWUgb2YgdGhlIHRleHRcbiAqIEBhdHRyIHtTdHJpbmd9IGxhYmVsIC0gbGFiZWwgb2YgdGhlIHRleHRcbiAqIEBhdHRyIHtTdHJpbmd9IHRpdGxlIC0gdGl0bGUgb2YgdGhlIHRleHRcbiAqIEBhdHRyIHtTdHJpbmd9IG5hbWUgLSBuYW1lIG9mIHRoZSB0ZXh0XG4gKiBAYXR0ciB7U3RyaW5nfSBwbGFjZWhvbGRlciAtIGFuIGV4YW1wbGUgdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgdGV4dCB3aGVuIGVtcHR5XG4gKiBAYXR0ciB7TGVuZ3RofSByb3dzIC0gbnVtYmVyIG9mIHJvd3Mgb2YgdGhlIHRleHQgZWxlbWVudFxuICogQGF0dHIge0Jvb2xlYW59IGF1dG9mb2N1cyAtIHRydWUgdG8gcHV0IHRoZSBmb2N1cyBvbiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtCb29sZWFufSBbcmVhZG9ubHk9ZmFsc2VdIC0gdHJ1ZSBpZiBmaWVsZCBpcyByZWFkb25seSBtb2RlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2F1dG9zaXplPWZhbHNlXSAtIHRydWUgaWYgZmllbGQgYXV0byByZXNpemUgd2hlbiBjb250ZW50IGNoYW5nZVxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtaW5wdXQtLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpXSAtIEJvcmRlciBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGV4dC0tZno9dmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLW0sIDE0cHgpXSAtIEZvbnQgc2l6ZVxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGV4dC0tbGg9dmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLW0sIDE0cHgpXSAtIExpbmUgaGVpZ2h0XG4gKi9cbmV4cG9ydCBjbGFzcyBHdlRleHQgZXh0ZW5kcyBJbnB1dEVsZW1lbnQoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvd3M6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBtaW5sZW5ndGg6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBtYXhsZW5ndGg6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBhdXRvc2l6ZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zdXBlci5zdHlsZXMsXG4gICAgICBza2VsZXRvbixcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICAuYm94IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBCQVNFICovXG4gICAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgICAgLS1mejogdmFyKC0tZ3YtdGV4dC0tZnosIHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1tLCAxNHB4KSk7XG4gICAgICAgICAgLS10bXA6IHZhcigtLWd2LXRleHQtLWxoLCB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbSwgMTRweCkpO1xuICAgICAgICAgIC0tbGg6IGNhbGModmFyKC0tdG1wKSArIDNweCk7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3YtaW5wdXQtLWJkYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjZDlkOWQ5KSk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDVweDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1meik7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi50ZXh0YXJlYSB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRleHRhcmVhOmRpc2FibGVkIHtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgdGV4dGFyZWE6cmVxdWlyZWQge1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgcGFkZGluZzogMCAwIDAuMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSGFjayBmb3IgRkYgKi9cbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucm93cyA9IDEwO1xuICB9XG5cbiAgZ2V0SW5wdXRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigndGV4dGFyZWEnKTtcbiAgfVxuXG4gIF9vbklucHV0KGUpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnaW5wdXQnLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgc2tlbGV0b246IHRoaXMuc2tlbGV0b24sXG4gICAgICByZXF1aXJlZDogdGhpcy5yZXF1aXJlZCxcbiAgICAgIHRleHRhcmVhOiB0cnVlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgaWYgKHRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS50cmltKCkgIT09ICcnKSB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgICR7dGhpcy5yZW5kZXJMYWJlbCgpfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiIC50aXRsZT0ke2lmRGVmaW5lZCh0aGlzLnRpdGxlIHx8IHRoaXMubGFiZWwpfT4ke2lmRGVmaW5lZCh0aGlzLnZhbHVlKX08L2Rpdj5cbiAgICAgICAgYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuYXV0b3NpemUgPyB0aGlzLnZhbHVlLnNwbGl0KCdcXG4nKS5sZW5ndGggOiB0aGlzLnJvd3M7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwiYm94XCI+XG4gICAgICAgICR7dGhpcy5yZW5kZXJMYWJlbCgpfVxuICAgICAgICA8dGV4dGFyZWFcbiAgICAgICAgICBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCJcbiAgICAgICAgICBpZD0ke3RoaXMuX2lkfVxuICAgICAgICAgIC5uYW1lPSR7aWZEZWZpbmVkKHRoaXMubmFtZSl9XG4gICAgICAgICAgLnRpdGxlPSR7aWZEZWZpbmVkKHRoaXMudGl0bGUgfHwgdGhpcy5sYWJlbCl9XG4gICAgICAgICAgLnJlcXVpcmVkPSR7dGhpcy5yZXF1aXJlZH1cbiAgICAgICAgICA/cmVhZG9ubHk9XCIke3RoaXMucmVhZG9ubHl9XCJcbiAgICAgICAgICBtYXhsZW5ndGg9XCIke3RoaXMubWF4bGVuZ3RofVwiXG4gICAgICAgICAgbWlubGVuZ3RoPVwiJHt0aGlzLm1pbmxlbmd0aH1cIlxuICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9JHshIXRoaXMucmVxdWlyZWR9XG4gICAgICAgICAgP2Rpc2FibGVkPSR7dGhpcy5kaXNhYmxlZCB8fCB0aGlzLnNrZWxldG9ufVxuICAgICAgICAgIC5wbGFjZWhvbGRlcj0ke2lmRGVmaW5lZCh0aGlzLnBsYWNlaG9sZGVyKX1cbiAgICAgICAgICAudmFsdWU9JHtpZkRlZmluZWQodGhpcy52YWx1ZSl9XG4gICAgICAgICAgcm93cz1cIiR7dGhpcy5yb3dzIDwgcm93cyA/IHJvd3MgOiB0aGlzLnJvd3N9XCJcbiAgICAgICAgICBAaW5wdXQ9JHt0aGlzLl9vbklucHV0fVxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3YtdGV4dCcsIEd2VGV4dCk7XG4iXX0=
107
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2F0b21zL2d2LXRleHQuanMiXSwibmFtZXMiOlsiY2xhc3NNYXAiLCJpZkRlZmluZWQiLCJMaXRFbGVtZW50IiwiY3NzIiwiaHRtbCIsInNrZWxldG9uIiwiZGlzcGF0Y2hDdXN0b21FdmVudCIsIklucHV0RWxlbWVudCIsIkd2VGV4dCIsInByb3BlcnRpZXMiLCJyb3dzIiwidHlwZSIsIk51bWJlciIsIm1pbmxlbmd0aCIsIm1heGxlbmd0aCIsImF1dG9zaXplIiwiQm9vbGVhbiIsInN0eWxlcyIsImNvbnN0cnVjdG9yIiwiZ2V0SW5wdXRFbGVtZW50Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3IiLCJfb25JbnB1dCIsImUiLCJ1cGRhdGVTdGF0ZSIsInRhcmdldCIsInZhbHVlIiwicmVuZGVyIiwiY2xhc3NlcyIsInJlcXVpcmVkIiwidGV4dGFyZWEiLCJyZWFkb25seSIsInRyaW0iLCJyZW5kZXJMYWJlbCIsInRpdGxlIiwibGFiZWwiLCJzcGxpdCIsImxlbmd0aCIsIl9pZCIsIm5hbWUiLCJkaXNhYmxlZCIsInBsYWNlaG9sZGVyIiwid2luZG93IiwiY3VzdG9tRWxlbWVudHMiLCJkZWZpbmUiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFFBQVQsUUFBeUIsK0JBQXpCO0FBQ0EsU0FBU0MsU0FBVCxRQUEwQixnQ0FBMUI7QUFDQSxTQUFTQyxVQUFULEVBQXFCQyxHQUFyQixFQUEwQkMsSUFBMUIsUUFBc0MsYUFBdEM7QUFDQSxTQUFTQyxRQUFULFFBQXlCLG9CQUF6QjtBQUNBLFNBQVNDLG1CQUFULFFBQW9DLGVBQXBDO0FBQ0EsU0FBU0MsWUFBVCxRQUE2Qix5QkFBN0I7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNB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LEdBQVlBLElBQVosR0FBbUJBLElBQW5CLEdBQTBCLEtBQUtBLElBaEJsQyxhQWlCSSxLQUFLWSxRQWpCVCx1QkFBWDtBQXFCRDs7QUFySGtEO0FBd0hyRG9CLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQkMsTUFBdEIsQ0FBNkIsU0FBN0IsRUFBd0NwQyxNQUF4QyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBjbGFzc01hcCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvY2xhc3MtbWFwJztcbmltcG9ydCB7IGlmRGVmaW5lZCB9IGZyb20gJ2xpdC1odG1sL2RpcmVjdGl2ZXMvaWYtZGVmaW5lZCc7XG5pbXBvcnQgeyBMaXRFbGVtZW50LCBjc3MsIGh0bWwgfSBmcm9tICdsaXQtZWxlbWVudCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5pbXBvcnQgeyBkaXNwYXRjaEN1c3RvbUV2ZW50IH0gZnJvbSAnLi4vbGliL2V2ZW50cyc7XG5pbXBvcnQgeyBJbnB1dEVsZW1lbnQgfSBmcm9tICcuLi9taXhpbnMvaW5wdXQtZWxlbWVudCc7XG5cbi8qKlxuICogQSB3cmFwcGVyIG9mIGEgPHRleHQ+IGNvbXBvbmVudC5cbiAqXG4gKiAjIyBEZXRhaWxzXG4gKiAqIGhhcyBAdGhlbWUgZmFjZXRcbiAqXG4gKiBAZmlyZXMgZ3YtdGV4dDppbnB1dCAtIG1pcnJvcnMgbmF0aXZlIHRleHRhcmVhIGV2ZW50cyB3aXRoIHRoZSBgdmFsdWVgIG9uIGBkZXRhaWxgXG4gKlxuICogQGF0dHIge0Jvb2xlYW59IGRpc2FibGVkIC0gc2FtZSBhcyBuYXRpdmUgdGV4dCBlbGVtZW50IGBkaXNhYmxlZGAgYXR0cmlidXRlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gcmVxdWlyZWQgLSBzYW1lIGFzIG5hdGl2ZSB0ZXh0IGVsZW1lbnQgYHJlcXVpcmVkYCBhdHRyaWJ1dGVcbiAqIEBhdHRyIHtCb29sZWFufSBza2VsZXRvbiAtIGVuYWJsZSBza2VsZXRvbiBzY3JlZW4gVUkgcGF0dGVybiAobG9hZGluZyBoaW50KVxuICogQGF0dHIge1N0cmluZ30gdmFsdWUgLSB0aGUgdmFsdWUgb2YgdGhlIHRleHRcbiAqIEBhdHRyIHtTdHJpbmd9IGxhYmVsIC0gbGFiZWwgb2YgdGhlIHRleHRcbiAqIEBhdHRyIHtTdHJpbmd9IHRpdGxlIC0gdGl0bGUgb2YgdGhlIHRleHRcbiAqIEBhdHRyIHtTdHJpbmd9IG5hbWUgLSBuYW1lIG9mIHRoZSB0ZXh0XG4gKiBAYXR0ciB7U3RyaW5nfSBwbGFjZWhvbGRlciAtIGFuIGV4YW1wbGUgdmFsdWUgdG8gZGlzcGxheSBpbiB0aGUgdGV4dCB3aGVuIGVtcHR5XG4gKiBAYXR0ciB7TGVuZ3RofSByb3dzIC0gbnVtYmVyIG9mIHJvd3Mgb2YgdGhlIHRleHQgZWxlbWVudFxuICogQGF0dHIge0Jvb2xlYW59IGF1dG9mb2N1cyAtIHRydWUgdG8gcHV0IHRoZSBmb2N1cyBvbiB0aGUgaW5wdXRcbiAqIEBhdHRyIHtCb29sZWFufSBbcmVhZG9ubHk9ZmFsc2VdIC0gdHJ1ZSBpZiBmaWVsZCBpcyByZWFkb25seSBtb2RlXG4gKiBAYXR0ciB7Qm9vbGVhbn0gW2F1dG9zaXplPWZhbHNlXSAtIHRydWUgaWYgZmllbGQgYXV0byByZXNpemUgd2hlbiBjb250ZW50IGNoYW5nZVxuICpcbiAqIEBjc3Nwcm9wIHtDb2xvcn0gWy0tZ3YtaW5wdXQtLWJkYz12YXIoLS1ndi10aGVtZS1uZXV0cmFsLWNvbG9yLWRhcmssICNkOWQ5ZDkpXSAtIEJvcmRlciBjb2xvclxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGV4dC0tZno9dmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLW0sIDE0cHgpXSAtIEZvbnQgc2l6ZVxuICogQGNzc3Byb3Age0xlbmd0aH0gWy0tZ3YtdGV4dC0tbGg9dmFyKC0tZ3YtdGhlbWUtZm9udC1zaXplLW0sIDE0cHgpXSAtIExpbmUgaGVpZ2h0XG4gKi9cbmV4cG9ydCBjbGFzcyBHdlRleHQgZXh0ZW5kcyBJbnB1dEVsZW1lbnQoTGl0RWxlbWVudCkge1xuICBzdGF0aWMgZ2V0IHByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJvd3M6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBtaW5sZW5ndGg6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBtYXhsZW5ndGg6IHsgdHlwZTogTnVtYmVyIH0sXG4gICAgICBhdXRvc2l6ZTogeyB0eXBlOiBCb29sZWFuIH0sXG4gICAgfTtcbiAgfVxuXG4gIHN0YXRpYyBnZXQgc3R5bGVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5zdXBlci5zdHlsZXMsXG4gICAgICBza2VsZXRvbixcbiAgICAgIC8vIGxhbmd1YWdlPUNTU1xuICAgICAgY3NzYFxuICAgICAgICAuYm94IHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvKiBCQVNFICovXG4gICAgICAgIC50ZXh0YXJlYSB7XG4gICAgICAgICAgLS1mejogdmFyKC0tZ3YtdGV4dC0tZnosIHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1tLCAxNHB4KSk7XG4gICAgICAgICAgLS10bXA6IHZhcigtLWd2LXRleHQtLWxoLCB2YXIoLS1ndi10aGVtZS1mb250LXNpemUtbSwgMTRweCkpO1xuICAgICAgICAgIC0tbGg6IGNhbGModmFyKC0tdG1wKSArIDNweCk7XG4gICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZ3YtaW5wdXQtLWJkYywgdmFyKC0tZ3YtdGhlbWUtbmV1dHJhbC1jb2xvci1kYXJrLCAjZDlkOWQ5KSk7XG4gICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgICAgICBwYWRkaW5nOiAxMHB4IDVweDtcbiAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICByZXNpemU6IG5vbmU7XG4gICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1meik7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWxoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGRpdi50ZXh0YXJlYSB7XG4gICAgICAgICAgd2hpdGUtc3BhY2U6IHByZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRleHRhcmVhOmRpc2FibGVkIHtcbiAgICAgICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICAgICAgb3BhY2l0eTogMC41O1xuICAgICAgICB9XG5cbiAgICAgICAgdGV4dGFyZWE6cmVxdWlyZWQge1xuICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgICAgICAgcGFkZGluZzogMCAwIDAuMnJlbSAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLyogSGFjayBmb3IgRkYgKi9cbiAgICAgICAgdGV4dGFyZWEge1xuICAgICAgICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMucm93cyA9IDEwO1xuICB9XG5cbiAgZ2V0SW5wdXRFbGVtZW50KCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcigndGV4dGFyZWEnKTtcbiAgfVxuXG4gIF9vbklucHV0KGUpIHtcbiAgICB0aGlzLnVwZGF0ZVN0YXRlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlID0gZS50YXJnZXQudmFsdWU7XG4gICAgZGlzcGF0Y2hDdXN0b21FdmVudCh0aGlzLCAnaW5wdXQnLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgc2tlbGV0b246IHRoaXMuc2tlbGV0b24sXG4gICAgICByZXF1aXJlZDogdGhpcy5yZXF1aXJlZCxcbiAgICAgIHRleHRhcmVhOiB0cnVlLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgaWYgKHRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZS50cmltKCkgIT09ICcnKSB7XG4gICAgICAgIHJldHVybiBodG1sYFxuICAgICAgICAgICR7dGhpcy5yZW5kZXJMYWJlbCgpfVxuICAgICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKGNsYXNzZXMpfVwiIC50aXRsZT0ke2lmRGVmaW5lZCh0aGlzLnRpdGxlIHx8IHRoaXMubGFiZWwpfT4ke2lmRGVmaW5lZCh0aGlzLnZhbHVlKX08L2Rpdj5cbiAgICAgICAgYDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgcm93cyA9IHRoaXMuYXV0b3NpemUgJiYgdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUuc3BsaXQoJ1xcbicpLmxlbmd0aCA6IHRoaXMucm93cztcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJib3hcIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckxhYmVsKCl9XG4gICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgIGNsYXNzPVwiJHtjbGFzc01hcChjbGFzc2VzKX1cIlxuICAgICAgICAgIGlkPSR7dGhpcy5faWR9XG4gICAgICAgICAgLm5hbWU9JHtpZkRlZmluZWQodGhpcy5uYW1lKX1cbiAgICAgICAgICAudGl0bGU9JHtpZkRlZmluZWQodGhpcy50aXRsZSB8fCB0aGlzLmxhYmVsKX1cbiAgICAgICAgICAucmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfVxuICAgICAgICAgID9yZWFkb25seT1cIiR7dGhpcy5yZWFkb25seX1cIlxuICAgICAgICAgIG1heGxlbmd0aD1cIiR7dGhpcy5tYXhsZW5ndGh9XCJcbiAgICAgICAgICBtaW5sZW5ndGg9XCIke3RoaXMubWlubGVuZ3RofVwiXG4gICAgICAgICAgYXJpYS1yZXF1aXJlZD0keyEhdGhpcy5yZXF1aXJlZH1cbiAgICAgICAgICA/ZGlzYWJsZWQ9JHt0aGlzLmRpc2FibGVkIHx8IHRoaXMuc2tlbGV0b259XG4gICAgICAgICAgLnBsYWNlaG9sZGVyPSR7aWZEZWZpbmVkKHRoaXMucGxhY2Vob2xkZXIpfVxuICAgICAgICAgIC52YWx1ZT0ke2lmRGVmaW5lZCh0aGlzLnZhbHVlKX1cbiAgICAgICAgICByb3dzPVwiJHt0aGlzLnJvd3MgPCByb3dzID8gcm93cyA6IHRoaXMucm93c31cIlxuICAgICAgICAgIEBpbnB1dD0ke3RoaXMuX29uSW5wdXR9XG4gICAgICAgID48L3RleHRhcmVhPlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG53aW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdndi10ZXh0JywgR3ZUZXh0KTtcbiJdfQ==
@@ -19,4 +19,25 @@ export function isCodemirror(control) {
19
19
  export function isObject(control) {
20
20
  return control.type === 'object';
21
21
  }
22
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2xpYi9zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJpc0NvZGVtaXJyb3IiLCJjb250cm9sIiwidHlwZSIsImlzT2JqZWN0Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPLFNBQVNBLFlBQVQsQ0FBc0JDLE9BQXRCLEVBQStCO0FBQ3BDLFNBQU9BLE9BQU8sQ0FBQyxlQUFELENBQVAsSUFBNEJBLE9BQU8sQ0FBQyxlQUFELENBQVAsQ0FBeUJDLElBQXpCLEtBQWtDLFlBQXJFO0FBQ0Q7QUFFRCxPQUFPLFNBQVNDLFFBQVQsQ0FBa0JGLE9BQWxCLEVBQTJCO0FBQ2hDLFNBQU9BLE9BQU8sQ0FBQ0MsSUFBUixLQUFpQixRQUF4QjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvZGVtaXJyb3IoY29udHJvbCkge1xuICByZXR1cm4gY29udHJvbFsneC1zY2hlbWEtZm9ybSddICYmIGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXS50eXBlID09PSAnY29kZW1pcnJvcic7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc09iamVjdChjb250cm9sKSB7XG4gIHJldHVybiBjb250cm9sLnR5cGUgPT09ICdvYmplY3QnO1xufVxuIl19
22
+ export function isComplexArray(control) {
23
+ return control.type === 'array' && !control.items.enum;
24
+ }
25
+ export function canInline(schema) {
26
+ if (schema.properties) {
27
+ const keys = Object.keys(schema.properties);
28
+ return keys.length <= 2 && keys.filter(key => _canInline(schema, key)).length === keys.length;
29
+ }
30
+
31
+ return true;
32
+ }
33
+
34
+ function _canInline(schema, key) {
35
+ const property = schema.properties[key];
36
+ return !isCodemirror(property) && !isObject(property) && !isComplexArray(property);
37
+ }
38
+
39
+ export function canGrid(schema) {
40
+ const keys = Object.keys(schema.properties);
41
+ return keys.length > 2 && keys.filter(key => _canInline(schema, key)).length === keys.length;
42
+ }
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL2xpYi9zY2hlbWEtZm9ybS5qcyJdLCJuYW1lcyI6WyJpc0NvZGVtaXJyb3IiLCJjb250cm9sIiwidHlwZSIsImlzT2JqZWN0IiwiaXNDb21wbGV4QXJyYXkiLCJpdGVtcyIsImVudW0iLCJjYW5JbmxpbmUiLCJzY2hlbWEiLCJwcm9wZXJ0aWVzIiwia2V5cyIsIk9iamVjdCIsImxlbmd0aCIsImZpbHRlciIsImtleSIsIl9jYW5JbmxpbmUiLCJwcm9wZXJ0eSIsImNhbkdyaWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU8sU0FBU0EsWUFBVCxDQUFzQkMsT0FBdEIsRUFBK0I7QUFDcEMsU0FBT0EsT0FBTyxDQUFDLGVBQUQsQ0FBUCxJQUE0QkEsT0FBTyxDQUFDLGVBQUQsQ0FBUCxDQUF5QkMsSUFBekIsS0FBa0MsWUFBckU7QUFDRDtBQUVELE9BQU8sU0FBU0MsUUFBVCxDQUFrQkYsT0FBbEIsRUFBMkI7QUFDaEMsU0FBT0EsT0FBTyxDQUFDQyxJQUFSLEtBQWlCLFFBQXhCO0FBQ0Q7QUFFRCxPQUFPLFNBQVNFLGNBQVQsQ0FBd0JILE9BQXhCLEVBQWlDO0FBQ3RDLFNBQU9BLE9BQU8sQ0FBQ0MsSUFBUixLQUFpQixPQUFqQixJQUE0QixDQUFDRCxPQUFPLENBQUNJLEtBQVIsQ0FBY0MsSUFBbEQ7QUFDRDtBQUVELE9BQU8sU0FBU0MsU0FBVCxDQUFtQkMsTUFBbkIsRUFBMkI7QUFDaEMsTUFBSUEsTUFBTSxDQUFDQyxVQUFYLEVBQXVCO0FBQ3JCLFVBQU1DLElBQUksR0FBR0MsTUFBTSxDQUFDRCxJQUFQLENBQVlGLE1BQU0sQ0FBQ0MsVUFBbkIsQ0FBYjtBQUNBLFdBQU9DLElBQUksQ0FBQ0UsTUFBTCxJQUFlLENBQWYsSUFBb0JGLElBQUksQ0FBQ0csTUFBTCxDQUFhQyxHQUFELElBQVNDLFVBQVUsQ0FBQ1AsTUFBRCxFQUFTTSxHQUFULENBQS9CLEVBQThDRixNQUE5QyxLQUF5REYsSUFBSSxDQUFDRSxNQUF6RjtBQUNEOztBQUNELFNBQU8sSUFBUDtBQUNEOztBQUVELFNBQVNHLFVBQVQsQ0FBb0JQLE1BQXBCLEVBQTRCTSxHQUE1QixFQUFpQztBQUMvQixRQUFNRSxRQUFRLEdBQUdSLE1BQU0sQ0FBQ0MsVUFBUCxDQUFrQkssR0FBbEIsQ0FBakI7QUFDQSxTQUFPLENBQUNkLFlBQVksQ0FBQ2dCLFFBQUQsQ0FBYixJQUEyQixDQUFDYixRQUFRLENBQUNhLFFBQUQsQ0FBcEMsSUFBa0QsQ0FBQ1osY0FBYyxDQUFDWSxRQUFELENBQXhFO0FBQ0Q7O0FBRUQsT0FBTyxTQUFTQyxPQUFULENBQWlCVCxNQUFqQixFQUF5QjtBQUM5QixRQUFNRSxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0QsSUFBUCxDQUFZRixNQUFNLENBQUNDLFVBQW5CLENBQWI7QUFDQSxTQUFPQyxJQUFJLENBQUNFLE1BQUwsR0FBYyxDQUFkLElBQW1CRixJQUFJLENBQUNHLE1BQUwsQ0FBYUMsR0FBRCxJQUFTQyxVQUFVLENBQUNQLE1BQUQsRUFBU00sR0FBVCxDQUEvQixFQUE4Q0YsTUFBOUMsS0FBeURGLElBQUksQ0FBQ0UsTUFBeEY7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNDb2RlbWlycm9yKGNvbnRyb2wpIHtcbiAgcmV0dXJuIGNvbnRyb2xbJ3gtc2NoZW1hLWZvcm0nXSAmJiBjb250cm9sWyd4LXNjaGVtYS1mb3JtJ10udHlwZSA9PT0gJ2NvZGVtaXJyb3InO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QoY29udHJvbCkge1xuICByZXR1cm4gY29udHJvbC50eXBlID09PSAnb2JqZWN0Jztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcGxleEFycmF5KGNvbnRyb2wpIHtcbiAgcmV0dXJuIGNvbnRyb2wudHlwZSA9PT0gJ2FycmF5JyAmJiAhY29udHJvbC5pdGVtcy5lbnVtO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FuSW5saW5lKHNjaGVtYSkge1xuICBpZiAoc2NoZW1hLnByb3BlcnRpZXMpIHtcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLnByb3BlcnRpZXMpO1xuICAgIHJldHVybiBrZXlzLmxlbmd0aCA8PSAyICYmIGtleXMuZmlsdGVyKChrZXkpID0+IF9jYW5JbmxpbmUoc2NoZW1hLCBrZXkpKS5sZW5ndGggPT09IGtleXMubGVuZ3RoO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5mdW5jdGlvbiBfY2FuSW5saW5lKHNjaGVtYSwga2V5KSB7XG4gIGNvbnN0IHByb3BlcnR5ID0gc2NoZW1hLnByb3BlcnRpZXNba2V5XTtcbiAgcmV0dXJuICFpc0NvZGVtaXJyb3IocHJvcGVydHkpICYmICFpc09iamVjdChwcm9wZXJ0eSkgJiYgIWlzQ29tcGxleEFycmF5KHByb3BlcnR5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhbkdyaWQoc2NoZW1hKSB7XG4gIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzY2hlbWEucHJvcGVydGllcyk7XG4gIHJldHVybiBrZXlzLmxlbmd0aCA+IDIgJiYga2V5cy5maWx0ZXIoKGtleSkgPT4gX2NhbklubGluZShzY2hlbWEsIGtleSkpLmxlbmd0aCA9PT0ga2V5cy5sZW5ndGg7XG59XG4iXX0=
@@ -14,6 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { css, html, LitElement } from 'lit-element';
17
+ import { canInline } from '../lib/schema-form';
17
18
  import { dispatchCustomEvent } from '../lib/events';
18
19
  import { classMap } from 'lit-html/directives/class-map';
19
20
  import { skeleton } from '../styles/skeleton';
@@ -39,6 +40,9 @@ export class GvSchemaFormArray extends LitElement {
39
40
  type: String,
40
41
  reflect: true
41
42
  },
43
+ description: {
44
+ type: String
45
+ },
42
46
  skeleton: {
43
47
  type: Boolean,
44
48
  reflect: true
@@ -77,10 +81,15 @@ export class GvSchemaFormArray extends LitElement {
77
81
  const control = { ...this.schema,
78
82
  title: null
79
83
  };
80
- return html`<div class="form__item" @mouseleave="${this._onMouseLeave}"> <div class="${classMap({
84
+ const isInline = canInline(this.schema);
85
+ const classes = {
86
+ form__item: true,
87
+ form__item_cards: !isInline
88
+ };
89
+ return html`<div class="${classMap(classes)}" @mouseleave="${this._onMouseLeave}"> ${!isInline ? html`<div class="${classMap({
81
90
  'form__item-label': true,
82
91
  skeleton: this.skeleton
83
- })}"> <label>${this.schema.title}</label> ${this.readonly !== true ? html`<gv-button link small @gv-button:click="${this._onRemove.bind(this, index)}" icon="general:close" title="Remove"></gv-button>` : ''} </div> <gv-schema-form-control .id="${id}" .skeleton="${this.skeleton}" .control="${control}" .value="${value}" ?required="${isRequired}" ?disabled="${isDisabled}" ?readonly="${this.readonly}"></gv-schema-form-control> </div> `;
92
+ })}"> <label>${this.schema.title}</label> ${this.readonly !== true ? html`<gv-button link small @gv-button:click="${this._onRemove.bind(this, index)}" icon="general:close" title="Remove"></gv-button>` : ''} </div>` : ''} <div class="form__item_entry"> <gv-schema-form-control .id="${id}" .skeleton="${this.skeleton}" .control="${control}" .value="${value}" ?required="${isRequired}" ?disabled="${isDisabled}" ?readonly="${this.readonly}" compact="compact"></gv-schema-form-control> ${!isInline ? '' : html`<gv-button link small @gv-button:click="${this._onRemove.bind(this, index)}" icon="general:close" title="Remove"></gv-button>`} </div> </div> `;
84
93
  }
85
94
 
86
95
  _onMouseLeave() {
@@ -116,17 +125,15 @@ export class GvSchemaFormArray extends LitElement {
116
125
  return html``;
117
126
  }
118
127
 
119
- return html`<div class="form__control-array"> <div class="form__item-group" id="${this.id}"> <div class="${classMap({
120
- 'form__item-group-header': true,
121
- skeleton: this.skeleton
122
- })}"> <label><span>${this.title || this.id}</span><span class="form__item-length">(${this.value.length})</span></label> ${this.readonly !== true ? html`<gv-button outlined small icon="code:plus" @gv-button:click="${this._onNew}">New ${this.schema.title}</gv-button>` : ''} </div> ${this.value != null && Array.isArray(this.value) ? this.value.map((value, index) => this._renderValue(value, index)) : ''} </div> </div>`;
128
+ const isOpen = this.value.length > 0;
129
+ return html`<gv-expandable class="form__control-array" open="${isOpen}"> <div slot="summary" class="form__item-group-header"> <div class="form__item-group-title"> <label><span>${this.title || this.id}</span><span class="form__item-length">(${this.value.length})</span></label> ${this.description ? html`<div class="description">${this.description}</div>` : ''} </div> ${this.readonly !== true ? html`<gv-button outlined small icon="code:plus" @gv-button:click="${this._onNew}">New ${this.schema.title}</gv-button>` : ''} </div> <div class="form__item-group" id="${this.id}" slot="details"> ${this.value != null && Array.isArray(this.value) ? this.value.map((value, index) => this._renderValue(value, index)) : ''} </div> </gv-expandable>`;
123
130
  }
124
131
 
125
132
  static get styles() {
126
133
  return [skeleton, // language=CSS
127
- css`.form__item-length{font-size:12px;color:#bfbfbf;margin:0 .2rem}.form__item-group{position:relative;transition:all .3s ease-in-out}.form__item-group:hover{background-color:#efefef}.form__item-group-header:after,.form__item-group-header:before{content:'';position:absolute;bottom:0;height:calc(100% - 35px);border-left:3px dotted #d9d9d9}.form__item-group-required>.form__item-group-header:after,.form__item-group-required>.form__item-group-header:before{border-color:var(--gv-theme-color-error-dark,#d32f2f)}.form__item-group-header:before{left:0}.form__item-group-header:after{right:0}.form__item-group-header{display:flex;padding-bottom:.2rem;margin-bottom:.2rem;align-items:center;transition:all .3s ease-in-out;background-color:var(--gv-schema-form--bgc,#fff)}.form__item-group-header label{flex:1;margin:0}.form__item-group,.form__item-group-header{border-bottom:1px solid #d9d9d9}.form__item{border:1px solid #d9d9d9;border-radius:4px;margin:.5rem;background-color:#fff;transition:all .3s ease-in-out;z-index:50}.form__item:hover{transform:translateY(-2px);box-shadow:0 10px 20px -10px #bfbfbf;z-index:60}.form__item-label{font-style:italic;display:flex;flex-direction:row;border-bottom:1px solid #d9d9d9;padding:.5rem}.form__item-label>label{flex:1}.form__item .form_control-inline>*{margin-left:0}.form__item .form_control-inline>:first-child{margin-left:.5rem}`];
134
+ css`.form__item-length{font-size:12px;color:#bfbfbf;margin:0 .2rem}.form__item-group{position:relative;transition:all .3s ease-in-out}.form__item_cards form__item-group:hover{background-color:#efefef}.form__item-group-header{display:flex;flex:1;align-items:center;transition:all .3s ease-in-out;background-color:var(--gv-schema-form--bgc,#fff)}.form__item-group-header label{flex:1;margin:0}.form__item-group-title{display:flex;flex-direction:column;flex:1}.description{opacity:.6;font-size:var(--gv-theme-font-size-s,12px)}.form__item_cards{border:1px solid #d9d9d9;border-radius:4px;margin:.5rem;background-color:#fff;transition:all .3s ease-in-out;z-index:50}.form__item_cards:hover{transform:translateY(-2px);box-shadow:0 10px 20px -10px #bfbfbf;z-index:60}.form__item_entry{display:flex}.form__item_entry gv-schema-form-control{flex:1}.form__item-label{font-style:italic;display:flex;flex-direction:row;border-bottom:1px solid #d9d9d9;padding:.5rem}.form__item-label>label{flex:1}.form__item .form_control-inline>*{margin-left:0}.form__item .form_control-inline>:first-child{margin-left:.5rem}`];
128
135
  }
129
136
 
130
137
  }
131
138
  window.customElements.define('gv-schema-form-array', GvSchemaFormArray);
132
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiR3ZTY2hlbWFGb3JtQXJyYXkiLCJwcm9wZXJ0aWVzIiwic2NoZW1hIiwidHlwZSIsIk9iamVjdCIsInZhbHVlIiwiQXJyYXkiLCJpZCIsIlN0cmluZyIsInJlZmxlY3QiLCJ0aXRsZSIsIkJvb2xlYW4iLCJlcnJvcnMiLCJyZWFkb25seSIsImNvbnN0cnVjdG9yIiwiX29uTmV3IiwibmV3VmFsdWUiLCJfb25SZW1vdmUiLCJpbmRleCIsInNwbGljZSIsImZpbHRlciIsImUiLCJfcmVuZGVyVmFsdWUiLCJpc1JlcXVpcmVkIiwicmVxdWlyZWQiLCJpc0Rpc2FibGVkIiwiZGlzYWJsZWQiLCJjb250cm9sIiwiX29uTW91c2VMZWF2ZSIsImJpbmQiLCJzZWxlY3QiLCJzaGFkb3dSb290IiwicXVlcnlTZWxlY3RvckFsbCIsImZvckVhY2giLCJzIiwiY2xvc2UiLCJnZXRDb250cm9scyIsImZyb20iLCJnZXRDb250cm9sIiwicXVlcnlTZWxlY3RvciIsIl9nZXRVcGRhdGVDb21wbGV0ZSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJ1cGRhdGVDb21wbGV0ZSIsInNob3VsZFVwZGF0ZSIsImNoYW5nZWRQcm9wZXJ0aWVzIiwiaGFzIiwicmVuZGVyIiwibGVuZ3RoIiwiaXNBcnJheSIsInN0eWxlcyIsIndpbmRvdyIsImN1c3RvbUVsZW1lbnRzIiwiZGVmaW5lIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxHQUFULEVBQWNDLElBQWQsRUFBb0JDLFVBQXBC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QXJEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IGNzcywgaHRtbCwgTGl0RWxlbWVudCB9IGZyb20gJ2xpdC1lbGVtZW50JztcblxuaW1wb3J0IHsgZGlzcGF0Y2hDdXN0b21FdmVudCB9IGZyb20gJy4uL2xpYi9ldmVudHMnO1xuaW1wb3J0IHsgY2xhc3NNYXAgfSBmcm9tICdsaXQtaHRtbC9kaXJlY3RpdmVzL2NsYXNzLW1hcCc7XG5pbXBvcnQgeyBza2VsZXRvbiB9IGZyb20gJy4uL3N0eWxlcy9za2VsZXRvbic7XG5cbi8qKlxuICogU2NoZW1hIGZvcm0gYXJyYXkgY29tcG9uZW50XG4gKlxuICovXG5leHBvcnQgY2xhc3MgR3ZTY2hlbWFGb3JtQXJyYXkgZXh0ZW5kcyBMaXRFbGVtZW50IHtcbiAgc3RhdGljIGdldCBwcm9wZXJ0aWVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBzY2hlbWE6IHsgdHlwZTogT2JqZWN0IH0sXG4gICAgICB2YWx1ZTogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgaWQ6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICB0aXRsZTogeyB0eXBlOiBTdHJpbmcsIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGVycm9yczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgfVxuXG4gIF9vbk5ldygpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuc2NoZW1hLnR5cGUgPT09ICdvYmplY3QnID8ge30gOiAnJztcbiAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIG5ld1ZhbHVlXTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpbnB1dCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX29uUmVtb3ZlKGluZGV4KSB7XG4gICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEsIG51bGwpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcigoZSkgPT4gZSAhPSBudWxsKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpbnB1dCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX3JlbmRlclZhbHVlKHZhbHVlLCBpbmRleCkge1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSB0aGlzLnNjaGVtYS5yZXF1aXJlZDtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5zY2hlbWEuZGlzYWJsZWQ7XG4gICAgY29uc3QgaWQgPSBgJHt0aGlzLmlkfS4ke2luZGV4fWA7XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEsIHRpdGxlOiBudWxsIH07XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImZvcm1fX2l0ZW1cIiBAbW91c2VsZWF2ZT1cIiR7dGhpcy5fb25Nb3VzZUxlYXZlfVwiPlxuICAgICAgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoeyAnZm9ybV9faXRlbS1sYWJlbCc6IHRydWUsIHNrZWxldG9uOiB0aGlzLnNrZWxldG9uIH0pfVwiPlxuICAgICAgICA8bGFiZWw+JHt0aGlzLnNjaGVtYS50aXRsZX08L2xhYmVsPlxuICAgICAgICAke3RoaXMucmVhZG9ubHkgIT09IHRydWVcbiAgICAgICAgICA/IGh0bWxgPGd2LWJ1dHRvblxuICAgICAgICAgICAgICBsaW5rXG4gICAgICAgICAgICAgIHNtYWxsXG4gICAgICAgICAgICAgIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uUmVtb3ZlLmJpbmQodGhpcywgaW5kZXgpfVwiXG4gICAgICAgICAgICAgIGljb249XCJnZW5lcmFsOmNsb3NlXCJcbiAgICAgICAgICAgICAgdGl0bGU9XCJSZW1vdmVcIlxuICAgICAgICAgICAgPjwvZ3YtYnV0dG9uPmBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgICA8Z3Ytc2NoZW1hLWZvcm0tY29udHJvbFxuICAgICAgICAuaWQ9XCIke2lkfVwiXG4gICAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgICAuY29udHJvbD1cIiR7Y29udHJvbH1cIlxuICAgICAgICAudmFsdWU9XCIke3ZhbHVlfVwiXG4gICAgICAgID9yZXF1aXJlZD1cIiR7aXNSZXF1aXJlZH1cIlxuICAgICAgICA/ZGlzYWJsZWQ9XCIke2lzRGlzYWJsZWR9XCJcbiAgICAgICAgP3JlYWRvbmx5PVwiJHt0aGlzLnJlYWRvbmx5fVwiXG4gICAgICA+PC9ndi1zY2hlbWEtZm9ybS1jb250cm9sPlxuICAgIDwvZGl2PiBgO1xuICB9XG5cbiAgX29uTW91c2VMZWF2ZSgpIHtcbiAgICBjb25zdCBzZWxlY3QgPSB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbChgZ3Ytc2VsZWN0YCk7XG4gICAgc2VsZWN0LmZvckVhY2goKHMpID0+IHMuY2xvc2UoKSk7XG4gIH1cblxuICBnZXRDb250cm9scygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCcpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtYXJyYXknKSksXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sLW9iamVjdCcpKSxcbiAgICBdO1xuICB9XG5cbiAgZ2V0Q29udHJvbChpZCkge1xuICAgIHJldHVybiB0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvcihgW2lkPVwiJHtpZH1cIl1gKTtcbiAgfVxuXG4gIGFzeW5jIF9nZXRVcGRhdGVDb21wbGV0ZSgpIHtcbiAgICBhd2FpdCBzdXBlci5fZ2V0VXBkYXRlQ29tcGxldGUoKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLmdldENvbnRyb2xzKCkubWFwKChlKSA9PiBlLnVwZGF0ZUNvbXBsZXRlKSk7XG4gIH1cblxuICBzaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpIHtcbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdlcnJvcnMnKSkge1xuICAgICAgdGhpcy5nZXRDb250cm9scygpLmZvckVhY2goKGNvbnRyb2wpID0+IHtcbiAgICAgICAgY29udHJvbC5lcnJvcnMgPSB0aGlzLmVycm9ycztcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBpZiAodGhpcy5zY2hlbWEgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGh0bWxgYDtcbiAgICB9XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cImZvcm1fX2NvbnRyb2wtYXJyYXlcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19pdGVtLWdyb3VwXCIgaWQ9XCIke3RoaXMuaWR9XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCIke2NsYXNzTWFwKHsgJ2Zvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyJzogdHJ1ZSwgc2tlbGV0b246IHRoaXMuc2tlbGV0b24gfSl9XCI+XG4gICAgICAgICAgPGxhYmVsPjxzcGFuPiR7dGhpcy50aXRsZSB8fCB0aGlzLmlkfTwvc3Bhbj48c3BhbiBjbGFzcz1cImZvcm1fX2l0ZW0tbGVuZ3RoXCI+KCR7dGhpcy52YWx1ZS5sZW5ndGh9KTwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgICR7dGhpcy5yZWFkb25seSAhPT0gdHJ1ZVxuICAgICAgICAgICAgPyBodG1sYDxndi1idXR0b24gb3V0bGluZWQgc21hbGwgaWNvbj1cImNvZGU6cGx1c1wiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uTmV3fVwiPk5ldyAke3RoaXMuc2NoZW1hLnRpdGxlfTwvZ3YtYnV0dG9uPmBcbiAgICAgICAgICAgIDogJyd9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICAke3RoaXMudmFsdWUgIT0gbnVsbCAmJiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gdGhpcy52YWx1ZS5tYXAoKHZhbHVlLCBpbmRleCkgPT4gdGhpcy5fcmVuZGVyVmFsdWUodmFsdWUsIGluZGV4KSkgOiAnJ31cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmZvcm1fX2l0ZW0tbGVuZ3RoIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgY29sb3I6ICNiZmJmYmY7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cDpob3ZlciB7XG4gICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjpiZWZvcmUsXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjphZnRlciB7XG4gICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDM1cHgpO1xuICAgICAgICAgIGJvcmRlci1sZWZ0OiAzcHggZG90dGVkICNkOWQ5ZDk7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1yZXF1aXJlZCA+IC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjpiZWZvcmUsXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLXJlcXVpcmVkID4gLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmFmdGVyIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6IHZhcigtLWd2LXRoZW1lLWNvbG9yLWVycm9yLWRhcmssICNkMzJmMmYpO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyOmJlZm9yZSB7XG4gICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlcjphZnRlciB7XG4gICAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1oZWFkZXIge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgcGFkZGluZy1ib3R0b206IDAuMnJlbTtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjJyZW07XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1zY2hlbWEtZm9ybS0tYmdjLCAjZmZmZmZmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlciBsYWJlbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC1oZWFkZXIsXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2Q5ZDlkOTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggLTEwcHggI2JmYmZiZjtcbiAgICAgICAgICB6LWluZGV4OiA2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsIHtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsID4gbGFiZWwge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbSAuZm9ybV9jb250cm9sLWlubGluZSA+ICoge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0tYXJyYXknLCBHdlNjaGVtYUZvcm1BcnJheSk7XG4iXX0=
139
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4vbm9kZV9tb2R1bGVzL0BncmF2aXRlZS91aS1jb21wb25lbnRzL29yZ2FuaXNtcy9ndi1zY2hlbWEtZm9ybS1hcnJheS5qcyJdLCJuYW1lcyI6WyJjc3MiLCJodG1sIiwiTGl0RWxlbWVudCIsImNhbklubGluZSIsImRpc3BhdGNoQ3VzdG9tRXZlbnQiLCJjbGFzc01hcCIsInNrZWxldG9uIiwiR3ZTY2hlbWFGb3JtQXJyYXkiLCJwcm9wZXJ0aWVzIiwic2NoZW1hIiwidHlwZSIsIk9iamVjdCIsInZhbHVlIiwiQXJyYXkiLCJpZCIsIlN0cmluZyIsInJlZmxlY3QiLCJ0aXRsZSIsImRlc2NyaXB0aW9uIiwiQm9vbGVhbiIsImVycm9ycyIsInJlYWRvbmx5IiwiY29uc3RydWN0b3IiLCJfb25OZXciLCJuZXdWYWx1ZSIsIl9vblJlbW92ZSIsImluZGV4Iiwic3BsaWNlIiwiZmlsdGVyIiwiZSIsIl9yZW5kZXJWYWx1ZSIsImlzUmVxdWlyZWQiLCJyZXF1aXJlZCIsImlzRGlzYWJsZWQiLCJkaXNhYmxlZCIsImNvbnRyb2wiLCJpc0lubGluZSIsImNsYXNzZXMiLCJmb3JtX19pdGVtIiwiZm9ybV9faXRlbV9jYXJkcyIsIl9vbk1vdXNlTGVhdmUiLCJiaW5kIiwic2VsZWN0Iiwic2hhZG93Um9vdCIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJmb3JFYWNoIiwicyIsImNsb3NlIiwiZ2V0Q29udHJvbHMiLCJmcm9tIiwiZ2V0Q29udHJvbCIsInF1ZXJ5U2VsZWN0b3IiLCJfZ2V0VXBkYXRlQ29tcGxldGUiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwidXBkYXRlQ29tcGxldGUiLCJzaG91bGRVcGRhdGUiLCJjaGFuZ2VkUHJvcGVydGllcyIsImhhcyIsInJlbmRlciIsImlzT3BlbiIsImxlbmd0aCIsImlzQXJyYXkiLCJzdHlsZXMiLCJ3aW5kb3ciLCJjdXN0b21FbGVtZW50cyIsImRlZmluZSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtB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ckYsb0JBSUgsS0FBSzVDLFdBQUwsR0FBbUJqQixJQUFJLDRCQUE0QixLQUFLaUIsV0FBakMsUUFBdkIsR0FBOEUsRUFKM0UsV0FNTCxLQUFLRyxRQUFMLEtBQWtCLElBQWxCLEdBQ0VwQixJQUFJLGdFQUFnRSxLQUFLc0IsTUFBckUsU0FBb0YsS0FBS2QsTUFBTCxDQUFZUSxLQUFoRyxjQUROLEdBRUUsRUFSRyw2Q0FVMkIsS0FBS0gsRUFWaEMscUJBV0wsS0FBS0YsS0FBTCxJQUFjLElBQWQsSUFBc0JDLEtBQUssQ0FBQ2tELE9BQU4sQ0FBYyxLQUFLbkQsS0FBbkIsQ0FBdEIsR0FBa0QsS0FBS0EsS0FBTCxDQUFXMkMsR0FBWCxDQUFlLENBQUMzQyxLQUFELEVBQVFjLEtBQVIsS0FBa0IsS0FBS0ksWUFBTCxDQUFrQmxCLEtBQWxCLEVBQXlCYyxLQUF6QixDQUFqQyxDQUFsRCxHQUFzSCxFQVhqSCwwQkFBWDtBQWNEOztBQUVnQixhQUFOc0MsTUFBTSxHQUFHO0FBQ2xCLFdBQU8sQ0FDTDFELFFBREssRUFFTDtBQUNBTixJQUFBQSxHQUFHLHdrQ0FIRSxDQUFQO0FBdUZEOztBQTVOK0M7QUErTmxEaUUsTUFBTSxDQUFDQyxjQUFQLENBQXNCQyxNQUF0QixDQUE2QixzQkFBN0IsRUFBcUQ1RCxpQkFBckQiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3NzLCBodG1sLCBMaXRFbGVtZW50IH0gZnJvbSAnbGl0LWVsZW1lbnQnO1xuaW1wb3J0IHsgY2FuSW5saW5lIH0gZnJvbSAnLi4vbGliL3NjaGVtYS1mb3JtJztcbmltcG9ydCB7IGRpc3BhdGNoQ3VzdG9tRXZlbnQgfSBmcm9tICcuLi9saWIvZXZlbnRzJztcbmltcG9ydCB7IGNsYXNzTWFwIH0gZnJvbSAnbGl0LWh0bWwvZGlyZWN0aXZlcy9jbGFzcy1tYXAnO1xuaW1wb3J0IHsgc2tlbGV0b24gfSBmcm9tICcuLi9zdHlsZXMvc2tlbGV0b24nO1xuXG4vKipcbiAqIFNjaGVtYSBmb3JtIGFycmF5IGNvbXBvbmVudFxuICpcbiAqL1xuZXhwb3J0IGNsYXNzIEd2U2NoZW1hRm9ybUFycmF5IGV4dGVuZHMgTGl0RWxlbWVudCB7XG4gIHN0YXRpYyBnZXQgcHJvcGVydGllcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc2NoZW1hOiB7IHR5cGU6IE9iamVjdCB9LFxuICAgICAgdmFsdWU6IHsgdHlwZTogQXJyYXkgfSxcbiAgICAgIGlkOiB7IHR5cGU6IFN0cmluZywgcmVmbGVjdDogdHJ1ZSB9LFxuICAgICAgdGl0bGU6IHsgdHlwZTogU3RyaW5nLCByZWZsZWN0OiB0cnVlIH0sXG4gICAgICBkZXNjcmlwdGlvbjogeyB0eXBlOiBTdHJpbmcgfSxcbiAgICAgIHNrZWxldG9uOiB7IHR5cGU6IEJvb2xlYW4sIHJlZmxlY3Q6IHRydWUgfSxcbiAgICAgIGVycm9yczogeyB0eXBlOiBBcnJheSB9LFxuICAgICAgcmVhZG9ubHk6IHsgdHlwZTogQm9vbGVhbiwgcmVmbGVjdDogdHJ1ZSB9LFxuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMudmFsdWUgPSBbXTtcbiAgfVxuXG4gIF9vbk5ldygpIHtcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuc2NoZW1hLnR5cGUgPT09ICdvYmplY3QnID8ge30gOiAnJztcbiAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIG5ld1ZhbHVlXTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpbnB1dCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX29uUmVtb3ZlKGluZGV4KSB7XG4gICAgdGhpcy52YWx1ZS5zcGxpY2UoaW5kZXgsIDEsIG51bGwpO1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLmZpbHRlcigoZSkgPT4gZSAhPSBudWxsKTtcbiAgICBkaXNwYXRjaEN1c3RvbUV2ZW50KHRoaXMsICdpbnB1dCcsIHRoaXMudmFsdWUpO1xuICB9XG5cbiAgX3JlbmRlclZhbHVlKHZhbHVlLCBpbmRleCkge1xuICAgIGNvbnN0IGlzUmVxdWlyZWQgPSB0aGlzLnNjaGVtYS5yZXF1aXJlZDtcbiAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5zY2hlbWEuZGlzYWJsZWQ7XG4gICAgY29uc3QgaWQgPSBgJHt0aGlzLmlkfS4ke2luZGV4fWA7XG4gICAgY29uc3QgY29udHJvbCA9IHsgLi4udGhpcy5zY2hlbWEsIHRpdGxlOiBudWxsIH07XG4gICAgY29uc3QgaXNJbmxpbmUgPSBjYW5JbmxpbmUodGhpcy5zY2hlbWEpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICBmb3JtX19pdGVtOiB0cnVlLFxuICAgICAgZm9ybV9faXRlbV9jYXJkczogIWlzSW5saW5lLFxuICAgIH07XG4gICAgcmV0dXJuIGh0bWxgPGRpdiBjbGFzcz1cIiR7Y2xhc3NNYXAoY2xhc3Nlcyl9XCIgQG1vdXNlbGVhdmU9XCIke3RoaXMuX29uTW91c2VMZWF2ZX1cIj5cbiAgICAgICR7IWlzSW5saW5lXG4gICAgICAgID8gaHRtbGA8ZGl2IGNsYXNzPVwiJHtjbGFzc01hcCh7ICdmb3JtX19pdGVtLWxhYmVsJzogdHJ1ZSwgc2tlbGV0b246IHRoaXMuc2tlbGV0b24gfSl9XCI+XG4gICAgICAgICAgICA8bGFiZWw+JHt0aGlzLnNjaGVtYS50aXRsZX08L2xhYmVsPlxuICAgICAgICAgICAgJHt0aGlzLnJlYWRvbmx5ICE9PSB0cnVlXG4gICAgICAgICAgICAgID8gaHRtbGA8Z3YtYnV0dG9uXG4gICAgICAgICAgICAgICAgICBsaW5rXG4gICAgICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICAgICAgQGd2LWJ1dHRvbjpjbGljaz1cIiR7dGhpcy5fb25SZW1vdmUuYmluZCh0aGlzLCBpbmRleCl9XCJcbiAgICAgICAgICAgICAgICAgIGljb249XCJnZW5lcmFsOmNsb3NlXCJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgICAgICA+PC9ndi1idXR0b24+YFxuICAgICAgICAgICAgICA6ICcnfVxuICAgICAgICAgIDwvZGl2PmBcbiAgICAgICAgOiAnJ31cbiAgICAgIDxkaXYgY2xhc3M9XCJmb3JtX19pdGVtX2VudHJ5XCI+XG4gICAgICAgIDxndi1zY2hlbWEtZm9ybS1jb250cm9sXG4gICAgICAgICAgLmlkPVwiJHtpZH1cIlxuICAgICAgICAgIC5za2VsZXRvbj1cIiR7dGhpcy5za2VsZXRvbn1cIlxuICAgICAgICAgIC5jb250cm9sPVwiJHtjb250cm9sfVwiXG4gICAgICAgICAgLnZhbHVlPVwiJHt2YWx1ZX1cIlxuICAgICAgICAgID9yZXF1aXJlZD1cIiR7aXNSZXF1aXJlZH1cIlxuICAgICAgICAgID9kaXNhYmxlZD1cIiR7aXNEaXNhYmxlZH1cIlxuICAgICAgICAgID9yZWFkb25seT1cIiR7dGhpcy5yZWFkb25seX1cIlxuICAgICAgICAgIGNvbXBhY3RcbiAgICAgICAgPjwvZ3Ytc2NoZW1hLWZvcm0tY29udHJvbD5cbiAgICAgICAgJHshaXNJbmxpbmVcbiAgICAgICAgICA/ICcnXG4gICAgICAgICAgOiBodG1sYDxndi1idXR0b25cbiAgICAgICAgICAgICAgbGlua1xuICAgICAgICAgICAgICBzbWFsbFxuICAgICAgICAgICAgICBAZ3YtYnV0dG9uOmNsaWNrPVwiJHt0aGlzLl9vblJlbW92ZS5iaW5kKHRoaXMsIGluZGV4KX1cIlxuICAgICAgICAgICAgICBpY29uPVwiZ2VuZXJhbDpjbG9zZVwiXG4gICAgICAgICAgICAgIHRpdGxlPVwiUmVtb3ZlXCJcbiAgICAgICAgICAgID48L2d2LWJ1dHRvbj5gfVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+IGA7XG4gIH1cblxuICBfb25Nb3VzZUxlYXZlKCkge1xuICAgIGNvbnN0IHNlbGVjdCA9IHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKGBndi1zZWxlY3RgKTtcbiAgICBzZWxlY3QuZm9yRWFjaCgocykgPT4gcy5jbG9zZSgpKTtcbiAgfVxuXG4gIGdldENvbnRyb2xzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5BcnJheS5mcm9tKHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yQWxsKCdndi1zY2hlbWEtZm9ybS1jb250cm9sJykpLFxuICAgICAgLi4uQXJyYXkuZnJvbSh0aGlzLnNoYWRvd1Jvb3QucXVlcnlTZWxlY3RvckFsbCgnZ3Ytc2NoZW1hLWZvcm0tY29udHJvbC1hcnJheScpKSxcbiAgICAgIC4uLkFycmF5LmZyb20odGhpcy5zaGFkb3dSb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ2d2LXNjaGVtYS1mb3JtLWNvbnRyb2wtb2JqZWN0JykpLFxuICAgIF07XG4gIH1cblxuICBnZXRDb250cm9sKGlkKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKGBbaWQ9XCIke2lkfVwiXWApO1xuICB9XG5cbiAgYXN5bmMgX2dldFVwZGF0ZUNvbXBsZXRlKCkge1xuICAgIGF3YWl0IHN1cGVyLl9nZXRVcGRhdGVDb21wbGV0ZSgpO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMuZ2V0Q29udHJvbHMoKS5tYXAoKGUpID0+IGUudXBkYXRlQ29tcGxldGUpKTtcbiAgfVxuXG4gIHNob3VsZFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcykge1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Vycm9ycycpKSB7XG4gICAgICB0aGlzLmdldENvbnRyb2xzKCkuZm9yRWFjaCgoY29udHJvbCkgPT4ge1xuICAgICAgICBjb250cm9sLmVycm9ycyA9IHRoaXMuZXJyb3JzO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5zaG91bGRVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGlmICh0aGlzLnNjaGVtYSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gaHRtbGBgO1xuICAgIH1cbiAgICBjb25zdCBpc09wZW4gPSB0aGlzLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgcmV0dXJuIGh0bWxgPGd2LWV4cGFuZGFibGUgY2xhc3M9XCJmb3JtX19jb250cm9sLWFycmF5XCIgb3Blbj1cIiR7aXNPcGVufVwiPlxuICAgICAgPGRpdiBzbG90PVwic3VtbWFyeVwiIGNsYXNzPVwiZm9ybV9faXRlbS1ncm91cC1oZWFkZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1fX2l0ZW0tZ3JvdXAtdGl0bGVcIj5cbiAgICAgICAgICA8bGFiZWw+PHNwYW4+JHt0aGlzLnRpdGxlIHx8IHRoaXMuaWR9PC9zcGFuPjxzcGFuIGNsYXNzPVwiZm9ybV9faXRlbS1sZW5ndGhcIj4oJHt0aGlzLnZhbHVlLmxlbmd0aH0pPC9zcGFuPjwvbGFiZWw+XG4gICAgICAgICAgJHt0aGlzLmRlc2NyaXB0aW9uID8gaHRtbGA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb25cIj4ke3RoaXMuZGVzY3JpcHRpb259PC9kaXY+YCA6ICcnfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgJHt0aGlzLnJlYWRvbmx5ICE9PSB0cnVlXG4gICAgICAgICAgPyBodG1sYDxndi1idXR0b24gb3V0bGluZWQgc21hbGwgaWNvbj1cImNvZGU6cGx1c1wiIEBndi1idXR0b246Y2xpY2s9XCIke3RoaXMuX29uTmV3fVwiPk5ldyAke3RoaXMuc2NoZW1hLnRpdGxlfTwvZ3YtYnV0dG9uPmBcbiAgICAgICAgICA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybV9faXRlbS1ncm91cFwiIGlkPVwiJHt0aGlzLmlkfVwiIHNsb3Q9XCJkZXRhaWxzXCI+XG4gICAgICAgICR7dGhpcy52YWx1ZSAhPSBudWxsICYmIEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyB0aGlzLnZhbHVlLm1hcCgodmFsdWUsIGluZGV4KSA9PiB0aGlzLl9yZW5kZXJWYWx1ZSh2YWx1ZSwgaW5kZXgpKSA6ICcnfVxuICAgICAgPC9kaXY+XG4gICAgPC9ndi1leHBhbmRhYmxlPmA7XG4gIH1cblxuICBzdGF0aWMgZ2V0IHN0eWxlcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgc2tlbGV0b24sXG4gICAgICAvLyBsYW5ndWFnZT1DU1NcbiAgICAgIGNzc2BcbiAgICAgICAgLmZvcm1fX2l0ZW0tbGVuZ3RoIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgY29sb3I6ICNiZmJmYmY7XG4gICAgICAgICAgbWFyZ2luOiAwIDAuMnJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbV9jYXJkcyBmb3JtX19pdGVtLWdyb3VwOmhvdmVyIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0tZ3JvdXAtaGVhZGVyIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1ndi1zY2hlbWEtZm9ybS0tYmdjLCAjZmZmZmZmKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWdyb3VwLWhlYWRlciBsYWJlbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbS1ncm91cC10aXRsZSB7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZGVzY3JpcHRpb24ge1xuICAgICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLWd2LXRoZW1lLWZvbnQtc2l6ZS1zLCAxMnB4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtX2NhcmRzIHtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgICAgICAgICBtYXJnaW46IDAuNXJlbTtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICB6LWluZGV4OiA1MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtX2NhcmRzOmhvdmVyIHtcbiAgICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDIwcHggLTEwcHggI2JmYmZiZjtcbiAgICAgICAgICB6LWluZGV4OiA2MDtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtX2VudHJ5IHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW1fZW50cnkgZ3Ytc2NoZW1hLWZvcm0tY29udHJvbCB7XG4gICAgICAgICAgZmxleDogMTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsIHtcbiAgICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDlkOWQ5O1xuICAgICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5mb3JtX19pdGVtLWxhYmVsID4gbGFiZWwge1xuICAgICAgICAgIGZsZXg6IDE7XG4gICAgICAgIH1cblxuICAgICAgICAuZm9ybV9faXRlbSAuZm9ybV9jb250cm9sLWlubGluZSA+ICoge1xuICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgLmZvcm1fX2l0ZW0gLmZvcm1fY29udHJvbC1pbmxpbmUgPiAqOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogMC41cmVtO1xuICAgICAgICB9XG4gICAgICBgLFxuICAgIF07XG4gIH1cbn1cblxud2luZG93LmN1c3RvbUVsZW1lbnRzLmRlZmluZSgnZ3Ytc2NoZW1hLWZvcm0tYXJyYXknLCBHdlNjaGVtYUZvcm1BcnJheSk7XG4iXX0=