nsc-react-component 1.4.6 → 1.4.7
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/lib/common/TreePanel.js +4 -1
- package/lib/tree/index.js +23 -19
- package/lib/treeUtils.js +27 -2
- package/package.json +1 -1
package/lib/common/TreePanel.js
CHANGED
|
@@ -73,6 +73,7 @@ var TreePanel = /*#__PURE__*/function (_Component) {
|
|
|
73
73
|
|
|
74
74
|
_defineProperty(_assertThisInitialized(_this2), "dataChangeBefore", function (data) {
|
|
75
75
|
var originData = cloneDeep(data);
|
|
76
|
+
console.log('dataChangeBefore', data);
|
|
76
77
|
|
|
77
78
|
if (!_this2.props.titleAlias) {
|
|
78
79
|
return originData;
|
|
@@ -225,6 +226,8 @@ var TreePanel = /*#__PURE__*/function (_Component) {
|
|
|
225
226
|
checkedKeys: checkedKeys
|
|
226
227
|
});
|
|
227
228
|
var newTreeDatas = [];
|
|
229
|
+
console.log('searchText', searchText);
|
|
230
|
+
console.log('renderrender', treeDatas);
|
|
228
231
|
|
|
229
232
|
if (searchText) {
|
|
230
233
|
var data = treeutils.getSearchMenuDatas(this, searchText, fieldOption, searchColor);
|
|
@@ -287,4 +290,4 @@ var TreePanel = /*#__PURE__*/function (_Component) {
|
|
|
287
290
|
_defineProperty(TreePanel, "defaultProps", void 0);
|
|
288
291
|
|
|
289
292
|
export default TreePanel;
|
|
290
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9UcmVlUGFuZWwudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiQ29tcG9uZW50IiwidHJlZXV0aWxzIiwiVHJlZVN0b3JlIiwidXRpbHMiLCJjbG9uZURlZXAiLCJUcmVlUGFuZWwiLCJwcm9wcyIsInNlYXJjaFRleHQiLCJmaWVsZE9wdGlvbiIsImtleUZpZWxkIiwidGl0bGVGaWVsZCIsInBhdGhzRmllbGQiLCJzZWFyY2hDb2xvciIsImxvYWRpbmciLCJ0cmVlRGF0YXMiLCJjaGVja2VkS2V5cyIsImV4cGFuZGVkS2V5cyIsInNlbGVjdGVkS2V5cyIsInNlbGVjdE5vZGUiLCJkYXRhIiwib3JpZ2luRGF0YSIsInRpdGxlQWxpYXMiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwiX2l0ZXJhdG9yIiwidGl0bGUiLCJnZXRUaXRsZSIsInN1YlRpdGxlIiwiY2hpbGRyZW4iLCJmb3JFYWNoIiwiaXRlbSIsInN1YnRpdGxlIiwiX3RoaXMiLCJ0cmVlRGF0YSIsIm5vZGVQcm9wcyIsInN0b3JlIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZU9wdGlvbiIsImNvbXBvbmVudCIsIm1vZGVsIiwidHJlZVByaW1hcnlLZXkiLCJrZXkiLCJvbkJlZm9yZUxvYWQiLCJvcHRpb25zIiwibGF6eWxvYWQiLCJzZXRTdGF0ZSIsInN0YXRlIiwiY2FsbGJhY2siLCJkYXRhQ2hhbmdlQmVmb3JlIiwiZGF0YUNoYW5nZWQiLCJtb2RlbERhdGEiLCJfZGF0YVRvQ2hlY2tlZEtleXMiLCJsb2FkIiwib25FcnJvckxvYWQiLCJlcnIiLCJyZXNwb25zZSIsImxlbmd0aCIsImF1dG9Mb2FkIiwicHJldlByb3BzIiwib2xkVHJlZURhdGEiLCJKU09OIiwic3RyaW5naWZ5Iiwic2V0RGF0YSIsInR5cGUiLCJ0cmVlUHJvcHMiLCJuZXdUcmVlRGF0YXMiLCJvbWl0IiwiZ2V0U2VhcmNoTWVudURh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QWQ7QUFLRDs7OztFQTNNd0JaLFM7O2dCQUFyQkssUzs7QUE4TU4sZUFBZUEsU0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHRyZWV1dGlscyBmcm9tIFwiLi4vdHJlZVV0aWxzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBUcmVlU3RvcmUgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBcImFudGQvZXMvdHJlZS9zdHlsZVwiO1xyXG4vLyBpbXBvcnQgeyBTdG9yZUNvbmZpZ1R5cGUgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3R5cGVzL1N0b3JlL1RyZWVTdG9yZS5kXCI7XHJcbmltcG9ydCB7IFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyBUcmVlUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyBmbGF0dGVuRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IGNsb25lRGVlcCBmcm9tIFwiY2xvbmUtZGVlcFwiO1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVDb21tb25Qcm9wcyB7XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZztcclxuICBzdWJUaXRsZUFsaWFzPzogc3RyaW5nO1xyXG4gIGhhbmRsZUFkZD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxuICBoYW5kbGVEZWxldGU/OiAocGFyYW1zOiBhbnkpID0+IHZvaWQ7XHJcbiAgaGFuZGxlRWRpdD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlUGFuZWxQcm9wcyBleHRlbmRzIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU6IFN0b3JlQ29uZmlnVHlwZTxhbnk+O1xyXG4gIGNoZWNrUHJvcGFnYXRpb24/OiBib29sZWFuO1xyXG4gIHJlbmRlclRyZWVOb2RlPzogKHByb3BzOiBJVHJlZVBhbmVsUHJvcHMsIGl0ZW06IGFueSkgPT4gUmVhY3QuUmVhY3RFbGVtZW50O1xyXG4gIG9wZW5LZXlzPzogc3RyaW5nW10gfCBudWxsO1xyXG59XHJcblxyXG5jbGFzcyBUcmVlUGFuZWw8UD4gZXh0ZW5kcyBDb21wb25lbnQ8XHJcbiAgSVRyZWVQYW5lbFByb3BzICYgVHJlZUNvbW1vblByb3BzICYgUCxcclxuICBhbnlcclxuPiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICAvL+aQnOe0ouaWh+acrFxyXG4gICAgc2VhcmNoVGV4dDogbnVsbCxcclxuICAgIGZpZWxkT3B0aW9uOiB7XHJcbiAgICAgIGtleUZpZWxkOiBcImtleVwiLFxyXG4gICAgICB0aXRsZUZpZWxkOiBcInRpdGxlXCIsXHJcbiAgICAgIHBhdGhzRmllbGQ6IFwiY2hpbGRyZW5cIixcclxuICAgIH0sXHJcbiAgICBzZWFyY2hDb2xvcjogbnVsbCxcclxuXHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIHRyZWVEYXRhczogW10sXHJcbiAgICBjaGVja2VkS2V5czogW10sXHJcbiAgICBleHBhbmRlZEtleXM6IFtdLFxyXG4gICAgc2VsZWN0ZWRLZXlzOiBbXSxcclxuICAgIHNlbGVjdE5vZGU6IG51bGwsXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyB0eXBlb2YgU3RvcmU7XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHM6IHsgc3RvcmU6IHt9IH07XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcclxuICAgIGNvbnN0IG9sZFRyZWVEYXRhID0gcHJldlByb3BzLnRyZWVEYXRhIHx8IFtdO1xyXG4gICAgY29uc3QgdHJlZURhdGEgPSB0aGlzLnByb3BzLnRyZWVEYXRhO1xyXG4gICAgaWYgKFxyXG4gICAgICBBcnJheS5pc0FycmF5KHRyZWVEYXRhKSAmJlxyXG4gICAgICBKU09OLnN0cmluZ2lmeSh0cmVlRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KG9sZFRyZWVEYXRhKVxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0b3JlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHRyZWVEYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IHRyZWVEYXRhID0gcHJvcHMudHJlZURhdGEgfHwgW107XHJcbiAgICBjb25zdCBub2RlUHJvcHMgPSBwcm9wcy5ub2RlUHJvcHMgfHwge307XHJcbiAgICBpZiAocHJvcHMuc3RvcmUgaW5zdGFuY2VvZiBUcmVlU3RvcmUpIHtcclxuICAgICAgdGhpcy5zdG9yZSA9IHByb3BzLnN0b3JlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBsaXN0ZW5lcnM6IGxpc3RlbmVyc1Byb3BzID0ge30sIC4uLnJlc3RTdG9yZSB9ID0gcHJvcHMuc3RvcmU7XHJcbiAgICAgIGNvbnN0IHN0b3JlT3B0aW9uID0ge1xyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBtb2RlbDogXCJ0cmVlbW9kZWxcIixcclxuICAgICAgICB0cmVlUHJpbWFyeUtleTogbm9kZVByb3BzLmtleSB8fCBcImlkXCIsIC8vIOagkeiKgueCueWUr+S4gGtleVxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgbGV0IGxvYWRpbmcgPSBwcm9wcy5sYXp5bG9hZCAhPSB0cnVlO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IC4uLl90aGlzLnN0YXRlLCAuLi57IGxvYWRpbmc6IGxvYWRpbmcgfSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25CZWZvcmVMb2FkLCB0aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlQmVmb3JlOiBfdGhpcy5kYXRhQ2hhbmdlQmVmb3JlLFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB0cmVlRGF0YXM6IG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBjaGVja2VkS2V5czogX3RoaXMuX2RhdGFUb0NoZWNrZWRLZXlzKG1vZGVsRGF0YSksXHJcbiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5kYXRhQ2hhbmdlZCwgdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHRyZWVEYXRhLmxlbmd0aCA+IDAgPyB0cmVlRGF0YSA6IG51bGwsXHJcbiAgICAgICAgYXV0b0xvYWQ6IHJlc3RTdG9yZS5hdXRvTG9hZCAhPT0gZmFsc2UgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgLi4ucmVzdFN0b3JlLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFRyZWVTdG9yZShzdG9yZU9wdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZShkYXRhLCB0eXBlID0gXCJ0aXRsZUFsaWFzXCIpIHtcclxuICAgIGxldCB0aXRsZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5wcm9wc1t0eXBlXSkge1xyXG4gICAgICByZXR1cm4gZGF0YVt0aGlzLnByb3BzW3R5cGVdXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRpdGxlID0gdHlwZSA9PSBcInRpdGxlQWxpYXNcIiA/IGRhdGEudGl0bGUgOiBkYXRhLnN1YnRpdGxlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgZGF0YUNoYW5nZUJlZm9yZSA9IChkYXRhKSA9PiB7XHJcbiAgICBjb25zdCBvcmlnaW5EYXRhID0gY2xvbmVEZWVwKGRhdGEpO1xyXG4gICAgaWYgKCF0aGlzLnByb3BzLnRpdGxlQWxpYXMpIHtcclxuICAgICAgcmV0dXJuIG9yaWdpbkRhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcmlnaW5EYXRhKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5faXRlcmF0b3Iob3JpZ2luRGF0YSk7XHJcbiAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgfSBlbHNlIGlmIChvcmlnaW5EYXRhICYmIHR5cGVvZiBvcmlnaW5EYXRhID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgIG9yaWdpbkRhdGEudGl0bGUgPSB0aGlzLmdldFRpdGxlKG9yaWdpbkRhdGEpO1xyXG4gICAgICBvcmlnaW5EYXRhLnN1YlRpdGxlID0gdGhpcy5nZXRUaXRsZShvcmlnaW5EYXRhLCBcInN1YlRpdGxlQWxpYXNcIik7XHJcbiAgICAgIGlmIChvcmlnaW5EYXRhLmNoaWxkcmVuKSB0aGlzLl9pdGVyYXRvcihvcmlnaW5EYXRhLmNoaWxkcmVuKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvcmlnaW5EYXRhO1xyXG4gIH07XHJcblxyXG4gIF9pdGVyYXRvciA9IChkYXRhKSA9PiB7XHJcbiAgICAvLyBjb25zdCB0aXRsZUFsaWFzID0gdGhpcy5wcm9wcy50aXRsZUFsaWFzO1xyXG4gICAgLy8g5aaC5p6c5Lyg5YWl55qEZGF0YeaYr2R2YeS4rW1vZGVs5pWw5o2u5piv5LiN5YWB6K645L+u5pS555qELOaJgOS7peWFiOi9rOaNouS4gOS4i1xyXG4gICAgLy8gY29uc3QgbmV3RGF0YSA9IGRhdGEubWFwKChpdGVtKSA9PiAoeyAuLi5pdGVtIH0pKTtcclxuICAgIGRhdGEuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICBpdGVtLnRpdGxlID0gdGhpcy5nZXRUaXRsZShpdGVtKTtcclxuICAgICAgaXRlbS5zdWJ0aXRsZSA9IHRoaXMuZ2V0VGl0bGUoaXRlbSwgXCJzdWJUaXRsZUFsaWFzXCIpO1xyXG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICAgIHRoaXMuX2l0ZXJhdG9yKGl0ZW0uY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOS/ruaUueaVsOaNrlxyXG4gICAqL1xyXG4gIG1hcERhdGEgPSAoKSA9PiB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICog5Yid5aeL5YyW6IqC54K56YCJ5LitXHJcbiAgICogQHBhcmFtIHsqfSBtb2RlbERhdGEgIOaVsOaNrlxyXG4gICAqL1xyXG4gIF9kYXRhVG9DaGVja2VkS2V5cyhtb2RlbERhdGEpIHtcclxuICAgIHJldHVybiBbXTtcclxuICAgIC8vIHJldHVybiB7IGNoZWNrZWQ6IFtdLCBoYWxmQ2hlY2tlZDogW10gfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOeVjOmdoua4suafk1xyXG4gICAqL1xyXG4gIHJlbmRlclRlbXBsYXRlKHRyZWVQcm9wczogSVRyZWVQYW5lbFByb3BzLCBuZXdUcmVlRGF0YXMpIHtcclxuICAgIHJldHVybiA8PjwvPjtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgY29uc3QgeyBzZWFyY2hUZXh0LCB0cmVlRGF0YXMsIGNoZWNrZWRLZXlzLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IgfSA9XHJcbiAgICAgICAgdGhpcy5zdGF0ZSxcclxuICAgICAgdHJlZVByb3BzID0gdXRpbHMub21pdCh0aGlzLnByb3BzLCBbXCJzdG9yZVwiXSwge1xyXG4gICAgICAgIGNoZWNrZWRLZXlzOiBjaGVja2VkS2V5cyxcclxuICAgICAgfSk7XHJcbiAgICBsZXQgbmV3VHJlZURhdGFzID0gW107XHJcbiAgICBpZiAoc2VhcmNoVGV4dCkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdHJlZXV0aWxzLmdldFNlYXJjaE1lbnVEYXRhcyhcclxuICAgICAgICB0aGlzLFxyXG4gICAgICAgIHNlYXJjaFRleHQsXHJcbiAgICAgICAgZmllbGRPcHRpb24sXHJcbiAgICAgICAgc2VhcmNoQ29sb3JcclxuICAgICAgKTtcclxuICAgICAgbmV3VHJlZURhdGFzID0gZGF0YS50cmVlRGF0YXM7XHJcbiAgICAgIHRyZWVQcm9wcy5vcGVuS2V5cyA9IGRhdGEub3BlbktleXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdUcmVlRGF0YXMgPSB0cmVlRGF0YXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJUZW1wbGF0ZSh0cmVlUHJvcHMsIG5ld1RyZWVEYXRhcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bmlbDmja7lr7nosaFcclxuICAgKi9cclxuICBnZXRTdG9yZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5pWw5o2u5qih5Z6L5a+56LGhXHJcbiAgICovXHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIOWIt+aWsOeVjOmdolxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIOWPguaVsFxyXG4gICAqL1xyXG4gIHJlbG9hZChvcHRpb25zKSB7XHJcbiAgICB0aGlzLnN0b3JlLnJlbG9hZChvcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I+c5Y2V5pCc57Si6L+H5ruk5pi+56S6XHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHZhbFxyXG4gICAqL1xyXG4gIGhhbmRsZVNlYXJjaCh2YWwsIGZpZWxkT3B0aW9uPywgc2VhcmNoQ29sb3I/KSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VhcmNoVGV4dDogdmFsLFxyXG4gICAgICBmaWVsZE9wdGlvbjogZmllbGRPcHRpb24sXHJcbiAgICAgIHNlYXJjaENvbG9yOiBzZWFyY2hDb2xvcixcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVHJlZVBhbmVsO1xyXG4iXX0=
|
|
293
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9UcmVlUGFuZWwudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiQ29tcG9uZW50IiwidHJlZXV0aWxzIiwiVHJlZVN0b3JlIiwidXRpbHMiLCJjbG9uZURlZXAiLCJUcmVlUGFuZWwiLCJwcm9wcyIsInNlYXJjaFRleHQiLCJmaWVsZE9wdGlvbiIsImtleUZpZWxkIiwidGl0bGVGaWVsZCIsInBhdGhzRmllbGQiLCJzZWFyY2hDb2xvciIsImxvYWRpbmciLCJ0cmVlRGF0YXMiLCJjaGVja2VkS2V5cyIsImV4cGFuZGVkS2V5cyIsInNlbGVjdGVkS2V5cyIsInNlbGVjdE5vZGUiLCJkYXRhIiwib3JpZ2luRGF0YSIsImNvbnNvbGUiLCJsb2ciLCJ0aXRsZUFsaWFzIiwiQXJyYXkiLCJpc0FycmF5IiwibmV3RGF0YSIsIl9pdGVyYXRvciIsInRpdGxlIiwiZ2V0VGl0bGUiLCJzdWJUaXRsZSIsImNoaWxkcmVuIiwiZm9yRWFjaCIsIml0ZW0iLCJzdWJ0aXRsZSIsIl90aGlzIiwidHJlZURhdGEiLCJub2RlUHJvcHMiLCJzdG9yZSIsImxpc3RlbmVycyIsImxpc3RlbmVyc1Byb3BzIiwicmVzdFN0b3JlIiwic3RvcmVPcHRpb24iLCJjb21wb25lbnQiLCJtb2RlbCIsInRyZWVQcmltYXJ5S2V5Iiwia2V5Iiwib25CZWZvcmVMb2FkIiwib3B0aW9ucyIsImxhenlsb2FkIiwic2V0U3RhdGUiLCJzdGF0ZSIsImNhbGxiYWNrIiwiZGF0YUNoYW5nZUJlZm9yZSIsImRhdGFDaGFuZ2VkIiwibW9kZWxEYXRhIiwiX2RhdGFUb0NoZWNrZWRLZXlzIiwibG9hZCIsIm9uRXJyb3JMb2FkIiwiZXJyIiwicmVzcG9uc2UiLCJsZW5ndGgiLCJhdXRvTG9hZCIsInByZXZQcm9wcyIsIm9sZFRyZWVEYXRhIiwiSlNPTiIsInN0cmluZ2lmeSIsInNldERhdGEiLCJ0eXBlIiwidHJlZVByb3BzIiwibmV3VHJlZURhdGFzIiwib21pdCIsImdldFNlYXJjaE1lbnVEYXRhcyIsIm9wZW5LZXlzIiwicmVuZGVyVGVtcGxhdGUiLCJnZXRNb2RlbCIsInJlbG9hZCIsInZhbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLFNBQWhCLFFBQWlDLE9BQWpDO0FBQ0EsT0FBT0MsU0FBUCxNQUFzQixjQUF0QjtBQUNBLFNBQWdCQyxTQUFoQixRQUFpQyxhQUFqQztBQUNBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBQ0EsT0FBTyxvQkFBUCxDLENBQ0E7O0FBSUEsT0FBT0MsU0FBUCxNQUFzQixZQUF0Qjs7SUFlTUMsUzs7Ozs7QUF1Q0oscUJBQVlDLEtBQVosRUFBbUI7QUFBQTs7QUFBQTs7QUFDakIsK0JBQU1BLEtBQU47O0FBRGlCLDZEQW5DWDtBQUNOO0FBQ0FDLE1BQUFBLFVBQVUsRUFBRSxJQUZOO0FBR05DLE1BQUFBLFdBQVcsRUFBRTtBQUNYQyxRQUFBQSxRQUFRLEVBQUUsS0FEQztBQUVYQyxRQUFBQSxVQUFVLEVBQUUsT0FGRDtBQUdYQyxRQUFBQSxVQUFVLEVBQUU7QUFIRCxPQUhQO0FBUU5DLE1BQUFBLFdBQVcsRUFBRSxJQVJQO0FBVU5DLE1BQUFBLE9BQU8sRUFBRSxLQVZIO0FBV05DLE1BQUFBLFNBQVMsRUFBRSxFQVhMO0FBWU5DLE1BQUFBLFdBQVcsRUFBRSxFQVpQO0FBYU5DLE1BQUFBLFlBQVksRUFBRSxFQWJSO0FBY05DLE1BQUFBLFlBQVksRUFBRSxFQWRSO0FBZU5DLE1BQUFBLFVBQVUsRUFBRTtBQWZOLEtBbUNXOztBQUFBLDZEQWpCWCxFQWlCVzs7QUFBQSx3RUEwREEsVUFBQ0MsSUFBRCxFQUFVO0FBQzNCLFVBQU1DLFVBQVUsR0FBR2hCLFNBQVMsQ0FBQ2UsSUFBRCxDQUE1QjtBQUNBRSxNQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxrQkFBWixFQUErQkgsSUFBL0I7O0FBQ0EsVUFBSSxDQUFDLE9BQUtiLEtBQUwsQ0FBV2lCLFVB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Q0E7QUFDQTs7OztXQUNFLHNCQUFhNkIsR0FBYixFQUFrQnJFLFdBQWxCLEVBQWdDSSxXQUFoQyxFQUE4QztBQUM1QyxXQUFLc0MsUUFBTCxDQUFjO0FBQ1ozQyxRQUFBQSxVQUFVLEVBQUVzRSxHQURBO0FBRVpyRSxRQUFBQSxXQUFXLEVBQUVBLFdBRkQ7QUFHWkksUUFBQUEsV0FBVyxFQUFFQTtBQUhELE9BQWQ7QUFLRDs7OztFQTlNd0JaLFM7O2dCQUFyQkssUzs7QUFpTk4sZUFBZUEsU0FBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHRyZWV1dGlscyBmcm9tIFwiLi4vdHJlZVV0aWxzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBUcmVlU3RvcmUgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCBcImFudGQvZXMvdHJlZS9zdHlsZVwiO1xyXG4vLyBpbXBvcnQgeyBTdG9yZUNvbmZpZ1R5cGUgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3R5cGVzL1N0b3JlL1RyZWVTdG9yZS5kXCI7XHJcbmltcG9ydCB7IFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgeyBUcmVlUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyBmbGF0dGVuRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IGNsb25lRGVlcCBmcm9tIFwiY2xvbmUtZGVlcFwiO1xyXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVDb21tb25Qcm9wcyB7XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZztcclxuICBzdWJUaXRsZUFsaWFzPzogc3RyaW5nO1xyXG4gIGhhbmRsZUFkZD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxuICBoYW5kbGVEZWxldGU/OiAocGFyYW1zOiBhbnkpID0+IHZvaWQ7XHJcbiAgaGFuZGxlRWRpdD86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIElUcmVlUGFuZWxQcm9wcyBleHRlbmRzIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU6IFN0b3JlQ29uZmlnVHlwZTxhbnk+O1xyXG4gIGNoZWNrUHJvcGFnYXRpb24/OiBib29sZWFuO1xyXG4gIHJlbmRlclRyZWVOb2RlPzogKHByb3BzOiBJVHJlZVBhbmVsUHJvcHMsIGl0ZW06IGFueSkgPT4gUmVhY3QuUmVhY3RFbGVtZW50O1xyXG4gIG9wZW5LZXlzPzogc3RyaW5nW10gfCBudWxsO1xyXG59XHJcblxyXG5jbGFzcyBUcmVlUGFuZWw8UD4gZXh0ZW5kcyBDb21wb25lbnQ8XHJcbiAgSVRyZWVQYW5lbFByb3BzICYgVHJlZUNvbW1vblByb3BzICYgUCxcclxuICBhbnlcclxuPiB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICAvL+aQnOe0ouaWh+acrFxyXG4gICAgc2VhcmNoVGV4dDogbnVsbCxcclxuICAgIGZpZWxkT3B0aW9uOiB7XHJcbiAgICAgIGtleUZpZWxkOiBcImtleVwiLFxyXG4gICAgICB0aXRsZUZpZWxkOiBcInRpdGxlXCIsXHJcbiAgICAgIHBhdGhzRmllbGQ6IFwiY2hpbGRyZW5cIixcclxuICAgIH0sXHJcbiAgICBzZWFyY2hDb2xvcjogbnVsbCxcclxuXHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIHRyZWVEYXRhczogW10sXHJcbiAgICBjaGVja2VkS2V5czogW10sXHJcbiAgICBleHBhbmRlZEtleXM6IFtdLFxyXG4gICAgc2VsZWN0ZWRLZXlzOiBbXSxcclxuICAgIHNlbGVjdE5vZGU6IG51bGwsXHJcbiAgfTtcclxuXHJcbiAgc3RvcmUgPSB7fSBhcyB0eXBlb2YgU3RvcmU7XHJcblxyXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHM6IHsgc3RvcmU6IHt9IH07XHJcblxyXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHMpIHtcclxuICAgIGNvbnN0IG9sZFRyZWVEYXRhID0gcHJldlByb3BzLnRyZWVEYXRhIHx8IFtdO1xyXG4gICAgY29uc3QgdHJlZURhdGEgPSB0aGlzLnByb3BzLnRyZWVEYXRhO1xyXG4gICAgaWYgKFxyXG4gICAgICBBcnJheS5pc0FycmF5KHRyZWVEYXRhKSAmJlxyXG4gICAgICBKU09OLnN0cmluZ2lmeSh0cmVlRGF0YSkgIT09IEpTT04uc3RyaW5naWZ5KG9sZFRyZWVEYXRhKVxyXG4gICAgKSB7XHJcbiAgICAgIGlmICh0aGlzLnN0b3JlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9yZS5zZXREYXRhKHRyZWVEYXRhKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IHRyZWVEYXRhID0gcHJvcHMudHJlZURhdGEgfHwgW107XHJcbiAgICBjb25zdCBub2RlUHJvcHMgPSBwcm9wcy5ub2RlUHJvcHMgfHwge307XHJcbiAgICBpZiAocHJvcHMuc3RvcmUgaW5zdGFuY2VvZiBUcmVlU3RvcmUpIHtcclxuICAgICAgdGhpcy5zdG9yZSA9IHByb3BzLnN0b3JlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBsaXN0ZW5lcnM6IGxpc3RlbmVyc1Byb3BzID0ge30sIC4uLnJlc3RTdG9yZSB9ID0gcHJvcHMuc3RvcmU7XHJcbiAgICAgIGNvbnN0IHN0b3JlT3B0aW9uID0ge1xyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBtb2RlbDogXCJ0cmVlbW9kZWxcIixcclxuICAgICAgICB0cmVlUHJpbWFyeUtleTogbm9kZVByb3BzLmtleSB8fCBcImlkXCIsIC8vIOagkeiKgueCueWUr+S4gGtleVxyXG4gICAgICAgIGxpc3RlbmVyczoge1xyXG4gICAgICAgICAgb25CZWZvcmVMb2FkOiBmdW5jdGlvbiAoc3RvcmUsIG9wdGlvbnMpIHtcclxuICAgICAgICAgICAgbGV0IGxvYWRpbmcgPSBwcm9wcy5sYXp5bG9hZCAhPSB0cnVlO1xyXG4gICAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IC4uLl90aGlzLnN0YXRlLCAuLi57IGxvYWRpbmc6IGxvYWRpbmcgfSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25CZWZvcmVMb2FkLCB0aGlzLCBbc3RvcmUsIG9wdGlvbnNdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlQmVmb3JlOiBfdGhpcy5kYXRhQ2hhbmdlQmVmb3JlLFxyXG4gICAgICAgICAgZGF0YUNoYW5nZWQ6IGZ1bmN0aW9uIChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICB0cmVlRGF0YXM6IG1vZGVsRGF0YSxcclxuICAgICAgICAgICAgICBjaGVja2VkS2V5czogX3RoaXMuX2RhdGFUb0NoZWNrZWRLZXlzKG1vZGVsRGF0YSksXHJcbiAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5kYXRhQ2hhbmdlZCwgdGhpcywgW1xyXG4gICAgICAgICAgICAgIGRhdGEsXHJcbiAgICAgICAgICAgICAgbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIHN0b3JlLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHRyZWVEYXRhLmxlbmd0aCA+IDAgPyB0cmVlRGF0YSA6IG51bGwsXHJcbiAgICAgICAgYXV0b0xvYWQ6IHJlc3RTdG9yZS5hdXRvTG9hZCAhPT0gZmFsc2UgPyB0cnVlIDogZmFsc2UsXHJcbiAgICAgICAgLi4ucmVzdFN0b3JlLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnN0b3JlID0gbmV3IFRyZWVTdG9yZShzdG9yZU9wdGlvbik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUaXRsZShkYXRhLCB0eXBlID0gXCJ0aXRsZUFsaWFzXCIpIHtcclxuICAgIGxldCB0aXRsZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5wcm9wc1t0eXBlXSkge1xyXG4gICAgICByZXR1cm4gZGF0YVt0aGlzLnByb3BzW3R5cGVdXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRpdGxlID0gdHlwZSA9PSBcInRpdGxlQWxpYXNcIiA/IGRhdGEudGl0bGUgOiBkYXRhLnN1YnRpdGxlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgZGF0YUNoYW5nZUJlZm9yZSA9IChkYXRhKSA9PiB7XHJcbiAgICBjb25zdCBvcmlnaW5EYXRhID0gY2xvbmVEZWVwKGRhdGEpO1xyXG4gICAgY29uc29sZS5sb2coJ2RhdGFDaGFuZ2VCZWZvcmUnLGRhdGEpXHJcbiAgICBpZiAoIXRoaXMucHJvcHMudGl0bGVBbGlhcykge1xyXG4gICAgICByZXR1cm4gb3JpZ2luRGF0YTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KG9yaWdpbkRhdGEpKSB7XHJcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSB0aGlzLl9pdGVyYXRvcihvcmlnaW5EYXRhKTtcclxuICAgICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgICB9IGVsc2UgaWYgKG9yaWdpbkRhdGEgJiYgdHlwZW9mIG9yaWdpbkRhdGEgPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgb3JpZ2luRGF0YS50aXRsZSA9IHRoaXMuZ2V0VGl0bGUob3JpZ2luRGF0YSk7XHJcbiAgICAgIG9yaWdpbkRhdGEuc3ViVGl0bGUgPSB0aGlzLmdldFRpdGxlKG9yaWdpbkRhdGEsIFwic3ViVGl0bGVBbGlhc1wiKTtcclxuICAgICAgaWYgKG9yaWdpbkRhdGEuY2hpbGRyZW4pIHRoaXMuX2l0ZXJhdG9yKG9yaWdpbkRhdGEuY2hpbGRyZW4pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9yaWdpbkRhdGE7XHJcbiAgfTtcclxuXHJcbiAgX2l0ZXJhdG9yID0gKGRhdGEpID0+IHtcclxuICAgIC8vIGNvbnN0IHRpdGxlQWxpYXMgPSB0aGlzLnByb3BzLnRpdGxlQWxpYXM7XHJcbiAgICAvLyDlpoLmnpzkvKDlhaXnmoRkYXRh5pivZHZh5LitbW9kZWzmlbDmja7mmK/kuI3lhYHorrjkv67mlLnnmoQs5omA5Lul5YWI6L2s5o2i5LiA5LiLXHJcbiAgICAvLyBjb25zdCBuZXdEYXRhID0gZGF0YS5tYXAoKGl0ZW0pID0+ICh7IC4uLml0ZW0gfSkpO1xyXG4gICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0udGl0bGUgPSB0aGlzLmdldFRpdGxlKGl0ZW0pO1xyXG4gICAgICBpdGVtLnN1YnRpdGxlID0gdGhpcy5nZXRUaXRsZShpdGVtLCBcInN1YlRpdGxlQWxpYXNcIik7XHJcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5faXRlcmF0b3IoaXRlbS5jaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICog5L+u5pS55pWw5o2uXHJcbiAgICovXHJcbiAgbWFwRGF0YSA9ICgpID0+IHt9O1xyXG5cclxuICAvKipcclxuICAgKiDliJ3lp4vljJboioLngrnpgInkuK1cclxuICAgKiBAcGFyYW0geyp9IG1vZGVsRGF0YSAg5pWw5o2uXHJcbiAgICovXHJcbiAgX2RhdGFUb0NoZWNrZWRLZXlzKG1vZGVsRGF0YSkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gICAgLy8gcmV0dXJuIHsgY2hlY2tlZDogW10sIGhhbGZDaGVja2VkOiBbXSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog55WM6Z2i5riy5p+TXHJcbiAgICovXHJcbiAgcmVuZGVyVGVtcGxhdGUodHJlZVByb3BzOiBJVHJlZVBhbmVsUHJvcHMsIG5ld1RyZWVEYXRhcykge1xyXG4gICAgcmV0dXJuIDw+PC8+O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBjb25zdCB7IHNlYXJjaFRleHQsIHRyZWVEYXRhcywgY2hlY2tlZEtleXMsIGZpZWxkT3B0aW9uLCBzZWFyY2hDb2xvciB9ID1cclxuICAgICAgICB0aGlzLnN0YXRlLFxyXG4gICAgICB0cmVlUHJvcHMgPSB1dGlscy5vbWl0KHRoaXMucHJvcHMsIFtcInN0b3JlXCJdLCB7XHJcbiAgICAgICAgY2hlY2tlZEtleXM6IGNoZWNrZWRLZXlzLFxyXG4gICAgICB9KTtcclxuICAgIGxldCBuZXdUcmVlRGF0YXMgPSBbXTtcclxuICAgIGNvbnNvbGUubG9nKCdzZWFyY2hUZXh0JyxzZWFyY2hUZXh0KVxyXG4gICAgY29uc29sZS5sb2coJ3JlbmRlcnJlbmRlcicsdHJlZURhdGFzKVxyXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRyZWV1dGlscy5nZXRTZWFyY2hNZW51RGF0YXMoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yXHJcbiAgICAgICk7XHJcbiAgICAgIG5ld1RyZWVEYXRhcyA9IGRhdGEudHJlZURhdGFzO1xyXG4gICAgICB0cmVlUHJvcHMub3BlbktleXMgPSBkYXRhLm9wZW5LZXlzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3VHJlZURhdGFzID0gdHJlZURhdGFzO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMucmVuZGVyVGVtcGxhdGUodHJlZVByb3BzLCBuZXdUcmVlRGF0YXMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5pWw5o2u5a+56LGhXHJcbiAgICovXHJcbiAgZ2V0U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruaooeWei+WvueixoVxyXG4gICAqL1xyXG4gIGdldE1vZGVsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmUuZ2V0TW9kZWwoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqICDliLfmlrDnlYzpnaJcclxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyDlj4LmlbBcclxuICAgKi9cclxuICByZWxvYWQob3B0aW9ucykge1xyXG4gICAgdGhpcy5zdG9yZS5yZWxvYWQob3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiPnOWNleaQnOe0oui/h+a7pOaYvuekulxyXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB2YWxcclxuICAgKi9cclxuICBoYW5kbGVTZWFyY2godmFsLCBmaWVsZE9wdGlvbj8sIHNlYXJjaENvbG9yPykge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlYXJjaFRleHQ6IHZhbCxcclxuICAgICAgZmllbGRPcHRpb246IGZpZWxkT3B0aW9uLFxyXG4gICAgICBzZWFyY2hDb2xvcjogc2VhcmNoQ29sb3IsXHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFRyZWVQYW5lbDtcclxuIl19
|
package/lib/tree/index.js
CHANGED
|
@@ -92,7 +92,6 @@ var NscTree = /*#__PURE__*/function (_TreePanel) {
|
|
|
92
92
|
restNodeProps = _objectWithoutProperties(nodeProps, _excluded);
|
|
93
93
|
|
|
94
94
|
var nodes = data.map(function (item) {
|
|
95
|
-
console.log("item", item);
|
|
96
95
|
var props = {
|
|
97
96
|
dataref: item
|
|
98
97
|
};
|
|
@@ -110,26 +109,31 @@ var NscTree = /*#__PURE__*/function (_TreePanel) {
|
|
|
110
109
|
props = utils.callback(renderFn, _assertThisInitialized(_this2), [props, item]);
|
|
111
110
|
}
|
|
112
111
|
|
|
113
|
-
if (item.childNodes) {
|
|
114
|
-
return /*#__PURE__*/React.createElement(TreeNode, _extends({}, props, {
|
|
115
|
-
key: item.attribute.key
|
|
116
|
-
}), _this2.renderTreeNodes(item.childNodes, renderFn));
|
|
117
|
-
}
|
|
118
|
-
|
|
119
112
|
var titleNode = null;
|
|
120
113
|
|
|
121
|
-
if (item.
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
114
|
+
if (typeof item.title == "string") {
|
|
115
|
+
if (item.attribute.subtitle) {
|
|
116
|
+
titleNode = /*#__PURE__*/React.createElement("span", {
|
|
117
|
+
title: item.title + "(" + item.attribute.subtitle + ")"
|
|
118
|
+
}, /*#__PURE__*/React.createElement("span", null, item.title), /*#__PURE__*/React.createElement("span", {
|
|
119
|
+
style: {
|
|
120
|
+
color: "rgba(0,0,0,.45)"
|
|
121
|
+
}
|
|
122
|
+
}, "\uFF08".concat(item.attribute.subtitle, "\uFF09")));
|
|
123
|
+
} else {
|
|
124
|
+
titleNode = /*#__PURE__*/React.createElement("span", {
|
|
125
|
+
title: item.title
|
|
126
|
+
}, item.title);
|
|
127
|
+
}
|
|
129
128
|
} else {
|
|
130
|
-
titleNode =
|
|
131
|
-
|
|
132
|
-
|
|
129
|
+
titleNode = item.title;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if (item.childNodes) {
|
|
133
|
+
return /*#__PURE__*/React.createElement(TreeNode, _extends({}, props, {
|
|
134
|
+
key: item.attribute.key,
|
|
135
|
+
title: titleNode
|
|
136
|
+
}), _this2.renderTreeNodes(item.childNodes, renderFn));
|
|
133
137
|
}
|
|
134
138
|
|
|
135
139
|
return /*#__PURE__*/React.createElement(TreeNode, _extends({}, props, {
|
|
@@ -308,4 +312,4 @@ _defineProperty(NscTree, "defaultProps", {
|
|
|
308
312
|
});
|
|
309
313
|
|
|
310
314
|
export default NscTree;
|
|
311
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RyZWUvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiVHJlZVBhbmVsIiwidXRpbHMiLCJTdG9yZSIsIlN0b3JlQ29uZmlnVHlwZSIsIlRyZWVTZWFyY2giLCJzdHlsZXMiLCJUcmVlTm9kZSIsIk5zY1RyZWUiLCJwcm9wcyIsImNyZWF0ZVJlZiIsIm5vZGUiLCJoYW5kbGVBZGQiLCJoYW5kbGVFZGl0IiwiaGFuZGxlRGVsZXRlIiwidHJlZU5vZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl90aGlzIiwiZGF0YXJlZiIsInN0b3JlIiwibGF6eUxvYWQiLCJmb3JjZVVwZGF0ZSIsImRhdGEiLCJyZW5kZXJGbiIsIm5vZGVQcm9wcyIsIm5vZGVLZXkiLCJrZXkiLCJyZXN0Tm9kZVByb3BzIiwibm9kZXMiLCJtYXAiLCJpdGVtIiwiY29uc29sZSIsImxvZyIsImNvbmZpZyIsImZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsIm5hbWUiLCJPYmplY3QiLCJhc3NpZ24iLCJjYWxsYmFjayIsImNoaWxkTm9kZXMiLCJhdHRyaWJ1dGUiLCJyZW5kZXJUcmVlTm9kZXMiLCJ0aXRsZU5vZGUiLCJzdWJ0aXRsZSIsInRpdGxlIiwiY29sb3IiLCJyZW5kZXJUZW1wbGF0ZSIsImJpbmQiLCJtb2RlbERhdGEiLCJjaGVja2VkS2V5cyIsImNoZWNrZWQiLCJoYWxmQ2hlY2tlZCIsImZvckVhY2hUcmVlIiwicHVzaCIsIm5zY1RyZWVSZWYiLCJjdXJyZW50Iiwic3RhdGUiLCJrZXlFbnRpdGllcyIsImhhbGZDaGVja2VkS2V5cyIsImNvbmNhdCIsImNoZWNrZWRLZXlzQWxsIiwidHJlZVByb3BzIiwibmV3TWVudURhdGFzIiwidHJlZURhdGEiLCJvcGVuS2V5cyIsImNoZWNrUHJvcGFnYXRpb24iLCJjaGVja1N0cmljdGx5Iiwic2hvd0ljb24iLCJsYXp5bG9hZCIsImxvYWREYXRhIiwiX29uTG9hZERhdGEiLCJvbkNoZWNrRm4iLCJvbkNoZWNrIiwiZSIsInNldFN0YXRlIiwib25TZWxlY3RGbiIsIm9uU2VsZWN0Iiwic2VsZWN0ZWRLZXlzIiwibm9kZUluZm8iLCJzZWxlY3ROb2RlIiwic2VsZWN0ZWQiLCJzZWxlY3RlZE5vZGVzIiwiZXhwYW5kZWRLZXlzIiwibG9hZGluZyIsImVkaXRhYmxlIiwic2VhcmNoYWJsZSIsImhhbmRsZUFkZE1vZHVsZSIsImhhbmRsZUVkaXRNb2R1bGUiLCJoYW5kbGVEZWxldGVNb2R1bGUiLCJBcnJheSIsImlzQXJyYXkiLCJsZW5ndGgiLCJyZW5kZXJUcmVlTm9kZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsTUFBa0IsT0FBbEI7QUFFQSxPQUFPQyxTQUFQLE1BR08scUJBSFA7QUFJQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0QjtBQUdBLFNBQVNDLEtBQVQsRUFBZ0JDLGVBQWhCLFFBQXVDLGFBQXZDO0FBQ0EsT0FBT0MsVUFBUCxNQUF1QixjQUF2QjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxJQUFRQyxRQUFSLFNBQVFBLFFBQVIsQyxDQUNBOztJQVVNQyxPOzs7OztBQUdKLG1CQUFZQyxNQUFaLEVBQW1CO0FBQUE7O0FBQUE7O0FBQ2pCLCtCQUFNQSxNQUFOOztBQURpQiwrRUFGTlQsS0FBSyxDQUFDVSxTQUFOLEVBRU07O0FBQUEsdUVBMEVELFVBQUNDLElBQUQsRUFBVTtBQUMxQixVQUFNQyxTQUFTLEdBQUcsT0FBS0gsS0FBTCxDQUFXRyxTQUE3QjtBQUNBQSxNQUFBQSxTQUFTLElBQUlBLFNBQVMsQ0FBQ0QsSUFBRCxDQUF0QjtBQUNELEtBN0VrQjs7QUFBQSx3RUErRUEsVUFBQ0EsSUFBRCxFQUFVO0FBQzNCLFVBQU1FLFVBQVUsR0FBRyxPQUFLSixLQUFMLENBQVdJLFVBQTlCO0FBQ0FBLE1BQUFBLFVBQVUsSUFBSUEsVUFBVSxDQUFDRixJQUFELENBQXhCO0FBQ0QsS0FsRmtCOztBQUFBLDBFQW9GRSxVQUFDQSxJQUFELEVBQVU7QUFDN0IsVUFBTUcsWUFBWSxHQUFHLE9BQUtMLEtBQUwsQ0FBV0ssWUFBaEM7QUFDQUEsTUFBQUEsWUFBWSxJQUFJQSxZQUFZLENBQUNILElBQUQsQ0FBNUI7QUFDRCxLQXZGa0I7O0FBQUEsbUVBeUZMLFVBQUNJLFFBQUQ7QUFBQSxhQUNaLElBQUlDLE9BQUosQ0FBa0IsVUFBQ0MsT0FBRCxFQUFhO0FBQzdCLFlBQU1DLEtBQUssaUNBQVg7QUFBQSxZQUNFUCxJQUFJLEdBQUdJLFFBQVEsQ0FBQ04sS0FBVCxDQUFlVSxPQUR4Qjs7QUFFQSxlQUFLQyxLQUFMLENBQVdDLFFBQVgsQ0FBb0JWLElBQXBCLEVBQTBCLFlBQVk7QUFDcENNLFVBQUFBLE9BQU8sQ0FBQ04sSUFBRCxDQUFQOztBQUNBTyxVQUFBQSxLQUFLLENBQUNJLFdBQU47QUFDRCxTQUhEO0FBSUQsT0FQRCxDQURZO0FBQUEsS0F6Rks7O0FBQUEsdUVBeUpELFVBQUNDLElBQUQsRUFBT0MsUUFBUCxFQUFvQjtBQUNwQyxVQUFNQyxTQUFTLEdBQUcsT0FBS2hCLEtBQUwsQ0FBV2dCLFNBQVgsSUFBd0IsRUFBMUM7O0FBQ0EsVUFBYUMsT0FBYixHQUEyQ0QsU0FBM0MsQ0FBUUUsR0FBUjtBQUFBLFVBQXlCQyxhQUF6Qiw0QkFBMkNILFNBQTNDOztBQUNBLFVBQU1JLEtBQUssR0FBR04sSUFBSSxDQUFDTyxHQUFMLENBQVMsVUFBQ0MsSUFBRCxFQUFVO0FBQy9CQyxRQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxNQUFaLEVBQW9CRixJQUFwQjtBQUNBLFlBQUl0QixLQUFLLEdBQUc7QUFBRVUsVUFBQUEsT0FBTyxFQUFFWTtBQUFYLFNBQVo7QUFDQUEsUUFBQUEsSUFBSSxDQUFDRyxNQUFMLENBQVlDLE1BQVosQ0FBbUJDLE9BQW5CLENBQTJCLFVBQUNDLEtBQUQsRUFBVztBQUNwQyxjQUFJQSxLQUFLLENBQUNDLElBQU4sS0FBZSxLQUFmLElBQXdCWixPQUE1QixFQUFxQztBQUNuQ2pCLFlBQUFBLEtBQUssQ0FBQ2tCLEdBQU4sR0FBWUksSUFBSSxDQUFDTCxPQUFELENBQWhCO0FBQ0FLLFlBQUFBLElBQUksQ0FBQ0osR0FBTCxHQUFXSSxJQUFJLENBQUNMLE9BQUQsQ0FBZjtBQUNELFdBSEQsTUFHTztBQUNMakIsWUFBQUEsS0FBSyxDQUFDNEIsS0FBSyxDQUFDQyxJQUFQLENBQUwsR0FBb0JQLElBQUksQ0FBQ00sS0FBSyxDQUFDQyxJQUFQLENBQXhCO0FBQ0Q7QUFDRixTQVBEO0FBUUFDLFFBQUFBLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjL0IsS0FBZCxFQUFxQm1CLGFBQXJCOztBQUNBLFlBQUlKLFFBQUosRUFBYztBQUNaZixVQUFBQSxLQUFLLEdBQUdQLEtBQUssQ0FBQ3VDLFFBQU4sQ0FBZWpCLFFBQWYsa0NBQStCLENBQUNmLEtBQUQsRUFBUXNCLElBQVIsQ0FBL0IsQ0FBUjtBQUNEOztBQUVELFlBQUlBLElBQUksQ0FBQ1csVUFBVCxFQUFxQjtBQUNuQiw4QkFDRSxvQkFBQyxRQUFELGVBQWNqQyxLQUFkO0FBQXFCLFlBQUEsR0FBRyxFQUFFc0IsSUFBSSxDQUFDWSxTQUFMLENBQWVoQjtBQUF6QyxjQUNHLE9BQUtpQixlQUFMLENBQXFCYixJQUFJLENBQUNXLFVBQTFCLEVBQXNDbEIsUUFBdEMsQ0FESCxDQURGO0FBS0Q7O0FBQ0QsWUFBSXFCLFNBQVMsR0FBRyxJQUFoQjs7QUFDQSxZQUFJZCxJQUFJLENBQUNZLFNBQUwsQ0FBZUcsUUFBbkIsRUFBNkI7QUFDM0JELFVBQUFBLFNBQVMsZ0JBQ1A7QUFBTSxZQUFBLEtBQUssRUFBRWQsSUFBSSxDQUFDZ0IsS0FBTCxHQUFhLEdBQWIsR0FBbUJoQixJQUFJLENBQUNZLFNBQUwsQ0FBZUcsUUFBbEMsR0FBNkM7QUFBMUQsMEJBQ0Usa0NBQU9mLElBQUksQ0FBQ2dCLEtBQVosQ0FERixlQUVFO0FBQ0UsWUFBQSxLQUFLLEVBQUU7QUFBRUMsY0FBQUEsS0FBSyxFQUFFO0FBQVQ7QUFEVCw2QkFFTWpCLElBQUksQ0FBQ1ksU0FBTCxDQUFlRyxRQUZyQixZQUZGLENBREY7QUFRRCxTQVRELE1BU087QUFDTEQsVUFBQUEsU0FBUyxnQkFBRztBQUFNLFlBQUEsS0FBSyxFQUFFZCxJQUFJLENBQUNnQjtBQUFsQixhQUEwQmhCLElBQUksQ0FBQ2dCLEtBQS9CLENBQVo7QUFDRDs7QUFDRCw0QkFBTyxvQkFBQyxRQUFELGVBQWN0QyxLQUFkO0FBQXFCLFVBQUEsR0FBRyxFQUFFc0IsSUFBSSxDQUFDWSxTQUFMLENBQWVoQixHQUF6QztBQUE4QyxVQUFBLEtBQUssRUFBRWtCO0FBQXJELFdBQVA7QUFDRCxPQXJDYSxDQUFkO0FBdUNBLGFBQU9oQixLQUFQO0FBQ0QsS0FwTWtCOztBQUVqQixXQUFLb0IsY0FBTCxHQUFzQixPQUFLQSxjQUFMLENBQW9CQyxJQUFwQixnQ0FBdEI7QUFGaUI7QUFHbEI7Ozs7V0FJRCw0QkFBbUJDLFNBQW5CLEVBQW1DO0FBQ2pDLFVBQUlDLFdBQVcsR0FBRztBQUFFQyxRQUFBQSxPQUFPLEVBQUUsRUFBWDtBQUFlQyxRQUFBQSxXQUFXLEVBQUU7QUFBNUIsT0FBbEI7QUFDQXBELE1BQUFBLEtBQUssQ0FBQ3FELFdBQU4sQ0FBa0JKLFNBQWxCLEVBQTZCLFVBQVV4QyxJQUFWLEVBQWdCO0FBQzNDLFlBQUlBLElBQUksQ0FBQzBDLE9BQUwsSUFBZ0IsSUFBcEIsRUFBMEI7QUFDeEJELFVBQUFBLFdBQVcsQ0FBQ0MsT0FBWixDQUFvQkcsSUFBcEIsQ0FBeUI3QyxJQUFJLENBQUNnQyxTQUFMLENBQWVoQixHQUF4QztBQUNEO0FBQ0YsT0FKRDtBQUtBLGFBQU95QixXQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDRTtBQUNBO0FBQ0E7O0FBRUE7QUFDRjtBQUNBO0FBQ0E7Ozs7V0FDRSwwQkFBaUI7QUFDZixVQUFRQSxXQUFSLEdBQXdCLEtBQUtLLFVBQUwsQ0FBZ0JDLE9BQXhDLENBQVFOLFdBQVI7QUFDQSxhQUFPQSxXQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7OztXQUNFLDJCQUFrQjtBQUNoQixrQ0FBcUMsS0FBS0ssVUFBTCxDQUFnQkMsT0FBaEIsQ0FBd0JDLEtBQTdEO0FBQUEsVUFBUVAsV0FBUix5QkFBUUEsV0FBUjtBQUFBLFVBQXFCUSxXQUFyQix5QkFBcUJBLFdBQXJCO0FBQ0EsVUFBSS9CLEtBQUssR0FBRyxFQUFaO0FBQ0F1QixNQUFBQSxXQUFXLENBQUN0QixHQUFaLENBQWdCLFVBQUNILEdBQUQsRUFBUztBQUN2QjtBQUNBLFlBQU1oQixJQUFJLEdBQUdpRCxXQUFXLENBQUNqQyxHQUFELENBQVgsQ0FBaUJoQixJQUE5QjtBQUNBa0IsUUFBQUEsS0FBSyxDQUFDMkIsSUFBTixDQUFXN0MsSUFBSSxDQUFDRixLQUFMLENBQVdVLE9BQXRCO0FBQ0QsT0FKRDtBQUtBLGFBQU9VLEtBQVA7QUFDRDtBQUVEO0FBQ0Y7QUFDQTtBQUNBOzs7O1dBQ0UsNkJBQW9CO0FBQ2xCLG1DQUF5QyxLQUFLNEIsVUFBTCxDQUFnQkMsT0FBaEIsQ0FBd0JDLEtBQWpFO0FBQUEsVUFBUVAsV0FBUiwwQkFBUUEsV0FBUjtBQUFBLFVBQXFCUyxlQUFyQiwwQkFBcUJBLGVBQXJCO0FBQ0EsYUFBT1QsV0FBVyxDQUFDVSxNQUFaLENBQW1CRCxlQUFuQixDQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7OztXQUNFLDhCQUFxQjtBQUNuQixtQ0FDRSxLQUFLSixVQUFMLENBQWdCQyxPQUFoQixDQUF3QkMsS0FEMUI7QUFBQSxVQUFRUCxXQUFSLDBCQUFRQSxXQUFSO0FBQUEsVUFBcUJTLGVBQXJCLDBCQUFxQkEsZUFBckI7QUFBQSxVQUFzQ0QsV0FBdEMsMEJBQXNDQSxXQUF0QztBQUVBLFVBQUlHLGNBQWMsR0FBR1gsV0FBVyxDQUFDVSxNQUFaLENBQW1CRCxlQUFuQixDQUFyQjtBQUNBLFVBQUloQyxLQUFLLEdBQUcsRUFBWjtBQUNBa0MsTUFBQUEsY0FBYyxDQUFDakMsR0FBZixDQUFtQixVQUFDSCxHQUFELEVBQVM7QUFDMUIsWUFBTWhCLElBQUksR0FBR2lELFdBQVcsQ0FBQ2pDLEdBQUQsQ0FBWCxDQUFpQmhCLElBQTlCO0FBQ0FrQixRQUFBQSxLQUFLLENBQUMyQixJQUFOLENBQVc3QyxJQUFJLENBQUNGLEtBQUwsQ0FBV1UsT0FBdEI7QUFDRCxPQUhEO0FBSUEsYUFBT1UsS0FBUDtBQUNELEssQ0FFRDs7OztXQTBCQSwwQkFBcUU7QUFBQTs7QUFBQSxVQUF0RG1DLFNBQXNELHVFQUExQyxFQUEwQztBQUFBLFVBQW5CQyxZQUFtQix1RUFBSixFQUFJOztBQUNuRSxVQUFRQyxRQUFSLEdBQXlDRixTQUF6QyxDQUFRRSxRQUFSO0FBQUEsVUFBa0JDLFFBQWxCLEdBQXlDSCxTQUF6QyxDQUFrQkcsUUFBbEI7QUFBQSxVQUErQjFELEtBQS9CLDRCQUF5Q3VELFNBQXpDOztBQUNBLFVBQU05QyxLQUFLLEdBQUcsSUFBZDs7QUFDQSxVQUFJVCxLQUFLLENBQUMyRCxnQkFBVixFQUE0QjtBQUMxQjNELFFBQUFBLEtBQUssQ0FBQzRELGFBQU4sR0FBc0IsSUFBdEI7QUFDRDs7QUFDRCxVQUFJNUQsS0FBSyxDQUFDNkQsUUFBTixJQUFrQixJQUF0QixFQUE0QjtBQUMxQjdELFFBQUFBLEtBQUssQ0FBQzZELFFBQU4sR0FBaUIsSUFBakI7QUFDRDs7QUFFRCxVQUFNQyxRQUFOLEdBQW1CLEtBQUtuRCxLQUFMLENBQVdjLE1BQTlCLENBQU1xQyxRQUFOOztBQUNBLFVBQUlBLFFBQUosRUFBYztBQUNaOUQsUUFBQUEsS0FBSyxDQUFDK0QsUUFBTixHQUFpQixLQUFLQyxXQUF0QjtBQUNEOztBQUNELFVBQU1DLFNBQVMsR0FBR2pFLEtBQUssQ0FBQ2tFLE9BQXhCOztBQUNBbEUsTUFBQUEsS0FBSyxDQUFDa0UsT0FBTixHQUFnQixVQUFVdkIsV0FBVixFQUF1QndCLENBQXZCLEVBQTBCO0FBQ3hDMUQsUUFBQUEsS0FBSyxDQUFDMkQsUUFBTixDQUFlO0FBQUV6QixVQUFBQSxXQUFXLEVBQUVBO0FBQWYsU0FBZjs7QUFDQWxELFFBQUFBLEtBQUssQ0FBQ3VDLFFBQU4sQ0FBZWlDLFNBQWYsRUFBMEJ4RCxLQUExQixFQUFpQyxDQUFDa0MsV0FBRCxFQUFjd0IsQ0FBZCxDQUFqQztBQUNELE9BSEQ7O0FBSUEsVUFBTUUsVUFBVSxHQUFHckUsS0FBSyxDQUFDc0UsUUFBekI7O0FBQ0F0RSxNQUFBQSxLQUFLLENBQUNzRSxRQUFOLEdBQWlCLFVBQUNDLFlBQUQsRUFBZUMsUUFBZixFQUE0QjtBQUMzQy9FLFFBQUFBLEtBQUssQ0FBQ3VDLFFBQU4sQ0FBZXFDLFVBQWYsRUFBMkI1RCxLQUEzQixFQUFrQyxDQUFDOEQsWUFBRCxFQUFlQyxRQUFmLENBQWxDOztBQUNBLFFBQUEsTUFBSSxDQUFDSixRQUFMLENBQWM7QUFDWkssVUFBQUEsVUFBVSxFQUFFRCxRQUFRLENBQUNFLFFBQVQsR0FBb0JGLFFBQVEsQ0FBQ0csYUFBVCxDQUF1QixDQUF2QixDQUFwQixHQUFnRCxJQURoRDtBQUVaSixVQUFBQSxZQUFZLEVBQVpBO0FBRlksU0FBZDtBQUlELE9BTkQ7O0FBUUEsVUFBSWIsUUFBSixFQUFjO0FBQ1oxRCxRQUFBQSxLQUFLLENBQUM0RSxZQUFOLEdBQXFCbEIsUUFBckI7QUFDRCxPQUZELE1BRU87QUFDTCxlQUFPMUQsS0FBSyxDQUFDNEUsWUFBYjtBQUNEOztBQUNELDBCQUNFO0FBQU0sUUFBQSxRQUFRLEVBQUUsS0FBSzFCLEtBQUwsQ0FBVzJCO0FBQTNCLHNCQUNFO0FBQUssUUFBQSxTQUFTLEVBQUVoRixNQUFNLENBQUMsY0FBRDtBQUF0QixTQUNHLENBQUNZLEtBQUssQ0FBQ1QsS0FBTixDQUFZOEUsUUFBWixJQUF3QnJFLEtBQUssQ0FBQ1QsS0FBTixDQUFZK0UsVUFBckMsa0JBQ0Msb0JBQUMsVUFBRDtBQUNFLFFBQUEsWUFBWSxFQUFFLElBRGhCO0FBRUUsUUFBQSxlQUFlLEVBQUUsS0FBS0MsZUFGeEI7QUFHRSxRQUFBLGdCQUFnQixFQUFFLEtBQUtDLGdCQUh6QjtBQUlFLFFBQUEsa0JBQWtCLEVBQUUsS0FBS0M7QUFKM0IsUUFGSixFQVNHQyxLQUFLLENBQUNDLE9BQU4sQ0FBYzVCLFlBQWQsS0FBK0JBLFlBQVksQ0FBQzZCLE1BQWIsR0FBc0IsQ0FBckQsaUJBQ0M7QUFBTSxRQUFBLEdBQUcsRUFBRSxLQUFLckMsVUFBaEI7QUFBNEIsUUFBQSxTQUFTO0FBQXJDLFNBQTBDaEQsS0FBMUMsR0FDRyxLQUFLbUMsZUFBTCxDQUFxQnFCLFlBQXJCLEVBQW1DeEQsS0FBSyxDQUFDc0YsY0FBekMsQ0FESCxDQVZKLENBREYsQ0FERjtBQW1CRDs7OztFQTFKbUI5RixTOztnQkFBaEJPLE8sa0JBUWlDO0FBQUVZLEVBQUFBLEtBQUssRUFBRTtBQUFULEM7O0FBa012QyxlQUFlWixPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBUcmVlLCBUcmVlUHJvcHMsIFNwaW4sIFRyZWVOb2RlUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgVHJlZVBhbmVsLCB7XHJcbiAgSVRyZWVQYW5lbFByb3BzLFxyXG4gIFRyZWVDb21tb25Qcm9wcyxcclxufSBmcm9tIFwiLi4vY29tbW9uL1RyZWVQYW5lbFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IFJjVHJlZSBmcm9tIFwicmMtdHJlZVwiO1xyXG5pbXBvcnQgeyBEYXRhTm9kZSwgRXZlbnREYXRhTm9kZSB9IGZyb20gXCJyYy10cmVlL2xpYi9pbnRlcmZhY2VcIjtcclxuZXhwb3J0IHsgU3RvcmUsIFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgVHJlZVNlYXJjaCBmcm9tIFwiLi9UcmVlU2VhcmNoXCI7XHJcbmltcG9ydCBnZXRDb25maWcgZnJvbSBcIi4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuY29uc3QgeyBUcmVlTm9kZSB9ID0gVHJlZTtcclxuLy8gaW1wb3J0IFRyZWVOb2RlIGZyb20gXCIuL05zY1RyZWVOb2RlXCI7XHJcbnR5cGUgTnNjRGF0YU5vZGVQcm9wcyA9IERhdGFOb2RlICYgeyBwcm9wczogeyBkYXRhcmVmOiBhbnkgfSB9O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOc2NUcmVlUHJvcHMgZXh0ZW5kcyBJVHJlZVBhbmVsUHJvcHMge1xyXG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcclxuICB0cmVlRGF0YT86IGFueVtdO1xyXG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xyXG4gIG5vZGVQcm9wcz86IFRyZWVOb2RlUHJvcHM7XHJcbn1cclxuXHJcbmNsYXNzIE5zY1RyZWUgZXh0ZW5kcyBUcmVlUGFuZWw8TnNjVHJlZVByb3BzICYgVHJlZUNvbW1vblByb3BzPiB7XHJcbiAgbnNjVHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxSY1RyZWUgJiBUcmVlUHJvcHM+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnJlbmRlclRlbXBsYXRlID0gdGhpcy5yZW5kZXJUZW1wbGF0ZS5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBzdG9yZToge30gfSA9IHsgc3RvcmU6IHt9IH07XHJcblxyXG4gIF9kYXRhVG9DaGVja2VkS2V5cyhtb2RlbERhdGEpOiBhbnkge1xyXG4gICAgbGV0IGNoZWNrZWRLZXlzID0geyBjaGVja2VkOiBbXSwgaGFsZkNoZWNrZWQ6IFtdIH07XHJcbiAgICB1dGlscy5mb3JFYWNoVHJlZShtb2RlbERhdGEsIGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICAgIGlmIChub2RlLmNoZWNrZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIGNoZWNrZWRLZXlzLmNoZWNrZWQucHVzaChub2RlLmF0dHJpYnV0ZS5rZXkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjaGVja2VkS2V5cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagkeaQnOe0olxyXG4gICAqL1xyXG4gIC8vIGhhbmRsZVNlYXJjaCA9ICh2YWx1ZSkgPT4ge1xyXG4gIC8vICAgdGhpcy5zZXRTdGF0ZSh7IHNlYXJjaFRleHQ6IHZhbHVlIH0pO1xyXG4gIC8vIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPlumAieS4reiKgueCuUlE5pWw57uEXHJcbiAgICogQHJldHVybiBTdHJpbmdbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWRLZXlzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQ7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bpgInkuK3oioLngrnlr7nosaHmlbDnu4RcclxuICAgKiBAcmV0dXJuIG5vZGVbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWROb2RlcygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGtleUVudGl0aWVzIH0gPSB0aGlzLm5zY1RyZWVSZWYuY3VycmVudC5zdGF0ZTtcclxuICAgIGxldCBub2RlcyA9IFtdIGFzIE5zY0RhdGFOb2RlUHJvcHNbXTtcclxuICAgIGNoZWNrZWRLZXlzLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIC8vIG5vZGVzLnB1c2goa2V5RW50aXRpZXNba2V5XS5ub2RlLnByb3BzLmRhdGFyZWYpO1xyXG4gICAgICBjb25zdCBub2RlID0ga2V5RW50aXRpZXNba2V5XS5ub2RlIGFzIE5zY0RhdGFOb2RlUHJvcHM7XHJcbiAgICAgIG5vZGVzLnB1c2gobm9kZS5wcm9wcy5kYXRhcmVmKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG5vZGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5YWo6YOo6YCJ5Lit6IqC54K5SUTvvIzljIXlkKvljYrpgInkuK3oioLngrlJRFxyXG4gICAqIEByZXR1cm4gU3RyaW5nW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkQWxsS2V5cygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGhhbGZDaGVja2VkS2V5cyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXMuY29uY2F0KGhhbGZDaGVja2VkS2V5cyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blhajpg6jpgInkuK3oioLngrlOb2Rl5a+56LGh77yM5YyF5ZCr5Y2K6YCJ5Lit6IqC54K5Tm9kZeWvueixoVxyXG4gICAqIEByZXR1cm4gbm9kZVtdXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2tlZEFsbE5vZGVzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cywgaGFsZkNoZWNrZWRLZXlzLCBrZXlFbnRpdGllcyB9ID1cclxuICAgICAgdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICBsZXQgY2hlY2tlZEtleXNBbGwgPSBjaGVja2VkS2V5cy5jb25jYXQoaGFsZkNoZWNrZWRLZXlzKTtcclxuICAgIGxldCBub2RlcyA9IFtdO1xyXG4gICAgY2hlY2tlZEtleXNBbGwubWFwKChrZXkpID0+IHtcclxuICAgICAgY29uc3Qgbm9kZSA9IGtleUVudGl0aWVzW2tleV0ubm9kZSBhcyBOc2NEYXRhTm9kZVByb3BzO1xyXG4gICAgICBub2Rlcy5wdXNoKG5vZGUucHJvcHMuZGF0YXJlZik7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBub2RlcztcclxuICB9XHJcblxyXG4gIC8vIOa3u+WKoOaooeWdl1xyXG4gIGhhbmRsZUFkZE1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVBZGQgPSB0aGlzLnByb3BzLmhhbmRsZUFkZDtcclxuICAgIGhhbmRsZUFkZCAmJiBoYW5kbGVBZGQobm9kZSk7XHJcbiAgfTtcclxuXHJcbiAgaGFuZGxlRWRpdE1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVFZGl0ID0gdGhpcy5wcm9wcy5oYW5kbGVFZGl0O1xyXG4gICAgaGFuZGxlRWRpdCAmJiBoYW5kbGVFZGl0KG5vZGUpO1xyXG4gIH07XHJcblxyXG4gIGhhbmRsZURlbGV0ZU1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVEZWxldGUgPSB0aGlzLnByb3BzLmhhbmRsZURlbGV0ZTtcclxuICAgIGhhbmRsZURlbGV0ZSAmJiBoYW5kbGVEZWxldGUobm9kZSk7XHJcbiAgfTtcclxuXHJcbiAgX29uTG9hZERhdGEgPSAodHJlZU5vZGU6IEV2ZW50RGF0YU5vZGUgJiB7IHByb3BzOiB7IGRhdGFyZWYgfSB9KSA9PlxyXG4gICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcclxuICAgICAgY29uc3QgX3RoaXMgPSB0aGlzLFxyXG4gICAgICAgIG5vZGUgPSB0cmVlTm9kZS5wcm9wcy5kYXRhcmVmO1xyXG4gICAgICB0aGlzLnN0b3JlLmxhenlMb2FkKG5vZGUsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXNvbHZlKG5vZGUpO1xyXG4gICAgICAgIF90aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIHJlbmRlclRlbXBsYXRlKHRyZWVQcm9wcyA9IHt9IGFzIElUcmVlUGFuZWxQcm9wcywgbmV3TWVudURhdGFzID0gW10pIHtcclxuICAgIGNvbnN0IHsgdHJlZURhdGEsIG9wZW5LZXlzLCAuLi5wcm9wcyB9ID0gdHJlZVByb3BzO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKHByb3BzLmNoZWNrUHJvcGFnYXRpb24pIHtcclxuICAgICAgcHJvcHMuY2hlY2tTdHJpY3RseSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMuc2hvd0ljb24gPT0gbnVsbCkge1xyXG4gICAgICBwcm9wcy5zaG93SWNvbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHsgbGF6eWxvYWQgfSA9IHRoaXMuc3RvcmUuY29uZmlnO1xyXG4gICAgaWYgKGxhenlsb2FkKSB7XHJcbiAgICAgIHByb3BzLmxvYWREYXRhID0gdGhpcy5fb25Mb2FkRGF0YTtcclxuICAgIH1cclxuICAgIGNvbnN0IG9uQ2hlY2tGbiA9IHByb3BzLm9uQ2hlY2s7XHJcbiAgICBwcm9wcy5vbkNoZWNrID0gZnVuY3Rpb24gKGNoZWNrZWRLZXlzLCBlKSB7XHJcbiAgICAgIF90aGlzLnNldFN0YXRlKHsgY2hlY2tlZEtleXM6IGNoZWNrZWRLZXlzIH0pO1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoZWNrRm4sIF90aGlzLCBbY2hlY2tlZEtleXMsIGVdKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBvblNlbGVjdEZuID0gcHJvcHMub25TZWxlY3Q7XHJcbiAgICBwcm9wcy5vblNlbGVjdCA9IChzZWxlY3RlZEtleXMsIG5vZGVJbmZvKSA9PiB7XHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uU2VsZWN0Rm4sIF90aGlzLCBbc2VsZWN0ZWRLZXlzLCBub2RlSW5mb10pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBzZWxlY3ROb2RlOiBub2RlSW5mby5zZWxlY3RlZCA/IG5vZGVJbmZvLnNlbGVjdGVkTm9kZXNbMF0gOiBudWxsLFxyXG4gICAgICAgIHNlbGVjdGVkS2V5cyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcGVuS2V5cykge1xyXG4gICAgICBwcm9wcy5leHBhbmRlZEtleXMgPSBvcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlbGV0ZSBwcm9wcy5leHBhbmRlZEtleXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8U3BpbiBzcGlubmluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfT5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibnNjLXRyZWUtYm94XCJdfT5cclxuICAgICAgICAgIHsoX3RoaXMucHJvcHMuZWRpdGFibGUgfHwgX3RoaXMucHJvcHMuc2VhcmNoYWJsZSkgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZVNlYXJjaFxyXG4gICAgICAgICAgICAgIHRyZWVJbnN0YW5jZT17dGhpc31cclxuICAgICAgICAgICAgICBoYW5kbGVBZGRNb2R1bGU9e3RoaXMuaGFuZGxlQWRkTW9kdWxlfVxyXG4gICAgICAgICAgICAgIGhhbmRsZUVkaXRNb2R1bGU9e3RoaXMuaGFuZGxlRWRpdE1vZHVsZX1cclxuICAgICAgICAgICAgICBoYW5kbGVEZWxldGVNb2R1bGU9e3RoaXMuaGFuZGxlRGVsZXRlTW9kdWxlfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtBcnJheS5pc0FycmF5KG5ld01lbnVEYXRhcykgJiYgbmV3TWVudURhdGFzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZSByZWY9e3RoaXMubnNjVHJlZVJlZn0gY2hlY2thYmxlIHsuLi5wcm9wc30+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyVHJlZU5vZGVzKG5ld01lbnVEYXRhcywgcHJvcHMucmVuZGVyVHJlZU5vZGUpfVxyXG4gICAgICAgICAgICA8L1RyZWU+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L1NwaW4+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVHJlZU5vZGVzID0gKGRhdGEsIHJlbmRlckZuKSA9PiB7XHJcbiAgICBjb25zdCBub2RlUHJvcHMgPSB0aGlzLnByb3BzLm5vZGVQcm9wcyB8fCB7fTtcclxuICAgIGNvbnN0IHsga2V5OiBub2RlS2V5LCAuLi5yZXN0Tm9kZVByb3BzIH0gPSBub2RlUHJvcHM7XHJcbiAgICBjb25zdCBub2RlcyA9IGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGNvbnNvbGUubG9nKFwiaXRlbVwiLCBpdGVtKTtcclxuICAgICAgbGV0IHByb3BzID0geyBkYXRhcmVmOiBpdGVtIH0gYXMgVHJlZU5vZGVQcm9wcztcclxuICAgICAgaXRlbS5jb25maWcuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpZWxkLm5hbWUgPT09IFwia2V5XCIgJiYgbm9kZUtleSkge1xyXG4gICAgICAgICAgcHJvcHMua2V5ID0gaXRlbVtub2RlS2V5XTtcclxuICAgICAgICAgIGl0ZW0ua2V5ID0gaXRlbVtub2RlS2V5XTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcHJvcHNbZmllbGQubmFtZV0gPSBpdGVtW2ZpZWxkLm5hbWVdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIE9iamVjdC5hc3NpZ24ocHJvcHMsIHJlc3ROb2RlUHJvcHMpO1xyXG4gICAgICBpZiAocmVuZGVyRm4pIHtcclxuICAgICAgICBwcm9wcyA9IHV0aWxzLmNhbGxiYWNrKHJlbmRlckZuLCB0aGlzLCBbcHJvcHMsIGl0ZW1dKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8VHJlZU5vZGUgey4uLnByb3BzfSBrZXk9e2l0ZW0uYXR0cmlidXRlLmtleX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlclRyZWVOb2RlcyhpdGVtLmNoaWxkTm9kZXMsIHJlbmRlckZuKX1cclxuICAgICAgICAgIDwvVHJlZU5vZGU+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBsZXQgdGl0bGVOb2RlID0gbnVsbDtcclxuICAgICAgaWYgKGl0ZW0uYXR0cmlidXRlLnN1YnRpdGxlKSB7XHJcbiAgICAgICAgdGl0bGVOb2RlID0gKFxyXG4gICAgICAgICAgPHNwYW4gdGl0bGU9e2l0ZW0udGl0bGUgKyBcIu+8iFwiICsgaXRlbS5hdHRyaWJ1dGUuc3VidGl0bGUgKyBcIu+8iVwifT5cclxuICAgICAgICAgICAgPHNwYW4+e2l0ZW0udGl0bGV9PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IGNvbG9yOiBcInJnYmEoMCwwLDAsLjQ1KVwiIH19XHJcbiAgICAgICAgICAgID57YO+8iCR7aXRlbS5hdHRyaWJ1dGUuc3VidGl0bGV977yJYH08L3NwYW4+XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aXRsZU5vZGUgPSA8c3BhbiB0aXRsZT17aXRlbS50aXRsZX0+e2l0ZW0udGl0bGV9PC9zcGFuPjtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gPFRyZWVOb2RlIHsuLi5wcm9wc30ga2V5PXtpdGVtLmF0dHJpYnV0ZS5rZXl9IHRpdGxlPXt0aXRsZU5vZGV9IC8+O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5vZGVzO1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IE5zY1RyZWU7XHJcbiJdfQ==
|
|
315
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RyZWUvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiVHJlZVBhbmVsIiwidXRpbHMiLCJTdG9yZSIsIlN0b3JlQ29uZmlnVHlwZSIsIlRyZWVTZWFyY2giLCJzdHlsZXMiLCJUcmVlTm9kZSIsIk5zY1RyZWUiLCJwcm9wcyIsImNyZWF0ZVJlZiIsIm5vZGUiLCJoYW5kbGVBZGQiLCJoYW5kbGVFZGl0IiwiaGFuZGxlRGVsZXRlIiwidHJlZU5vZGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsIl90aGlzIiwiZGF0YXJlZiIsInN0b3JlIiwibGF6eUxvYWQiLCJmb3JjZVVwZGF0ZSIsImRhdGEiLCJyZW5kZXJGbiIsIm5vZGVQcm9wcyIsIm5vZGVLZXkiLCJrZXkiLCJyZXN0Tm9kZVByb3BzIiwibm9kZXMiLCJtYXAiLCJpdGVtIiwiY29uZmlnIiwiZmllbGRzIiwiZm9yRWFjaCIsImZpZWxkIiwibmFtZSIsIk9iamVjdCIsImFzc2lnbiIsImNhbGxiYWNrIiwidGl0bGVOb2RlIiwidGl0bGUiLCJhdHRyaWJ1dGUiLCJzdWJ0aXRsZSIsImNvbG9yIiwiY2hpbGROb2RlcyIsInJlbmRlclRyZWVOb2RlcyIsInJlbmRlclRlbXBsYXRlIiwiYmluZCIsIm1vZGVsRGF0YSIsImNoZWNrZWRLZXlzIiwiY2hlY2tlZCIsImhhbGZDaGVja2VkIiwiZm9yRWFjaFRyZWUiLCJwdXNoIiwibnNjVHJlZVJlZiIsImN1cnJlbnQiLCJzdGF0ZSIsImtleUVudGl0aWVzIiwiaGFsZkNoZWNrZWRLZXlzIiwiY29uY2F0IiwiY2hlY2tlZEtleXNBbGwiLCJ0cmVlUHJvcHMiLCJuZXdNZW51RGF0YXMiLCJ0cmVlRGF0YSIsIm9wZW5LZXlzIiwiY2hlY2tQcm9wYWdhdGlvbiIsImNoZWNrU3RyaWN0bHkiLCJzaG93SWNvbiIsImxhenlsb2FkIiwibG9hZERhdGEiLCJfb25Mb2FkRGF0YSIsIm9uQ2hlY2tGbiIsIm9uQ2hlY2siLCJlIiwic2V0U3RhdGUiLCJvblNlbGVjdEZuIiwib25TZWxlY3QiLCJzZWxlY3RlZEtleXMiLCJub2RlSW5mbyIsInNlbGVjdE5vZGUiLCJzZWxlY3RlZCIsInNlbGVjdGVkTm9kZXMiLCJleHBhbmRlZEtleXMiLCJsb2FkaW5nIiwiZWRpdGFibGUiLCJzZWFyY2hhYmxlIiwiaGFuZGxlQWRkTW9kdWxlIiwiaGFuZGxlRWRpdE1vZHVsZSIsImhhbmRsZURlbGV0ZU1vZHVsZSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsInJlbmRlclRyZWVOb2RlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxNQUFrQixPQUFsQjtBQUVBLE9BQU9DLFNBQVAsTUFHTyxxQkFIUDtBQUlBLFNBQVNDLEtBQVQsUUFBc0IsdUJBQXRCO0FBR0EsU0FBU0MsS0FBVCxFQUFnQkMsZUFBaEIsUUFBdUMsYUFBdkM7QUFDQSxPQUFPQyxVQUFQLE1BQXVCLGNBQXZCO0FBRUEsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUNBLElBQVFDLFFBQVIsU0FBUUEsUUFBUixDLENBQ0E7O0lBVU1DLE87Ozs7O0FBR0osbUJBQVlDLE1BQVosRUFBbUI7QUFBQTs7QUFBQTs7QUFDakIsK0JBQU1BLE1BQU47O0FBRGlCLCtFQUZOVCxLQUFLLENBQUNVLFNBQU4sRUFFTTs7QUFBQSx1RUEwRUQsVUFBQ0MsSUFBRCxFQUFVO0FBQzFCLFVBQU1DLFNBQVMsR0FBRyxPQUFLSCxLQUFMLENBQVdHLFNBQTdCO0FBQ0FBLE1BQUFBLFNBQVMsSUFBSUEsU0FBUyxDQUFDRCxJQUFELENBQXRCO0FBQ0QsS0E3RWtCOztBQUFBLHdFQStFQSxVQUFDQSxJQUFELEVBQVU7QUFDM0IsVUFBTUUsVUFBVSxHQUFHLE9BQUtKLEtBQUwsQ0FBV0ksVUFBOUI7QUFDQUEsTUFBQUEsVUFBVSxJQUFJQSxVQUFVLENBQUNGLElBQUQsQ0FBeEI7QUFDRCxLQWxGa0I7O0FBQUEsMEVBb0ZFLFVBQUNBLElBQUQs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SixFQVNHQyxLQUFLLENBQUNDLE9BQU4sQ0FBYzVCLFlBQWQsS0FBK0JBLFlBQVksQ0FBQzZCLE1BQWIsR0FBc0IsQ0FBckQsaUJBQ0M7QUFBTSxRQUFBLEdBQUcsRUFBRSxLQUFLckMsVUFBaEI7QUFBNEIsUUFBQSxTQUFTO0FBQXJDLFNBQTBDOUMsS0FBMUMsR0FDRyxLQUFLcUMsZUFBTCxDQUFxQmlCLFlBQXJCLEVBQW1DdEQsS0FBSyxDQUFDb0YsY0FBekMsQ0FESCxDQVZKLENBREYsQ0FERjtBQW1CRDs7OztFQTFKbUI1RixTOztnQkFBaEJPLE8sa0JBUWlDO0FBQUVZLEVBQUFBLEtBQUssRUFBRTtBQUFULEM7O0FBdU12QyxlQUFlWixPQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBUcmVlLCBUcmVlUHJvcHMsIFNwaW4sIFRyZWVOb2RlUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgVHJlZVBhbmVsLCB7XHJcbiAgSVRyZWVQYW5lbFByb3BzLFxyXG4gIFRyZWVDb21tb25Qcm9wcyxcclxufSBmcm9tIFwiLi4vY29tbW9uL1RyZWVQYW5lbFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IFJjVHJlZSBmcm9tIFwicmMtdHJlZVwiO1xyXG5pbXBvcnQgeyBEYXRhTm9kZSwgRXZlbnREYXRhTm9kZSB9IGZyb20gXCJyYy10cmVlL2xpYi9pbnRlcmZhY2VcIjtcclxuZXhwb3J0IHsgU3RvcmUsIFN0b3JlQ29uZmlnVHlwZSB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgVHJlZVNlYXJjaCBmcm9tIFwiLi9UcmVlU2VhcmNoXCI7XHJcbmltcG9ydCBnZXRDb25maWcgZnJvbSBcIi4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuY29uc3QgeyBUcmVlTm9kZSB9ID0gVHJlZTtcclxuLy8gaW1wb3J0IFRyZWVOb2RlIGZyb20gXCIuL05zY1RyZWVOb2RlXCI7XHJcbnR5cGUgTnNjRGF0YU5vZGVQcm9wcyA9IERhdGFOb2RlICYgeyBwcm9wczogeyBkYXRhcmVmOiBhbnkgfSB9O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOc2NUcmVlUHJvcHMgZXh0ZW5kcyBJVHJlZVBhbmVsUHJvcHMge1xyXG4gIGVkaXRhYmxlPzogYm9vbGVhbjtcclxuICB0cmVlRGF0YT86IGFueVtdO1xyXG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xyXG4gIG5vZGVQcm9wcz86IFRyZWVOb2RlUHJvcHM7XHJcbn1cclxuXHJcbmNsYXNzIE5zY1RyZWUgZXh0ZW5kcyBUcmVlUGFuZWw8TnNjVHJlZVByb3BzICYgVHJlZUNvbW1vblByb3BzPiB7XHJcbiAgbnNjVHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxSY1RyZWUgJiBUcmVlUHJvcHM+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnJlbmRlclRlbXBsYXRlID0gdGhpcy5yZW5kZXJUZW1wbGF0ZS5iaW5kKHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBzdG9yZToge30gfSA9IHsgc3RvcmU6IHt9IH07XHJcblxyXG4gIF9kYXRhVG9DaGVja2VkS2V5cyhtb2RlbERhdGEpOiBhbnkge1xyXG4gICAgbGV0IGNoZWNrZWRLZXlzID0geyBjaGVja2VkOiBbXSwgaGFsZkNoZWNrZWQ6IFtdIH07XHJcbiAgICB1dGlscy5mb3JFYWNoVHJlZShtb2RlbERhdGEsIGZ1bmN0aW9uIChub2RlKSB7XHJcbiAgICAgIGlmIChub2RlLmNoZWNrZWQgPT0gdHJ1ZSkge1xyXG4gICAgICAgIGNoZWNrZWRLZXlzLmNoZWNrZWQucHVzaChub2RlLmF0dHJpYnV0ZS5rZXkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjaGVja2VkS2V5cztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOagkeaQnOe0olxyXG4gICAqL1xyXG4gIC8vIGhhbmRsZVNlYXJjaCA9ICh2YWx1ZSkgPT4ge1xyXG4gIC8vICAgdGhpcy5zZXRTdGF0ZSh7IHNlYXJjaFRleHQ6IHZhbHVlIH0pO1xyXG4gIC8vIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPlumAieS4reiKgueCuUlE5pWw57uEXHJcbiAgICogQHJldHVybiBTdHJpbmdbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWRLZXlzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQ7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bpgInkuK3oioLngrnlr7nosaHmlbDnu4RcclxuICAgKiBAcmV0dXJuIG5vZGVbXVxyXG4gICAqL1xyXG4gIGdldENoZWNrZWROb2RlcygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGtleUVudGl0aWVzIH0gPSB0aGlzLm5zY1RyZWVSZWYuY3VycmVudC5zdGF0ZTtcclxuICAgIGxldCBub2RlcyA9IFtdIGFzIE5zY0RhdGFOb2RlUHJvcHNbXTtcclxuICAgIGNoZWNrZWRLZXlzLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIC8vIG5vZGVzLnB1c2goa2V5RW50aXRpZXNba2V5XS5ub2RlLnByb3BzLmRhdGFyZWYpO1xyXG4gICAgICBjb25zdCBub2RlID0ga2V5RW50aXRpZXNba2V5XS5ub2RlIGFzIE5zY0RhdGFOb2RlUHJvcHM7XHJcbiAgICAgIG5vZGVzLnB1c2gobm9kZS5wcm9wcy5kYXRhcmVmKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG5vZGVzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5YWo6YOo6YCJ5Lit6IqC54K5SUTvvIzljIXlkKvljYrpgInkuK3oioLngrlJRFxyXG4gICAqIEByZXR1cm4gU3RyaW5nW11cclxuICAgKi9cclxuICBnZXRDaGVja2VkQWxsS2V5cygpIHtcclxuICAgIGNvbnN0IHsgY2hlY2tlZEtleXMsIGhhbGZDaGVja2VkS2V5cyB9ID0gdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICByZXR1cm4gY2hlY2tlZEtleXMuY29uY2F0KGhhbGZDaGVja2VkS2V5cyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5blhajpg6jpgInkuK3oioLngrlOb2Rl5a+56LGh77yM5YyF5ZCr5Y2K6YCJ5Lit6IqC54K5Tm9kZeWvueixoVxyXG4gICAqIEByZXR1cm4gbm9kZVtdXHJcbiAgICovXHJcbiAgZ2V0Q2hlY2tlZEFsbE5vZGVzKCkge1xyXG4gICAgY29uc3QgeyBjaGVja2VkS2V5cywgaGFsZkNoZWNrZWRLZXlzLCBrZXlFbnRpdGllcyB9ID1cclxuICAgICAgdGhpcy5uc2NUcmVlUmVmLmN1cnJlbnQuc3RhdGU7XHJcbiAgICBsZXQgY2hlY2tlZEtleXNBbGwgPSBjaGVja2VkS2V5cy5jb25jYXQoaGFsZkNoZWNrZWRLZXlzKTtcclxuICAgIGxldCBub2RlcyA9IFtdO1xyXG4gICAgY2hlY2tlZEtleXNBbGwubWFwKChrZXkpID0+IHtcclxuICAgICAgY29uc3Qgbm9kZSA9IGtleUVudGl0aWVzW2tleV0ubm9kZSBhcyBOc2NEYXRhTm9kZVByb3BzO1xyXG4gICAgICBub2Rlcy5wdXNoKG5vZGUucHJvcHMuZGF0YXJlZik7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBub2RlcztcclxuICB9XHJcblxyXG4gIC8vIOa3u+WKoOaooeWdl1xyXG4gIGhhbmRsZUFkZE1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVBZGQgPSB0aGlzLnByb3BzLmhhbmRsZUFkZDtcclxuICAgIGhhbmRsZUFkZCAmJiBoYW5kbGVBZGQobm9kZSk7XHJcbiAgfTtcclxuXHJcbiAgaGFuZGxlRWRpdE1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVFZGl0ID0gdGhpcy5wcm9wcy5oYW5kbGVFZGl0O1xyXG4gICAgaGFuZGxlRWRpdCAmJiBoYW5kbGVFZGl0KG5vZGUpO1xyXG4gIH07XHJcblxyXG4gIGhhbmRsZURlbGV0ZU1vZHVsZSA9IChub2RlKSA9PiB7XHJcbiAgICBjb25zdCBoYW5kbGVEZWxldGUgPSB0aGlzLnByb3BzLmhhbmRsZURlbGV0ZTtcclxuICAgIGhhbmRsZURlbGV0ZSAmJiBoYW5kbGVEZWxldGUobm9kZSk7XHJcbiAgfTtcclxuXHJcbiAgX29uTG9hZERhdGEgPSAodHJlZU5vZGU6IEV2ZW50RGF0YU5vZGUgJiB7IHByb3BzOiB7IGRhdGFyZWYgfSB9KSA9PlxyXG4gICAgbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcclxuICAgICAgY29uc3QgX3RoaXMgPSB0aGlzLFxyXG4gICAgICAgIG5vZGUgPSB0cmVlTm9kZS5wcm9wcy5kYXRhcmVmO1xyXG4gICAgICB0aGlzLnN0b3JlLmxhenlMb2FkKG5vZGUsIGZ1bmN0aW9uICgpIHtcclxuICAgICAgICByZXNvbHZlKG5vZGUpO1xyXG4gICAgICAgIF90aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcblxyXG4gIHJlbmRlclRlbXBsYXRlKHRyZWVQcm9wcyA9IHt9IGFzIElUcmVlUGFuZWxQcm9wcywgbmV3TWVudURhdGFzID0gW10pIHtcclxuICAgIGNvbnN0IHsgdHJlZURhdGEsIG9wZW5LZXlzLCAuLi5wcm9wcyB9ID0gdHJlZVByb3BzO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKHByb3BzLmNoZWNrUHJvcGFnYXRpb24pIHtcclxuICAgICAgcHJvcHMuY2hlY2tTdHJpY3RseSA9IHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMuc2hvd0ljb24gPT0gbnVsbCkge1xyXG4gICAgICBwcm9wcy5zaG93SWNvbiA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHsgbGF6eWxvYWQgfSA9IHRoaXMuc3RvcmUuY29uZmlnO1xyXG4gICAgaWYgKGxhenlsb2FkKSB7XHJcbiAgICAgIHByb3BzLmxvYWREYXRhID0gdGhpcy5fb25Mb2FkRGF0YTtcclxuICAgIH1cclxuICAgIGNvbnN0IG9uQ2hlY2tGbiA9IHByb3BzLm9uQ2hlY2s7XHJcbiAgICBwcm9wcy5vbkNoZWNrID0gZnVuY3Rpb24gKGNoZWNrZWRLZXlzLCBlKSB7XHJcbiAgICAgIF90aGlzLnNldFN0YXRlKHsgY2hlY2tlZEtleXM6IGNoZWNrZWRLZXlzIH0pO1xyXG4gICAgICB1dGlscy5jYWxsYmFjayhvbkNoZWNrRm4sIF90aGlzLCBbY2hlY2tlZEtleXMsIGVdKTtcclxuICAgIH07XHJcbiAgICBjb25zdCBvblNlbGVjdEZuID0gcHJvcHMub25TZWxlY3Q7XHJcbiAgICBwcm9wcy5vblNlbGVjdCA9IChzZWxlY3RlZEtleXMsIG5vZGVJbmZvKSA9PiB7XHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uU2VsZWN0Rm4sIF90aGlzLCBbc2VsZWN0ZWRLZXlzLCBub2RlSW5mb10pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBzZWxlY3ROb2RlOiBub2RlSW5mby5zZWxlY3RlZCA/IG5vZGVJbmZvLnNlbGVjdGVkTm9kZXNbMF0gOiBudWxsLFxyXG4gICAgICAgIHNlbGVjdGVkS2V5cyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChvcGVuS2V5cykge1xyXG4gICAgICBwcm9wcy5leHBhbmRlZEtleXMgPSBvcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGRlbGV0ZSBwcm9wcy5leHBhbmRlZEtleXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8U3BpbiBzcGlubmluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfT5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibnNjLXRyZWUtYm94XCJdfT5cclxuICAgICAgICAgIHsoX3RoaXMucHJvcHMuZWRpdGFibGUgfHwgX3RoaXMucHJvcHMuc2VhcmNoYWJsZSkgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZVNlYXJjaFxyXG4gICAgICAgICAgICAgIHRyZWVJbnN0YW5jZT17dGhpc31cclxuICAgICAgICAgICAgICBoYW5kbGVBZGRNb2R1bGU9e3RoaXMuaGFuZGxlQWRkTW9kdWxlfVxyXG4gICAgICAgICAgICAgIGhhbmRsZUVkaXRNb2R1bGU9e3RoaXMuaGFuZGxlRWRpdE1vZHVsZX1cclxuICAgICAgICAgICAgICBoYW5kbGVEZWxldGVNb2R1bGU9e3RoaXMuaGFuZGxlRGVsZXRlTW9kdWxlfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtBcnJheS5pc0FycmF5KG5ld01lbnVEYXRhcykgJiYgbmV3TWVudURhdGFzLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICA8VHJlZSByZWY9e3RoaXMubnNjVHJlZVJlZn0gY2hlY2thYmxlIHsuLi5wcm9wc30+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyVHJlZU5vZGVzKG5ld01lbnVEYXRhcywgcHJvcHMucmVuZGVyVHJlZU5vZGUpfVxyXG4gICAgICAgICAgICA8L1RyZWU+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L1NwaW4+XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVHJlZU5vZGVzID0gKGRhdGEsIHJlbmRlckZuKSA9PiB7XHJcbiAgICBjb25zdCBub2RlUHJvcHMgPSB0aGlzLnByb3BzLm5vZGVQcm9wcyB8fCB7fTtcclxuICAgIGNvbnN0IHsga2V5OiBub2RlS2V5LCAuLi5yZXN0Tm9kZVByb3BzIH0gPSBub2RlUHJvcHM7XHJcbiAgICBjb25zdCBub2RlcyA9IGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgIGxldCBwcm9wcyA9IHsgZGF0YXJlZjogaXRlbSB9IGFzIFRyZWVOb2RlUHJvcHM7XHJcbiAgICAgIGl0ZW0uY29uZmlnLmZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xyXG4gICAgICAgIGlmIChmaWVsZC5uYW1lID09PSBcImtleVwiICYmIG5vZGVLZXkpIHtcclxuICAgICAgICAgIHByb3BzLmtleSA9IGl0ZW1bbm9kZUtleV07XHJcbiAgICAgICAgICBpdGVtLmtleSA9IGl0ZW1bbm9kZUtleV07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHByb3BzW2ZpZWxkLm5hbWVdID0gaXRlbVtmaWVsZC5uYW1lXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBPYmplY3QuYXNzaWduKHByb3BzLCByZXN0Tm9kZVByb3BzKTtcclxuICAgICAgaWYgKHJlbmRlckZuKSB7XHJcbiAgICAgICAgcHJvcHMgPSB1dGlscy5jYWxsYmFjayhyZW5kZXJGbiwgdGhpcywgW3Byb3BzLCBpdGVtXSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGxldCB0aXRsZU5vZGUgPSBudWxsO1xyXG4gICAgICBpZiAodHlwZW9mIGl0ZW0udGl0bGUgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGlmIChpdGVtLmF0dHJpYnV0ZS5zdWJ0aXRsZSkge1xyXG4gICAgICAgICAgdGl0bGVOb2RlID0gKFxyXG4gICAgICAgICAgICA8c3BhbiB0aXRsZT17aXRlbS50aXRsZSArIFwi77yIXCIgKyBpdGVtLmF0dHJpYnV0ZS5zdWJ0aXRsZSArIFwi77yJXCJ9PlxyXG4gICAgICAgICAgICAgIDxzcGFuPntpdGVtLnRpdGxlfTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgY29sb3I6IFwicmdiYSgwLDAsMCwuNDUpXCIgfX1cclxuICAgICAgICAgICAgICA+e2DvvIgke2l0ZW0uYXR0cmlidXRlLnN1YnRpdGxlfe+8iWB9PC9zcGFuPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aXRsZU5vZGUgPSA8c3BhbiB0aXRsZT17aXRlbS50aXRsZX0+e2l0ZW0udGl0bGV9PC9zcGFuPjtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGl0bGVOb2RlID0gaXRlbS50aXRsZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8VHJlZU5vZGUgey4uLnByb3BzfSBrZXk9e2l0ZW0uYXR0cmlidXRlLmtleX0gdGl0bGU9e3RpdGxlTm9kZX0+XHJcbiAgICAgICAgICAgIHt0aGlzLnJlbmRlclRyZWVOb2RlcyhpdGVtLmNoaWxkTm9kZXMsIHJlbmRlckZuKX1cclxuICAgICAgICAgIDwvVHJlZU5vZGU+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIDxUcmVlTm9kZSB7Li4ucHJvcHN9IGtleT17aXRlbS5hdHRyaWJ1dGUua2V5fSB0aXRsZT17dGl0bGVOb2RlfSAvPjtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBub2RlcztcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBOc2NUcmVlO1xyXG4iXX0=
|
package/lib/treeUtils.js
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
7
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
8
|
+
|
|
9
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
10
|
+
|
|
11
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
12
|
+
|
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
14
|
+
|
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
16
|
+
|
|
17
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
18
|
+
|
|
1
19
|
import isEqual from "lodash/isEqual";
|
|
2
20
|
import React from "react";
|
|
3
21
|
/**
|
|
@@ -91,8 +109,10 @@ export function getEffectiveMenuDatas(menusDatas, keys, searchText) {
|
|
|
91
109
|
var flattenMenuData = function flattenMenuData(data) {
|
|
92
110
|
for (var i = 0; i < data.length; i++) {
|
|
93
111
|
var item = data[i];
|
|
112
|
+
console.log('item', _objectSpread({}, item));
|
|
94
113
|
var isExist = keys[item.get(fieldOption.keyField)] != null;
|
|
95
114
|
var title = String(item.get(fieldOption.titleField));
|
|
115
|
+
console.log('title', title);
|
|
96
116
|
|
|
97
117
|
if (!isExist) {
|
|
98
118
|
data.splice(i, 1); // 将使后面的元素依次前移,数组长度减1
|
|
@@ -108,7 +128,9 @@ export function getEffectiveMenuDatas(menusDatas, keys, searchText) {
|
|
|
108
128
|
color: color
|
|
109
129
|
}
|
|
110
130
|
}, searchText);
|
|
111
|
-
item.set(fieldOption.titleField, /*#__PURE__*/React.createElement("span",
|
|
131
|
+
item.set(fieldOption.titleField, /*#__PURE__*/React.createElement("span", {
|
|
132
|
+
title: title
|
|
133
|
+
}, before, font, after));
|
|
112
134
|
}
|
|
113
135
|
|
|
114
136
|
if (isExist && item.childNodes) {
|
|
@@ -140,6 +162,7 @@ export function getSearchMenuDatas(thiz, searchText) {
|
|
|
140
162
|
var cachekey = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : "nsc_menu_cache";
|
|
141
163
|
var breadcrumbMap = {},
|
|
142
164
|
menusDatas = thiz.getModel().getCloneModelData();
|
|
165
|
+
console.log('util', _toConsumableArray(menusDatas));
|
|
143
166
|
|
|
144
167
|
if (thiz) {
|
|
145
168
|
if (!thiz[cachekey]) thiz[cachekey] = {};
|
|
@@ -154,12 +177,14 @@ export function getSearchMenuDatas(thiz, searchText) {
|
|
|
154
177
|
breadcrumbMap = getBreadcrumbMap(menusDatas, fieldOption);
|
|
155
178
|
}
|
|
156
179
|
|
|
180
|
+
console.log('breadcrumbMap', breadcrumbMap);
|
|
157
181
|
var keys = getEffectiveNodeKeys(breadcrumbMap, searchText, fieldOption);
|
|
158
182
|
var datas = getEffectiveMenuDatas(menusDatas, keys, color ? searchText : null, fieldOption, color);
|
|
159
183
|
var openKeys = [];
|
|
160
184
|
Object.keys(keys).forEach(function (key, i) {
|
|
161
185
|
openKeys.push(key);
|
|
162
186
|
});
|
|
187
|
+
console.log('123121', datas);
|
|
163
188
|
return {
|
|
164
189
|
openKeys: openKeys,
|
|
165
190
|
treeDatas: datas
|
|
@@ -171,4 +196,4 @@ export default {
|
|
|
171
196
|
getEffectiveMenuDatas: getEffectiveMenuDatas,
|
|
172
197
|
getSearchMenuDatas: getSearchMenuDatas
|
|
173
198
|
};
|
|
174
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL3RyZWVVdGlscy50c3giXSwibmFtZXMiOlsiaXNFcXVhbCIsIlJlYWN0IiwiZ2V0QnJlYWRjcnVtYk1hcCIsIm1lbnVEYXRhcyIsImZpZWxkT3B0aW9uIiwia2V5RmllbGQiLCJ0aXRsZUZpZWxkIiwicGF0aHNGaWVsZCIsInRpdGxlTWFwIiwiZmxhdHRlbk1lbnVEYXRhIiwiZGF0YSIsInBhdGhzIiwiZm9yRWFjaCIsIm1lbnVJdGVtIiwic2V0IiwiY29uY2F0IiwiZ2V0IiwiY2hpbGROb2RlcyIsImdldEVmZmVjdGl2ZU5vZGVLZXlzIiwiYnJlYWRjcnVtYk1hcCIsInNlYXJjaFRleHQiLCJrZXlzIiwiT2JqZWN0Iiwia2V5IiwiaSIsIml0ZW0iLCJTdHJpbmciLCJpbmRleE9mIiwibWFwIiwidiIsImdldEVmZmVjdGl2ZU1lbnVEYXRhcyIsIm1lbnVzRGF0YXMiLCJjb2xvciIsIm5ld01lbnVzRGF0YXMiLCJsZW5ndGgiLCJpc0V4aXN0IiwidGl0bGUiLCJzcGxpY2UiLCJzdGFydEluZGV4IiwiZW5kSW5kZXgiLCJiZWZvcmUiLCJzdWJzdHJpbmciLCJhZnRlciIsImZvbnQiLCJnZXRTZWFyY2hNZW51RGF0YXMiLCJ0aGl6IiwiY2FjaGVrZXkiLCJnZXRNb2RlbCIsImdldENsb25lTW9kZWxEYXRhIiwidHJlZURhdGFzIiwiZGF0YXMiLCJvcGVuS2V5cyIsInB1c2giXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLE9BQVAsTUFBb0IsZ0JBQXBCO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixPQUFsQjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBQ0EsT0FBTyxTQUFTQyxnQkFBVCxDQUNMQyxTQURLLEVBR0w7QUFBQSxNQURBQyxXQUNBLHVFQURjO0FBQUVDLElBQUFBLFFBQVEsRUFBRSxLQUFaO0FBQW1CQyxJQUFBQSxVQUFVLEVBQUUsT0FBL0I7QUFBd0NDLElBQUFB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ZTNCLGFBQS9CO0FBQ0Q7QUFDRixHQVhELE1BV087QUFDTEEsSUFBQUEsYUFBYSxHQUFHakIsZ0JBQWdCLENBQUM2QixVQUFELEVBQWEzQixXQUFiLENBQWhDO0FBQ0Q7O0FBQ0QsTUFBTWlCLElBQUksR0FBR0gsb0JBQW9CLENBQUNDLGFBQUQsRUFBZ0JDLFVBQWhCLEVBQTRCaEIsV0FBNUIsQ0FBakM7QUFDQSxNQUFNOEMsS0FBSyxHQUFHcEIscUJBQXFCLENBQ2pDQyxVQURpQyxFQUVqQ1YsSUFGaUMsRUFHakNXLEtBQUssR0FBR1osVUFBSCxHQUFnQixJQUhZLEVBSWpDaEIsV0FKaUMsRUFLakM0QixLQUxpQyxDQUFuQztBQU9BLE1BQUltQixRQUFRLEdBQUcsRUFBZjtBQUNBN0IsRUFBQUEsTUFBTSxDQUFDRCxJQUFQLENBQVlBLElBQVosRUFBa0JULE9BQWxCLENBQTBCLFVBQUNXLEdBQUQsRUFBTUMsQ0FBTixFQUFZO0FBQ3BDMkIsSUFBQUEsUUFBUSxDQUFDQyxJQUFULENBQWM3QixHQUFkO0FBQ0QsR0FGRDtBQUdBLFNBQU87QUFDTDRCLElBQUFBLFFBQVEsRUFBRUEsUUFETDtBQUVMRixJQUFBQSxTQUFTLEVBQUVDO0FBRk4sR0FBUDtBQUlEO0FBRUQsZUFBZTtBQUNiaEQsRUFBQUEsZ0JBQWdCLEVBQWhCQSxnQkFEYTtBQUViZ0IsRUFBQUEsb0JBQW9CLEVBQXBCQSxvQkFGYTtBQUdiWSxFQUFBQSxxQkFBcUIsRUFBckJBLHFCQUhhO0FBSWJjLEVBQUFBLGtCQUFrQixFQUFsQkE7QUFKYSxDQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzRXF1YWwgZnJvbSBcImxvZGFzaC9pc0VxdWFsXCI7XHJcbmltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuXHJcbi8qKlxyXG4gKiDojrflj5bpnaLljIXlsZHmmKDlsIRcclxuICoge1xyXG4gKiAgICBrZXkxOntwYXRoczpbJ2tleTEnXSx0aXRsZTon57O757uf566h55CGJ31cclxuICogICAga2V5Mjp7cGF0aHM6WydrZXkxJywna2V5MiddLHRpdGxlOiflip/og73phY3nva4nfVxyXG4gKiAgICBrZXkzOntwYXRoczpbJ2tleTEnLCdrZXkyJywna2V5MyddLHRpdGxlOifoj5zljZXnrqHnkIYnLHBhdGg6Jy9wbGF0Zm9ybS9tZW51J31cclxuICogfVxyXG4gKiBAcGFyYW0ge29iamVjdFtdfSBtZW51RGF0YXMgIOagkeW9oue7k+aehOaVsOaNrlxyXG4gKiBAcGFyYW0ge09iamVjdH0gZmllbGRPcHRpb24gIOWFs+mUruWtl+auteWQjeensO+8jOe8uuecgXsga2V5RmllbGQ6ICdrZXknLCB0aXRsZUZpZWxkOiAndGl0bGUnLHBhdGhzRmllbGQ6J3BhdGhzJyB9XHJcbiAqIEByZXR1cm5zIHtNYXB9XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0QnJlYWRjcnVtYk1hcChcclxuICBtZW51RGF0YXMsXHJcbiAgZmllbGRPcHRpb24gPSB7IGtleUZpZWxkOiBcImtleVwiLCB0aXRsZUZpZWxkOiBcInRpdGxlXCIsIHBhdGhzRmllbGQ6IFwicGF0aHNcIiB9XHJcbikge1xyXG4gIGNvbnN0IHRpdGxlTWFwID0ge307XHJcbiAgY29uc3QgZmxhdHRlbk1lbnVEYXRhID0gKGRhdGEsIHBhdGhzID0gW10pID0+IHtcclxuICAgIGRhdGEuZm9yRWFjaCgobWVudUl0ZW0pID0+IHtcclxuICAgICAgbWVudUl0ZW0uc2V0KFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLnBhdGhzRmllbGQsXHJcbiAgICAgICAgcGF0aHMuY29uY2F0KG1lbnVJdGVtLmdldChmaWVsZE9wdGlvbi5rZXlGaWVsZCkpXHJcbiAgICAgICk7XHJcbiAgICAgIGlmIChtZW51SXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgZmxhdHRlbk1lbnVEYXRhKFxyXG4gICAgICAgICAgbWVudUl0ZW0uY2hpbGROb2RlcyxcclxuICAgICAgICAgIG1lbnVJdGVtLmdldChmaWVsZE9wdGlvbi5wYXRoc0ZpZWxkKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKG1lbnVJdGVtLmdldChmaWVsZE9wdGlvbi5rZXlGaWVsZCkpIHtcclxuICAgICAgICB0aXRsZU1hcFttZW51SXRlbS5nZXQoZmllbGRPcHRpb24ua2V5RmllbGQpXSA9IG1lbnVJdGVtO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9O1xyXG4gIGZsYXR0ZW5NZW51RGF0YShtZW51RGF0YXMpO1xyXG4gIHJldHVybiB0aXRsZU1hcDtcclxufVxyXG5cclxuLyoqXHJcbiAqIOWIpOaWreiPnOWNlU1hcOWvueixoeS4reespuWQiOadoeS7tueahOWvueixoVxyXG4gKiAgICBrZXkxOntwYXRoczpbJ2tleTEnXSx0aXRsZTon57O757uf566h55CGJ31cclxuICogICAga2V5Mjp7cGF0aHM6WydrZXkxJywna2V5MiddLHRpdGxlOiflip/og73phY3nva4nfVxyXG4gKiAgICBrZXkzOntwYXRoczpbJ2tleTEnLCdrZXkyJywna2V5MyddLHRpdGxlOifoj5zljZXnrqHnkIYnLHBhdGg6Jy9wbGF0Zm9ybS9tZW51J31cclxuICog5pCc57Si44CK566h55CG44CL5ZCO6L+U5ZueXHJcbiAqICAgIHtrZXkxOidrZXkxJyxrZXkyOidrZXkyJyxrZXkzOidrZXkzJ31cclxuICogQHBhcmFtIHtNYXA8U3RyaW5nLE9iamVjdD59IGJyZWFkY3J1bWJNYXAgIOiPnOWNlemdouWMheWxkVxyXG4gKiBAcGFyYW0geyBTdHJpbmcgfSBzZWFyY2hUZXh0ICDmkJzntKLlhoXlrrlcclxuICogQHBhcmFtIHtPYmplY3R9IGZpZWxkT3B0aW9uICDlhbPplK7lrZfmrrXlkI3np7DvvIznvLrnnIF7IGtleUZpZWxkOiAna2V5JywgdGl0bGVGaWVsZDogJ3RpdGxlJyxwYXRoc0ZpZWxkOidwYXRocycgfVxyXG4gKiBAcmV0dXJucyB7TWFwPFN0cmluZyxTdHJpbmc+fVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEVmZmVjdGl2ZU5vZGVLZXlzKFxyXG4gIGJyZWFkY3J1bWJNYXAsXHJcbiAgc2VhcmNoVGV4dCxcclxuICBmaWVsZE9wdGlvbiA9IHsga2V5RmllbGQ6IFwia2V5XCIsIHRpdGxlRmllbGQ6IFwidGl0bGVcIiwgcGF0aHNGaWVsZDogXCJwYXRoc1wiIH1cclxuKSB7XHJcbiAgY29uc3Qga2V5cyA9IHt9O1xyXG4gIE9iamVjdC5rZXlzKGJyZWFkY3J1bWJNYXApLmZvckVhY2goKGtleSwgaSkgPT4ge1xyXG4gICAgY29uc3QgaXRlbSA9IGJyZWFkY3J1bWJNYXBba2V5XTtcclxuICAgIGlmIChTdHJpbmcoaXRlbS5nZXQoZmllbGRPcHRpb24udGl0bGVGaWVsZCkpLmluZGV4T2Yoc2VhcmNoVGV4dCkgIT0gLTEpIHtcclxuICAgICAgY29uc3QgcGF0aHMgPSBpdGVtLmdldChmaWVsZE9wdGlvbi5wYXRoc0ZpZWxkKTtcclxuICAgICAgcGF0aHMubWFwKCh2KSA9PiB7XHJcbiAgICAgICAga2V5c1t2XSA9IHY7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH0pO1xyXG4gIHJldHVybiBrZXlzO1xyXG59XHJcblxyXG4vKipcclxuICog6I635Y+W6L+H5ruk5ZCO5pi+56S655qE6I+c5Y2V5pWw5o2uXHJcbiAqIEBwYXJhbSB7T2JqZWN0W119IG1lbnVzRGF0YXMgIOagkeW9oue7k+aehOaVsOaNrlxyXG4gKiBAcGFyYW0ge1N0cmluZ1tdfSBrZXlzICDmnInmlYjnmoToj5zljZXoioLngrlcclxuICogQHBhcmFtIHtTdHJpbmd9IHNlYXJjaFRleHQgIOaQnOe0ouWGheWuue+8jOmdnuW/heWhq1xyXG4gKiBAcGFyYW0ge09iamVjdH0gZmllbGRPcHRpb24gIOWFs+mUruWtl+auteWQjeensO+8jOe8uuecgXsga2V5RmllbGQ6ICdrZXknLCB0aXRsZUZpZWxkOiAndGl0bGUnLHBhdGhzRmllbGQ6J3BhdGhzJyB9XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2xvciAgIOaQnOe0ouWGheWuuemHjeeCueminOiJsuagh+ivhu+8jOmdnuW/heWhq++8jOe8uuecgXJlZFxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEVmZmVjdGl2ZU1lbnVEYXRhcyhcclxuICBtZW51c0RhdGFzLFxyXG4gIGtleXMsXHJcbiAgc2VhcmNoVGV4dCxcclxuICBmaWVsZE9wdGlvbiA9IHsga2V5RmllbGQ6IFwia2V5XCIsIHRpdGxlRmllbGQ6IFwidGl0bGVcIiwgcGF0aHNGaWVsZDogXCJwYXRoc1wiIH0sXHJcbiAgY29sb3IgPSBcInJlZFwiXHJcbikge1xyXG4gIGNvbnN0IG5ld01lbnVzRGF0YXMgPSBbXTtcclxuICBjb25zdCBmbGF0dGVuTWVudURhdGEgPSAoZGF0YSkgPT4ge1xyXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSBkYXRhW2ldO1xyXG4gICAgICBjb25zdCBpc0V4aXN0ID0ga2V5c1tpdGVtLmdldChmaWVsZE9wdGlvbi5rZXlGaWVsZCldICE9IG51bGw7XHJcbiAgICAgIGNvbnN0IHRpdGxlID0gU3RyaW5nKGl0ZW0uZ2V0KGZpZWxkT3B0aW9uLnRpdGxlRmllbGQpKTtcclxuICAgICAgaWYgKCFpc0V4aXN0KSB7XHJcbiAgICAgICAgZGF0YS5zcGxpY2UoaSwgMSk7IC8vIOWwhuS9v+WQjumdoueahOWFg+e0oOS+neasoeWJjeenu++8jOaVsOe7hOmVv+W6puWHjzFcclxuICAgICAgICBpLS07IC8vIOWmguaenOS4jeWHj++8jOWwhua8j+aOieS4gOS4quWFg+e0oFxyXG4gICAgICB9IGVsc2UgaWYgKHNlYXJjaFRleHQgJiYgdGl0bGUuaW5kZXhPZihzZWFyY2hUZXh0KSAhPSAtMSkge1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0SW5kZXggPSB0aXRsZS5pbmRleE9mKHNlYXJjaFRleHQpO1xyXG4gICAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIHNlYXJjaFRleHQubGVuZ3RoO1xyXG4gICAgICAgIGNvbnN0IGJlZm9yZSA9IHRpdGxlLnN1YnN0cmluZygwLCBzdGFydEluZGV4KTtcclxuICAgICAgICBjb25zdCBhZnRlciA9IHRpdGxlLnN1YnN0cmluZyhlbmRJbmRleCwgdGl0bGUubGVuZ3RoKTtcclxuICAgICAgICBjb25zdCBmb250OiBSZWFjdC5SZWFjdEVsZW1lbnQgPSAoXHJcbiAgICAgICAgICA8c3BhbiBzdHlsZT17eyBjb2xvciB9fT57c2VhcmNoVGV4dH08L3NwYW4+XHJcbiAgICAgICAgKTtcclxuICAgICAgICBpdGVtLnNldChcclxuICAgICAgICAgIGZpZWxkT3B0aW9uLnRpdGxlRmllbGQsXHJcbiAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAge2JlZm9yZX1cclxuICAgICAgICAgICAge2ZvbnR9XHJcbiAgICAgICAgICAgIHthZnRlcn1cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpc0V4aXN0ICYmIGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgIGZsYXR0ZW5NZW51RGF0YShpdGVtLmNoaWxkTm9kZXMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICBmbGF0dGVuTWVudURhdGEobWVudXNEYXRhcyk7XHJcbiAgcmV0dXJuIG1lbnVzRGF0YXM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDmkJzntKLoj5zljZXmlbDmja7vvIznp7vpmaTkuI3nrKblkIjnmoToj5zljZXlkozkuI3pnIDopoHnmoTnm67lvZXnu5PmnoTvvIznvLrnnIHnrKblkIjlhoXlrrnmoIfnuqJcclxuICogQHBhcmFtIHtPYmplY3R9IHRoaXogIG1lbnXoj5zljZXlr7nosaHvvIznvJPlrZjml7blgJnlrZjlgqjmlbDmja7kvb/nlKhcclxuICogQHBhcmFtIHtTdHJpbmd9IHNlYXJjaFRleHQgIOaQnOe0ouWGheWuuVxyXG4gKiBAcGFyYW0ge09iamVjdH0gZmllbGRPcHRpb24gIOWFs+mUruWtl+auteWQjeensO+8jOe8uuecgXsga2V5RmllbGQ6ICdrZXknLCB0aXRsZUZpZWxkOiAndGl0bGUnLHBhdGhzRmllbGQ6J3BhdGhzJyB9XHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBjb2xvciAgIOaQnOe0ouWGheWuuemHjeeCueminOiJsuagh+ivhu+8jOmdnuW/heWhq++8jOe8uuecgXJlZCzlvZNmYWxzZeaXtuWAme+8jOS4lOS4jemHjeeCueagh+azqOminOiJslxyXG4gKiBAcGFyYW0ge1N0cmluZ30gY2FjaGVrZXkgICDnvJPlrZjmlbDmja7lrZjlgqhrZXnvvIznvLrnnIFuc2NfbWVudV9jYWNoZVxyXG4gKiBAcmV0dXJucyB7Kn0ge29wZW5LZXlzOnt9LHRyZWVEYXRhczpbXX1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRTZWFyY2hNZW51RGF0YXMoXHJcbiAgdGhpeixcclxuICBzZWFyY2hUZXh0LFxyXG4gIGZpZWxkT3B0aW9uID0geyBrZXlGaWVsZDogXCJrZXlcIiwgdGl0bGVGaWVsZDogXCJ0aXRsZVwiLCBwYXRoc0ZpZWxkOiBcInBhdGhzXCIgfSxcclxuICBjb2xvciA9IFwicmVkXCIsXHJcbiAgY2FjaGVrZXkgPSBcIm5zY19tZW51X2NhY2hlXCJcclxuKSB7XHJcbiAgbGV0IGJyZWFkY3J1bWJNYXAgPSB7fSxcclxuICAgIG1lbnVzRGF0YXMgPSB0aGl6LmdldE1vZGVsKCkuZ2V0Q2xvbmVNb2RlbERhdGEoKTtcclxuICBpZiAodGhpeikge1xyXG4gICAgaWYgKCF0aGl6W2NhY2hla2V5XSkgdGhpeltjYWNoZWtleV0gPSB7fTtcclxuICAgIGlmICghaXNFcXVhbChtZW51c0RhdGFzLCB0aGl6W2NhY2hla2V5XS50cmVlRGF0YXMpKSB7XHJcbiAgICAgIHRoaXpbY2FjaGVrZXldLmJyZWFkY3J1bWJNYXAgPSBicmVhZGNydW1iTWFwID0gZ2V0QnJlYWRjcnVtYk1hcChcclxuICAgICAgICBtZW51c0RhdGFzLFxyXG4gICAgICAgIGZpZWxkT3B0aW9uXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXpbY2FjaGVrZXldLnRyZWVEYXRhcyA9IG1lbnVzRGF0YXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBicmVhZGNydW1iTWFwID0gdGhpeltjYWNoZWtleV0uYnJlYWRjcnVtYk1hcDtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgYnJlYWRjcnVtYk1hcCA9IGdldEJyZWFkY3J1bWJNYXAobWVudXNEYXRhcywgZmllbGRPcHRpb24pO1xyXG4gIH1cclxuICBjb25zdCBrZXlzID0gZ2V0RWZmZWN0aXZlTm9kZUtleXMoYnJlYWRjcnVtYk1hcCwgc2VhcmNoVGV4dCwgZmllbGRPcHRpb24pO1xyXG4gIGNvbnN0IGRhdGFzID0gZ2V0RWZmZWN0aXZlTWVudURhdGFzKFxyXG4gICAgbWVudXNEYXRhcyxcclxuICAgIGtleXMsXHJcbiAgICBjb2xvciA/IHNlYXJjaFRleHQgOiBudWxsLFxyXG4gICAgZmllbGRPcHRpb24sXHJcbiAgICBjb2xvclxyXG4gICk7XHJcbiAgbGV0IG9wZW5LZXlzID0gW107XHJcbiAgT2JqZWN0LmtleXMoa2V5cykuZm9yRWFjaCgoa2V5LCBpKSA9PiB7XHJcbiAgICBvcGVuS2V5cy5wdXNoKGtleSk7XHJcbiAgfSk7XHJcbiAgcmV0dXJuIHtcclxuICAgIG9wZW5LZXlzOiBvcGVuS2V5cyxcclxuICAgIHRyZWVEYXRhczogZGF0YXMsXHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG4gIGdldEJyZWFkY3J1bWJNYXAsXHJcbiAgZ2V0RWZmZWN0aXZlTm9kZUtleXMsXHJcbiAgZ2V0RWZmZWN0aXZlTWVudURhdGFzLFxyXG4gIGdldFNlYXJjaE1lbnVEYXRhcyxcclxufTtcclxuIl19
|
|
199
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jb21wb25lbnRzL3RyZWVVdGlscy50c3giXSwibmFtZXMiOlsiaXNFcXVhbCIsIlJlYWN0IiwiZ2V0QnJlYWRjcnVtYk1hcCIsIm1lbnVEYXRhcyIsImZpZWxkT3B0aW9uIiwia2V5RmllbGQiLCJ0aXRsZUZpZWxkIiwicGF0aHNGaWVsZCIsInRpdGxlTWFwIiwiZmxhdHRlbk1lbnVEYXRhIiwiZGF0YSIsInBhdGhzIiwiZm9yRWFjaCIsIm1lbnVJdGVtIiwic2V0IiwiY29uY2F0IiwiZ2V0IiwiY2hpbGROb2RlcyIsImdldEVmZmVjdGl2ZU5vZGVLZXlzIiwiYnJlYWRjcnVtYk1hcCIsInNlYXJjaFRleHQiLCJrZXlzIiwiT2JqZWN0Iiwia2V5IiwiaSIsIml0ZW0iLCJTdHJpbmciLCJpbmRleE9mIiwibWFwIiwidiIsImdldEVmZmVjdGl2ZU1lbnVEYXRhcyIsIm1lbnVzRGF0YXMiLCJjb2xvciIsIm5ld01lbnVzRGF0YXMiLCJsZW5ndGgiLCJjb25zb2xlIiwibG9nIiwiaXNFeGlzdCIsInRpdGxlIiwic3BsaWNlIiwic3RhcnRJbmRleCIsImVuZEluZGV4IiwiYmVmb3JlIiwic3Vic3RyaW5nIiwiYWZ0ZXIiLCJmb250IiwiZ2V0U2VhcmNoTWVudURhdGFzIiwidGhpeiIsImNhY2hla2V5IiwiZ2V0TW9kZWwiLCJnZXRDbG9uZU1vZGVsRGF0YSIsInRyZWVEYXRhcyIsImRhdGFzIiwib3BlbktleXMiLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxPQUFQLE1BQW9CLGdCQUFwQjtBQUNBLE9BQU9DLEtBQVAsTUFBa0IsT0FBbEI7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLE9BQU8sU0FBU0MsZ0JBQVQsQ0FDTEMsU0FESyxFQUdMO0FBQUEsTUFEQUMsV0FDQSx1RUFEYztBQUFFQyxJQUFBQSxRQUFRLEVBQUUsS0FBWjtBQUFtQkMs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RGE7QUFFYmdCLEVBQUFBLG9CQUFvQixFQUFwQkEsb0JBRmE7QUFHYlksRUFBQUEscUJBQXFCLEVBQXJCQSxxQkFIYTtBQUliZ0IsRUFBQUEsa0JBQWtCLEVBQWxCQTtBQUphLENBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXNFcXVhbCBmcm9tIFwibG9kYXNoL2lzRXF1YWxcIjtcclxuaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5cclxuLyoqXHJcbiAqIOiOt+WPlumdouWMheWxkeaYoOWwhFxyXG4gKiB7XHJcbiAqICAgIGtleTE6e3BhdGhzOlsna2V5MSddLHRpdGxlOifns7vnu5/nrqHnkIYnfVxyXG4gKiAgICBrZXkyOntwYXRoczpbJ2tleTEnLCdrZXkyJ10sdGl0bGU6J+WKn+iDvemFjee9rid9XHJcbiAqICAgIGtleTM6e3BhdGhzOlsna2V5MScsJ2tleTInLCdrZXkzJ10sdGl0bGU6J+iPnOWNleeuoeeQhicscGF0aDonL3BsYXRmb3JtL21lbnUnfVxyXG4gKiB9XHJcbiAqIEBwYXJhbSB7b2JqZWN0W119IG1lbnVEYXRhcyAg5qCR5b2i57uT5p6E5pWw5o2uXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBmaWVsZE9wdGlvbiAg5YWz6ZSu5a2X5q615ZCN56ew77yM57y655yBeyBrZXlGaWVsZDogJ2tleScsIHRpdGxlRmllbGQ6ICd0aXRsZScscGF0aHNGaWVsZDoncGF0aHMnIH1cclxuICogQHJldHVybnMge01hcH1cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRCcmVhZGNydW1iTWFwKFxyXG4gIG1lbnVEYXRhcyxcclxuICBmaWVsZE9wdGlvbiA9IHsga2V5RmllbGQ6IFwia2V5XCIsIHRpdGxlRmllbGQ6IFwidGl0bGVcIiwgcGF0aHNGaWVsZDogXCJwYXRoc1wiIH1cclxuKSB7XHJcbiAgY29uc3QgdGl0bGVNYXAgPSB7fTtcclxuICBjb25zdCBmbGF0dGVuTWVudURhdGEgPSAoZGF0YSwgcGF0aHMgPSBbXSkgPT4ge1xyXG4gICAgZGF0YS5mb3JFYWNoKChtZW51SXRlbSkgPT4ge1xyXG4gICAgICBtZW51SXRlbS5zZXQoXHJcbiAgICAgICAgZmllbGRPcHRpb24ucGF0aHNGaWVsZCxcclxuICAgICAgICBwYXRocy5jb25jYXQobWVudUl0ZW0uZ2V0KGZpZWxkT3B0aW9uLmtleUZpZWxkKSlcclxuICAgICAgKTtcclxuICAgICAgaWYgKG1lbnVJdGVtLmNoaWxkTm9kZXMpIHtcclxuICAgICAgICBmbGF0dGVuTWVudURhdGEoXHJcbiAgICAgICAgICBtZW51SXRlbS5jaGlsZE5vZGVzLFxyXG4gICAgICAgICAgbWVudUl0ZW0uZ2V0KGZpZWxkT3B0aW9uLnBhdGhzRmllbGQpXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobWVudUl0ZW0uZ2V0KGZpZWxkT3B0aW9uLmtleUZpZWxkKSkge1xyXG4gICAgICAgIHRpdGxlTWFwW21lbnVJdGVtLmdldChmaWVsZE9wdGlvbi5rZXlGaWVsZCldID0gbWVudUl0ZW07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH07XHJcbiAgZmxhdHRlbk1lbnVEYXRhKG1lbnVEYXRhcyk7XHJcbiAgcmV0dXJuIHRpdGxlTWFwO1xyXG59XHJcblxyXG4vKipcclxuICog5Yik5pat6I+c5Y2VTWFw5a+56LGh5Lit56ym5ZCI5p2h5Lu255qE5a+56LGhXHJcbiAqICAgIGtleTE6e3BhdGhzOlsna2V5MSddLHRpdGxlOifns7vnu5/nrqHnkIYnfVxyXG4gKiAgICBrZXkyOntwYXRoczpbJ2tleTEnLCdrZXkyJ10sdGl0bGU6J+WKn+iDvemFjee9rid9XHJcbiAqICAgIGtleTM6e3BhdGhzOlsna2V5MScsJ2tleTInLCdrZXkzJ10sdGl0bGU6J+iPnOWNleeuoeeQhicscGF0aDonL3BsYXRmb3JtL21lbnUnfVxyXG4gKiDmkJzntKLjgIrnrqHnkIbjgIvlkI7ov5Tlm55cclxuICogICAge2tleTE6J2tleTEnLGtleTI6J2tleTInLGtleTM6J2tleTMnfVxyXG4gKiBAcGFyYW0ge01hcDxTdHJpbmcsT2JqZWN0Pn0gYnJlYWRjcnVtYk1hcCAg6I+c5Y2V6Z2i5YyF5bGRXHJcbiAqIEBwYXJhbSB7IFN0cmluZyB9IHNlYXJjaFRleHQgIOaQnOe0ouWGheWuuVxyXG4gKiBAcGFyYW0ge09iamVjdH0gZmllbGRPcHRpb24gIOWFs+mUruWtl+auteWQjeensO+8jOe8uuecgXsga2V5RmllbGQ6ICdrZXknLCB0aXRsZUZpZWxkOiAndGl0bGUnLHBhdGhzRmllbGQ6J3BhdGhzJyB9XHJcbiAqIEByZXR1cm5zIHtNYXA8U3RyaW5nLFN0cmluZz59XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWZmZWN0aXZlTm9kZUtleXMoXHJcbiAgYnJlYWRjcnVtYk1hcCxcclxuICBzZWFyY2hUZXh0LFxyXG4gIGZpZWxkT3B0aW9uID0geyBrZXlGaWVsZDogXCJrZXlcIiwgdGl0bGVGaWVsZDogXCJ0aXRsZVwiLCBwYXRoc0ZpZWxkOiBcInBhdGhzXCIgfVxyXG4pIHtcclxuICBjb25zdCBrZXlzID0ge307XHJcbiAgT2JqZWN0LmtleXMoYnJlYWRjcnVtYk1hcCkuZm9yRWFjaCgoa2V5LCBpKSA9PiB7XHJcbiAgICBjb25zdCBpdGVtID0gYnJlYWRjcnVtYk1hcFtrZXldO1xyXG4gICAgaWYgKFN0cmluZyhpdGVtLmdldChmaWVsZE9wdGlvbi50aXRsZUZpZWxkKSkuaW5kZXhPZihzZWFyY2hUZXh0KSAhPSAtMSkge1xyXG4gICAgICBjb25zdCBwYXRocyA9IGl0ZW0uZ2V0KGZpZWxkT3B0aW9uLnBhdGhzRmllbGQpO1xyXG4gICAgICBwYXRocy5tYXAoKHYpID0+IHtcclxuICAgICAgICBrZXlzW3ZdID0gdjtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfSk7XHJcbiAgcmV0dXJuIGtleXM7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiDojrflj5bov4fmu6TlkI7mmL7npLrnmoToj5zljZXmlbDmja5cclxuICogQHBhcmFtIHtPYmplY3RbXX0gbWVudXNEYXRhcyAg5qCR5b2i57uT5p6E5pWw5o2uXHJcbiAqIEBwYXJhbSB7U3RyaW5nW119IGtleXMgIOacieaViOeahOiPnOWNleiKgueCuVxyXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VhcmNoVGV4dCAg5pCc57Si5YaF5a6577yM6Z2e5b+F5aGrXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSBmaWVsZE9wdGlvbiAg5YWz6ZSu5a2X5q615ZCN56ew77yM57y655yBeyBrZXlGaWVsZDogJ2tleScsIHRpdGxlRmllbGQ6ICd0aXRsZScscGF0aHNGaWVsZDoncGF0aHMnIH1cclxuICogQHBhcmFtIHtTdHJpbmd9IGNvbG9yICAg5pCc57Si5YaF5a656YeN54K56aKc6Imy5qCH6K+G77yM6Z2e5b+F5aGr77yM57y655yBcmVkXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0RWZmZWN0aXZlTWVudURhdGFzKFxyXG4gIG1lbnVzRGF0YXMsXHJcbiAga2V5cyxcclxuICBzZWFyY2hUZXh0LFxyXG4gIGZpZWxkT3B0aW9uID0geyBrZXlGaWVsZDogXCJrZXlcIiwgdGl0bGVGaWVsZDogXCJ0aXRsZVwiLCBwYXRoc0ZpZWxkOiBcInBhdGhzXCIgfSxcclxuICBjb2xvciA9IFwicmVkXCJcclxuKSB7XHJcbiAgY29uc3QgbmV3TWVudXNEYXRhcyA9IFtdO1xyXG4gIGNvbnN0IGZsYXR0ZW5NZW51RGF0YSA9IChkYXRhKSA9PiB7XHJcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHtcclxuICAgICAgY29uc3QgaXRlbSA9IGRhdGFbaV07XHJcbiAgICAgIGNvbnNvbGUubG9nKCdpdGVtJyx7Li4uaXRlbX0pXHJcbiAgICAgIGNvbnN0IGlzRXhpc3QgPSBrZXlzW2l0ZW0uZ2V0KGZpZWxkT3B0aW9uLmtleUZpZWxkKV0gIT0gbnVsbDtcclxuICAgICAgY29uc3QgdGl0bGUgPSBTdHJpbmcoaXRlbS5nZXQoZmllbGRPcHRpb24udGl0bGVGaWVsZCkpO1xyXG4gICAgICBjb25zb2xlLmxvZygndGl0bGUnLHRpdGxlKVxyXG4gICAgICBpZiAoIWlzRXhpc3QpIHtcclxuICAgICAgICBkYXRhLnNwbGljZShpLCAxKTsgLy8g5bCG5L2/5ZCO6Z2i55qE5YWD57Sg5L6d5qyh5YmN56e777yM5pWw57uE6ZW/5bqm5YePMVxyXG4gICAgICAgIGktLTsgLy8g5aaC5p6c5LiN5YeP77yM5bCG5ryP5o6J5LiA5Liq5YWD57SgXHJcbiAgICAgIH0gZWxzZSBpZiAoc2VhcmNoVGV4dCAmJiB0aXRsZS5pbmRleE9mKHNlYXJjaFRleHQpICE9IC0xKSB7XHJcbiAgICAgICAgY29uc3Qgc3RhcnRJbmRleCA9IHRpdGxlLmluZGV4T2Yoc2VhcmNoVGV4dCk7XHJcbiAgICAgICAgY29uc3QgZW5kSW5kZXggPSBzdGFydEluZGV4ICsgc2VhcmNoVGV4dC5sZW5ndGg7XHJcbiAgICAgICAgY29uc3QgYmVmb3JlID0gdGl0bGUuc3Vic3RyaW5nKDAsIHN0YXJ0SW5kZXgpO1xyXG4gICAgICAgIGNvbnN0IGFmdGVyID0gdGl0bGUuc3Vic3RyaW5nKGVuZEluZGV4LCB0aXRsZS5sZW5ndGgpO1xyXG4gICAgICAgIGNvbnN0IGZvbnQ6IFJlYWN0LlJlYWN0RWxlbWVudCA9IChcclxuICAgICAgICAgIDxzcGFuIHN0eWxlPXt7IGNvbG9yIH19PntzZWFyY2hUZXh0fTwvc3Bhbj5cclxuICAgICAgICApO1xyXG4gICAgICAgIGl0ZW0uc2V0KFxyXG4gICAgICAgICAgZmllbGRPcHRpb24udGl0bGVGaWVsZCxcclxuICAgICAgICAgIDxzcGFuIHRpdGxlPXt0aXRsZX0+XHJcbiAgICAgICAgICAgIHtiZWZvcmV9XHJcbiAgICAgICAgICAgIHtmb250fVxyXG4gICAgICAgICAgICB7YWZ0ZXJ9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoaXNFeGlzdCAmJiBpdGVtLmNoaWxkTm9kZXMpIHtcclxuICAgICAgICBmbGF0dGVuTWVudURhdGEoaXRlbS5jaGlsZE5vZGVzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgZmxhdHRlbk1lbnVEYXRhKG1lbnVzRGF0YXMpO1xyXG4gIHJldHVybiBtZW51c0RhdGFzO1xyXG59XHJcblxyXG4vKipcclxuICog5pCc57Si6I+c5Y2V5pWw5o2u77yM56e76Zmk5LiN56ym5ZCI55qE6I+c5Y2V5ZKM5LiN6ZyA6KaB55qE55uu5b2V57uT5p6E77yM57y655yB56ym5ZCI5YaF5a655qCH57qiXHJcbiAqIEBwYXJhbSB7T2JqZWN0fSB0aGl6ICBtZW516I+c5Y2V5a+56LGh77yM57yT5a2Y5pe25YCZ5a2Y5YKo5pWw5o2u5L2/55SoXHJcbiAqIEBwYXJhbSB7U3RyaW5nfSBzZWFyY2hUZXh0ICDmkJzntKLlhoXlrrlcclxuICogQHBhcmFtIHtPYmplY3R9IGZpZWxkT3B0aW9uICDlhbPplK7lrZfmrrXlkI3np7DvvIznvLrnnIF7IGtleUZpZWxkOiAna2V5JywgdGl0bGVGaWVsZDogJ3RpdGxlJyxwYXRoc0ZpZWxkOidwYXRocycgfVxyXG4gKiBAcGFyYW0ge1N0cmluZ30gY29sb3IgICDmkJzntKLlhoXlrrnph43ngrnpopzoibLmoIfor4bvvIzpnZ7lv4XloavvvIznvLrnnIFyZWQs5b2TZmFsc2Xml7blgJnvvIzkuJTkuI3ph43ngrnmoIfms6jpopzoibJcclxuICogQHBhcmFtIHtTdHJpbmd9IGNhY2hla2V5ICAg57yT5a2Y5pWw5o2u5a2Y5YKoa2V577yM57y655yBbnNjX21lbnVfY2FjaGVcclxuICogQHJldHVybnMgeyp9IHtvcGVuS2V5czp7fSx0cmVlRGF0YXM6W119XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2VhcmNoTWVudURhdGFzKFxyXG4gIHRoaXosXHJcbiAgc2VhcmNoVGV4dCxcclxuICBmaWVsZE9wdGlvbiA9IHsga2V5RmllbGQ6IFwia2V5XCIsIHRpdGxlRmllbGQ6IFwidGl0bGVcIiwgcGF0aHNGaWVsZDogXCJwYXRoc1wiIH0sXHJcbiAgY29sb3IgPSBcInJlZFwiLFxyXG4gIGNhY2hla2V5ID0gXCJuc2NfbWVudV9jYWNoZVwiXHJcbikge1xyXG4gIGxldCBicmVhZGNydW1iTWFwID0ge30sXHJcbiAgICBtZW51c0RhdGFzID0gdGhpei5nZXRNb2RlbCgpLmdldENsb25lTW9kZWxEYXRhKCk7XHJcbiAgICBjb25zb2xlLmxvZygndXRpbCcsWy4uLm1lbnVzRGF0YXNdKVxyXG4gIGlmICh0aGl6KSB7XHJcbiAgICBpZiAoIXRoaXpbY2FjaGVrZXldKSB0aGl6W2NhY2hla2V5XSA9IHt9O1xyXG4gICAgaWYgKCFpc0VxdWFsKG1lbnVzRGF0YXMsIHRoaXpbY2FjaGVrZXldLnRyZWVEYXRhcykpIHtcclxuICAgICAgdGhpeltjYWNoZWtleV0uYnJlYWRjcnVtYk1hcCA9IGJyZWFkY3J1bWJNYXAgPSBnZXRCcmVhZGNydW1iTWFwKFxyXG4gICAgICAgIG1lbnVzRGF0YXMsXHJcbiAgICAgICAgZmllbGRPcHRpb25cclxuICAgICAgKTtcclxuICAgICAgdGhpeltjYWNoZWtleV0udHJlZURhdGFzID0gbWVudXNEYXRhcztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGJyZWFkY3J1bWJNYXAgPSB0aGl6W2NhY2hla2V5XS5icmVhZGNydW1iTWFwO1xyXG4gICAgfVxyXG4gIH0gZWxzZSB7XHJcbiAgICBicmVhZGNydW1iTWFwID0gZ2V0QnJlYWRjcnVtYk1hcChtZW51c0RhdGFzLCBmaWVsZE9wdGlvbik7XHJcbiAgfVxyXG4gIGNvbnNvbGUubG9nKCdicmVhZGNydW1iTWFwJyxicmVhZGNydW1iTWFwKVxyXG4gIGNvbnN0IGtleXMgPSBnZXRFZmZlY3RpdmVOb2RlS2V5cyhicmVhZGNydW1iTWFwLCBzZWFyY2hUZXh0LCBmaWVsZE9wdGlvbik7XHJcbiAgY29uc3QgZGF0YXMgPSBnZXRFZmZlY3RpdmVNZW51RGF0YXMoXHJcbiAgICBtZW51c0RhdGFzLFxyXG4gICAga2V5cyxcclxuICAgIGNvbG9yID8gc2VhcmNoVGV4dCA6IG51bGwsXHJcbiAgICBmaWVsZE9wdGlvbixcclxuICAgIGNvbG9yXHJcbiAgKTtcclxuICBsZXQgb3BlbktleXMgPSBbXTtcclxuICBPYmplY3Qua2V5cyhrZXlzKS5mb3JFYWNoKChrZXksIGkpID0+IHtcclxuICAgIG9wZW5LZXlzLnB1c2goa2V5KTtcclxuICB9KTtcclxuICBjb25zb2xlLmxvZygnMTIzMTIxJyxkYXRhcylcclxuICByZXR1cm4ge1xyXG4gICAgb3BlbktleXM6IG9wZW5LZXlzLFxyXG4gICAgdHJlZURhdGFzOiBkYXRhcyxcclxuICB9O1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB7XHJcbiAgZ2V0QnJlYWRjcnVtYk1hcCxcclxuICBnZXRFZmZlY3RpdmVOb2RlS2V5cyxcclxuICBnZXRFZmZlY3RpdmVNZW51RGF0YXMsXHJcbiAgZ2V0U2VhcmNoTWVudURhdGFzLFxyXG59O1xyXG4iXX0=
|