@1money/component-ui 0.0.64-alpha.1 → 0.0.64-alpha.3

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.
@@ -5,9 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.AssetSelect = void 0;
8
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
8
9
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
10
  var _jsxRuntime = require("react/jsx-runtime");
10
11
  var _react = require("react");
12
+ var _Empty = require("../../../components/Empty");
11
13
  var _Flex = require("../../../components/Flex");
12
14
  var _Select = require("../../../components/Select");
13
15
  var _Typography = require("../../../components/Typography");
@@ -61,7 +63,18 @@ var AssetSelectBase = function AssetSelectBase(_a) {
61
63
  filterInputAutoFocus = _a$filterInputAutoFoc === void 0 ? true : _a$filterInputAutoFoc,
62
64
  _a$strong = _a.strong,
63
65
  strong = _a$strong === void 0 ? true : _a$strong,
64
- rest = __rest(_a, ["options", "className", "labelClassName", "label", "name", "placeholder", "searchable", "filterInputAutoFocus", "strong"]);
66
+ emptyContent = _a.emptyContent,
67
+ onSearchChange = _a.onSearchChange,
68
+ panelClassName = _a.panelClassName,
69
+ rest = __rest(_a, ["options", "className", "labelClassName", "label", "name", "placeholder", "searchable", "filterInputAutoFocus", "strong", "emptyContent", "onSearchChange", "panelClassName"]);
70
+ var _useState = (0, _react.useState)(''),
71
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
72
+ keyword = _useState2[0],
73
+ setKeyword = _useState2[1];
74
+ var handleSearchChange = function handleSearchChange(value) {
75
+ setKeyword(value);
76
+ onSearchChange === null || onSearchChange === void 0 ? void 0 : onSearchChange(value);
77
+ };
65
78
  var groupedOptions = (0, _react.useMemo)(function () {
66
79
  var groups = [];
67
80
  var fiat = toGroupOptions(options.fiat);
@@ -82,8 +95,14 @@ var AssetSelectBase = function AssetSelectBase(_a) {
82
95
  placeholder: placeholder,
83
96
  searchable: searchable,
84
97
  filterInputAutoFocus: filterInputAutoFocus,
98
+ onSearchChange: handleSearchChange,
99
+ emptyContent: emptyContent !== null && emptyContent !== void 0 ? emptyContent : (0, _jsxRuntime.jsx)(_Empty.Empty, {
100
+ icon: 'coin',
101
+ description: keyword ? "No results for \"".concat(keyword, "\"") : 'No results'
102
+ }),
85
103
  className: (0, _classnames.joinCls)(WRAP_CLS, className),
86
104
  labelClassName: (0, _classnames.joinCls)("".concat(WRAP_CLS, "-label"), labelClassName),
105
+ panelClassName: (0, _classnames.joinCls)("".concat(WRAP_CLS, "-panel"), panelClassName),
87
106
  options: groupedOptions,
88
107
  renderValue: function renderValue(option, _ref) {
89
108
  var fontSize = _ref.fontSize;
@@ -145,4 +164,4 @@ var AssetSelectBase = function AssetSelectBase(_a) {
145
164
  }));
146
165
  };
147
166
  var AssetSelect = exports.AssetSelect = /*#__PURE__*/(0, _react.memo)(AssetSelectBase);
148
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9Bc3NldC9Bc3NldFNlbGVjdC5qcyIsImJ1c2luZXNzL1NlbGVjdC9zcmMvYnVzaW5lc3MvU2VsZWN0L0Fzc2V0L0Fzc2V0U2VsZWN0LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfRmxleCIsIl9TZWxlY3QiLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJXUkFQX0NMUyIsIklDT05fQ0xTIiwiY29uY2F0IiwiSUNPTl9TSVpFIiwiR1JPVVBfRklBVCIsIkdST1VQX0NSWVBUTyIsInRvT3B0aW9uIiwiY3VycmVuY3kiLCJsYWJlbCIsImN1cnJlbmN5TmFtZSIsInZhbHVlIiwiaWNvbiIsImN1cnJlbmN5SWNvblVybCIsIm5hbWUiLCJjdXJyZW5jeURlc2MiLCJzZWFyY2hUZXh0IiwiYnlPcmRlciIsImEiLCJiIiwiX2EiLCJfYiIsIm9yZGVyIiwidG9Hcm91cE9wdGlvbnMiLCJjdXJyZW5jaWVzIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInNvcnQiLCJtYXAiLCJBc3NldFNlbGVjdEJhc2UiLCJvcHRpb25zIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJfYSRsYWJlbCIsIl9hJG5hbWUiLCJfYSRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX2Ekc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfYSRmaWx0ZXJJbnB1dEF1dG9Gb2MiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsIl9hJHN0cm9uZyIsInN0cm9uZyIsInJlc3QiLCJncm91cGVkT3B0aW9ucyIsInVzZU1lbW8iLCJncm91cHMiLCJmaWF0IiwiY3J5cHRvIiwicHVzaCIsIl9qc3giLCJTZWxlY3QiLCJhc3NpZ24iLCJqb2luQ2xzIiwicmVuZGVyVmFsdWUiLCJvcHRpb24iLCJfcmVmIiwiZm9udFNpemUiLCJBcnJheSIsImlzQXJyYXkiLCJpdGVtIiwiX2pzeHMiLCJGbGV4IiwiYWxpZ24iLCJnYXAiLCJjaGlsZHJlbiIsInNyYyIsImFsdCIsIlN0cmluZyIsIndpZHRoIiwiaGVpZ2h0IiwiVHlwb2dyYXBoeUJvZHkiLCJzaXplIiwicmVuZGVyT3B0aW9uQ29udGVudCIsInN0eWxlIiwidmVydGljYWwiLCJtaW5XaWR0aCIsIlR5cG9ncmFwaHlMYWJlbCIsImNvbG9yIiwiQXNzZXRTZWxlY3QiLCJleHBvcnRzIiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxLQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFMLE9BQUE7QURKQSxJQUFJTSxNQUFNLEdBQUksVUFBUSxTQUFLQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixDQUFDLENBQUNDLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT1IsQ0FBQztBQUNaLENBQUM7QUNERCxJQUFNVyxRQUFRLEdBQUcsaUJBQWlCO0FBQ2xDLElBQU1DLFFBQVEsTUFBQUMsTUFBQSxDQUFNRixRQUFRLFVBQU87QUFDbkMsSUFBTUcsU0FBUyxHQUFHLEVBQUU7QUFDcEIsSUFBTUMsVUFBVSxHQUFHLE1BQU07QUFDekIsSUFBTUMsWUFBWSxHQUFHLGFBQWE7QUFTbEMsSUFBTUMsUUFBUSxHQUFHLFNBQVhBLFFBQVFBLENBQUlDLFFBQXVCO0VBQUEsT0FBbUI7SUFDMURDLEtBQUssRUFBRUQsUUFBUSxDQUFDRSxZQUFZO0lBQzVCQyxLQUFLLEVBQUVILFFBQVEsQ0FBQ0UsWUFBWTtJQUM1QkUsSUFBSSxFQUFFSixRQUFRLENBQUNLLGVBQWU7SUFDOUJDLElBQUksRUFBRU4sUUFBUSxDQUFDTyxZQUFZO0lBQzNCO0lBQ0FDLFVBQVUsS0FBQWIsTUFBQSxDQUFLSyxRQUFRLENBQUNFLFlBQVksT0FBQVAsTUFBQSxDQUFJSyxRQUFRLENBQUNPLFlBQVk7RURDL0QsQ0NBQztBQUFBLENBQUM7QUFFRjtBQUNBO0FBQ0EsSUFBTUUsT0FBTyxHQUFHLFNBQVZBLE9BQU9BLENBQUlDLENBQWdCLEVBQUVDLENBQWdCLEVBQUk7RUFBQSxJQUFBQyxFQUFBLEVBQUFDLEVBQUE7RUFBQyxPQUFBLENBQUMsQ0FBQUQsRUFBQSxHQUFBRixDQUFDLENBQUNJLEtBQUssTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUMsS0FBSyxDQUFBQyxFQUFBLEdBQUFGLENBQUMsQ0FBQ0csS0FBSyxNQUFBLElBQUEsSUFBQUQsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQyxDQUFDO0FBQUEsQ0FBQTtBQUN2RixJQUFNRSxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUE7RUFBQSxJQUFJQyxVQUFBLEdBQUFDLFNBQUEsQ0FBQTFCLE1BQUEsUUFBQTBCLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQThCLEVBQUU7RUFBQSxPQUN0RCxJQUFBRSxtQkFBQSxhQUFJSCxVQUFVLEVBQUVJLElBQUksQ0FBQ1gsT0FBTyxDQUFDLENBQUNZLEdBQUcsQ0FBQ3RCLFFBQVEsQ0FBQztBQUFBO0FBRTdDLElBQU11QixlQUFlLEdBQXlCLFNBQXhDQSxlQUFlQSxDQUEwQlYsRUFXOUMsRUFBSTtFRGJELElDR0ZXLE9BQU8sR0FRTVgsRUFFZCxDQVZDVyxPQUFPO0lBQ1BDLFNBQVMsR0FPSVosRUFFZCxDQVRDWSxTQUFTO0lBQ1RDLGNBQWMsR0FNRGIsRUFFZCxDQVJDYSxjQUFjO0lBQUFDLFFBQUEsR0FNRGQsRUFFZCxDQVBDWCxLQUFLO0lBQUxBLEtBQUssR0FBQXlCLFFBQUEsY0FBRyxPQUFPLEdBQUFBLFFBQUE7SUFBQUMsT0FBQSxHQUtGZixFQUVkLENBTkNOLElBQUk7SUFBSkEsSUFBSSxHQUFBcUIsT0FBQSxjQUFHLE9BQU8sR0FBQUEsT0FBQTtJQUFBQyxjQUFBLEdBSURoQixFQUVkLENBTENpQixXQUFXO0lBQVhBLFdBQVcsR0FBQUQsY0FBQSxjQUFHLGNBQWMsR0FBQUEsY0FBQTtJQUFBRSxhQUFBLEdBR2ZsQixFQUVkLENBSkNtQixVQUFVO0lBQVZBLFVBQVUsR0FBQUQsYUFBQSxjQUFHLElBQUksR0FBQUEsYUFBQTtJQUFBRSxxQkFBQSxHQUVKcEIsRUFFZCxDQUhDcUIsb0JBQW9CO0lBQXBCQSxvQkFBb0IsR0FBQUQscUJBQUEsY0FBRyxJQUFJLEdBQUFBLHFCQUFBO0lBQUFFLFNBQUEsR0FDZHRCLEVBRWQsQ0FGQ3VCLE1BQU07SUFBTkEsTUFBTSxHQUFBRCxTQUFBLGNBQUcsSUFBSSxHQUFBQSxTQUFBO0lBQ1ZFLElBQUksR0FBQXpELE1BQUEsQ0FBQWlDLEVBQUEsRUFWc0MsQ0FBQSxTQUFBLEVBQUEsV0FBQSxFQUFBLGdCQUFBLEVBQUEsT0FBQSxFQUFBLE1BQUEsRUFBQSxhQUFBLEVBQUEsWUFBQSxFQUFBLHNCQUFBLEVBQUEsUUFBQSxDQVc5QyxDQURRO0VBRVAsSUFBTXlCLGNBQWMsR0FBRyxJQUFBQyxjQUFPLEVBQXFCLFlBQUs7SUFDdEQsSUFBTUMsTUFBTSxHQUF1QixFQUFFO0lBQ3JDLElBQU1DLElBQUksR0FBR3pCLGNBQWMsQ0FBQ1EsT0FBTyxDQUFDaUIsSUFBSSxDQUFDO0lBQ3pDLElBQU1DLE1BQU0sR0FBRzFCLGNBQWMsQ0FBQ1EsT0FBTyxDQUFDa0IsTUFBTSxDQUFDO0lBQzdDLElBQUlELElBQUksQ0FBQ2pELE1BQU0sR0FBRyxDQUFDLEVBQUVnRCxNQUFNLENBQUNHLElBQUksQ0FBQztNQUFFekMsS0FBSyxFQUFFSixVQUFVO01BQUUwQixPQUFPLEVBQUVpQjtJQUFJLENBQUUsQ0FBQztJQUN0RSxJQUFJQyxNQUFNLENBQUNsRCxNQUFNLEdBQUcsQ0FBQyxFQUFFZ0QsTUFBTSxDQUFDRyxJQUFJLENBQUM7TUFBRXpDLEtBQUssRUFBRUgsWUFBWTtNQUFFeUIsT0FBTyxFQUFFa0I7SUFBTSxDQUFFLENBQUM7SUFDNUUsT0FBT0YsTUFBTTtFQUNmLENBQUMsRUFBRSxDQUFDaEIsT0FBTyxDQUFDaUIsSUFBSSxFQUFFakIsT0FBTyxDQUFDa0IsTUFBTSxDQUFDLENBQUM7RUFFbEMsT0FDRSxJQUFBRSxlQUFBLEVBQUNDLGNBQU0sRUFBQTVELE1BQUEsQ0FBQTZELE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDRFQsSUFBSSxFQUFBO0lBQ1JuQyxLQUFLLEVBQUVBLEtBQUs7SUFDWkssSUFBSSxFQUFFQSxJQUFJO0lBQ1Z1QixXQUFXLEVBQUVBLFdBQVc7SUFDeEJFLFVBQVUsRUFBRUEsVUFBVTtJQUN0QkUsb0JBQW9CLEVBQUVBLG9CQUFvQjtJQUMxQ1QsU0FBUyxFQUFFLElBQUFzQixtQkFBTyxFQUFDckQsUUFBUSxFQUFFK0IsU0FBUyxDQUFDO0lBQ3ZDQyxjQUFjLEVBQUUsSUFBQXFCLG1CQUFPLEtBQUFuRCxNQUFBLENBQUlGLFFBQVEsYUFBU2dDLGNBQWMsQ0FBQztJQUMzREYsT0FBTyxFQUFFYyxjQUFjO0lBQ3ZCVSxXQUFXLEVBQUUsU0FBYkEsV0FBV0EsQ0FBR0MsTUFBTSxFQUFBQyxJQUFBLEVBQWtCO01BQUEsSUFBZEMsUUFBUSxHQUFBRCxJQUFBLENBQVJDLFFBQVE7TUR0QjFCLElBQUl0QyxFQUFFO01DdUJWLElBQUksQ0FBQ29DLE1BQU0sSUFBSUcsS0FBSyxDQUFDQyxPQUFPLENBQUNKLE1BQU0sQ0FBQyxFQUFFO1FBQ3BDLE9BQU9uQixXQUFXO01BQ3BCO01BQ0EsSUFBTXdCLElBQUksR0FBR0wsTUFBcUI7TUFDbEMsT0FDRSxJQUFBTSxnQkFBQSxFQUFDQyxVQUFJLEVBQUE7UUFBQ0MsS0FBSyxFQUFDLFFBQVE7UUFBQ0MsR0FBRyxFQUFFLENBQUM7UUFBQUMsUUFBQSxFQUFBLENBQ3pCLElBQUFmLGVBQUEsRUFBQSxLQUFBLEVBQUE7VUFDRWdCLEdBQUcsRUFBRU4sSUFBSSxDQUFDakQsSUFBSTtVQUNkd0QsR0FBRyxFQUFFQyxNQUFNLENBQUMsQ0FBQWpELEVBQUEsR0FBQXlDLElBQUksQ0FBQ2xELEtBQUssTUFBQSxJQUFBLElBQUFTLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLEVBQUUsQ0FBQztVQUM3QmtELEtBQUssRUFBRWxFLFNBQVM7VUFDaEJtRSxNQUFNLEVBQUVuRSxTQUFTO1VBQ2pCNEIsU0FBUyxFQUFFOUI7UUFBUSxDQUFBLENBQ25CLEVBQ0YsSUFBQWlELGVBQUEsRUFBQ3FCLDBCQUFjLEVBQUE7VUFBQ0MsSUFBSSxFQUFFZixRQUFRO1VBQUVmLE1BQU0sRUFBRUEsTUFBTTtVQUFBdUIsUUFBQSxFQUMzQ0wsSUFBSSxDQUFDcEQ7UUFBSyxDQUFBLENBQ0k7TUFBQSxDQUFBLENBQ1o7SUFFWCxDQUFDO0lBQ0RpRSxtQkFBbUIsRUFBRSxTQUFyQkEsbUJBQW1CQSxDQUFHbEIsTUFBTSxFQUFJO01EbkMxQixJQUFJcEMsRUFBRTtNQ29DVixJQUFNeUMsSUFBSSxHQUFHTCxNQUFxQjtNQUNsQyxPQUNFLElBQUFNLGdCQUFBLEVBQUNDLFVBQUksRUFBQTtRQUFDQyxLQUFLLEVBQUMsUUFBUTtRQUFDQyxHQUFHLEVBQUUsQ0FBQztRQUFFVSxLQUFLLEVBQUU7VUFBRUwsS0FBSyxFQUFFO1FBQU0sQ0FBRTtRQUFBSixRQUFBLEVBQUEsQ0FDbkQsSUFBQWYsZUFBQSxFQUFBLEtBQUEsRUFBQTtVQUNFZ0IsR0FBRyxFQUFFTixJQUFJLENBQUNqRCxJQUFJO1VBQ2R3RCxHQUFHLEVBQUVDLE1BQU0sQ0FBQyxDQUFBakQsRUFBQSxHQUFBeUMsSUFBSSxDQUFDbEQsS0FBSyxNQUFBLElBQUEsSUFBQVMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksRUFBRSxDQUFDO1VBQzdCa0QsS0FBSyxFQUFFbEUsU0FBUztVQUNoQm1FLE1BQU0sRUFBRW5FLFNBQVM7VUFDakI0QixTQUFTLEVBQUU5QjtRQUFRLENBQUEsQ0FDbkIsRUFDRixJQUFBNEQsZ0JBQUEsRUFBQ0MsVUFBSSxFQUFBO1VBQUNhLFFBQVEsRUFBQSxJQUFBO1VBQUNYLEdBQUcsRUFBRSxDQUFDO1VBQUVELEtBQUssRUFBQyxPQUFPO1VBQUNXLEtBQUssRUFBRTtZQUFFRSxRQUFRLEVBQUU7VUFBQyxDQUFFO1VBQUFYLFFBQUEsRUFBQSxDQUN6RCxJQUFBZixlQUFBLEVBQUMyQiwyQkFBZSxFQUFBO1lBQUNMLElBQUksRUFBQyxJQUFJO1lBQUNNLEtBQUssRUFBQyxTQUFTO1lBQUFiLFFBQUEsRUFDdkNMLElBQUksQ0FBQ3BEO1VBQUssQ0FBQSxDQUNLLEVBQ2xCLElBQUEwQyxlQUFBLEVBQUNxQiwwQkFBYyxFQUFBO1lBQUNDLElBQUksRUFBQyxJQUFJO1lBQUNNLEtBQUssRUFBQyxrQkFBa0I7WUFBQWIsUUFBQSxFQUMvQ0wsSUFBSSxDQUFDL0M7VUFBSSxDQUFBLENBQ0s7UUFBQSxDQUFBLENBQ1o7TUFBQSxDQUFBLENBQ0Y7SUFFWDtFQUFDLENBQUEsQ0FBQSxDQUNEO0FBRU4sQ0FBQztBQUVNLElBQU1rRSxXQUFXLEdBQUFDLE9BQUEsQ0FBQUQsV0FBQSxnQkFBRyxJQUFBRSxXQUFJLEVBQUNwRCxlQUFlLENBQUMiLCJmaWxlIjoiYnVzaW5lc3MvU2VsZWN0L0Fzc2V0L0Fzc2V0U2VsZWN0LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBGbGV4IH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9GbGV4JztcbmltcG9ydCB7IFNlbGVjdCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvU2VsZWN0JztcbmltcG9ydCB7IFR5cG9ncmFwaHlCb2R5LCBUeXBvZ3JhcGh5TGFiZWwgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuY29uc3QgV1JBUF9DTFMgPSAnb20tYXNzZXQtc2VsZWN0JztcbmNvbnN0IElDT05fQ0xTID0gYCR7V1JBUF9DTFN9LWljb25gO1xuY29uc3QgSUNPTl9TSVpFID0gMjQ7XG5jb25zdCBHUk9VUF9GSUFUID0gJ0Nhc2gnO1xuY29uc3QgR1JPVVBfQ1JZUFRPID0gJ1N0YWJsZWNvaW5zJztcbmNvbnN0IHRvT3B0aW9uID0gKGN1cnJlbmN5KSA9PiAoe1xuICAgIGxhYmVsOiBjdXJyZW5jeS5jdXJyZW5jeU5hbWUsXG4gICAgdmFsdWU6IGN1cnJlbmN5LmN1cnJlbmN5TmFtZSxcbiAgICBpY29uOiBjdXJyZW5jeS5jdXJyZW5jeUljb25VcmwsXG4gICAgbmFtZTogY3VycmVuY3kuY3VycmVuY3lEZXNjLFxuICAgIC8vIE1hdGNoIHRoZSBzZWFyY2ggYWdhaW5zdCBib3RoIHRoZSBzeW1ib2wgYW5kIHRoZSBodW1hbi1yZWFkYWJsZSBuYW1lLlxuICAgIHNlYXJjaFRleHQ6IGAke2N1cnJlbmN5LmN1cnJlbmN5TmFtZX0gJHtjdXJyZW5jeS5jdXJyZW5jeURlc2N9YCxcbn0pO1xuLy8gU29ydCB3aXRoaW4gYSBncm91cCBieSB0aGUgYmFja2VuZCBgb3JkZXJgIChhc2NlbmRpbmcpLiBDb3BpZXMgdGhlIGFycmF5IHNvXG4vLyB0aGUgY2FsbGVyJ3MgYG9wdGlvbnNgIGlzIG5ldmVyIG11dGF0ZWQ7IG1pc3NpbmcgYG9yZGVyYCBmYWxscyBiYWNrIHRvIDAuXG5jb25zdCBieU9yZGVyID0gKGEsIGIpID0+IHsgdmFyIF9hLCBfYjsgcmV0dXJuICgoX2EgPSBhLm9yZGVyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKSAtICgoX2IgPSBiLm9yZGVyKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKTsgfTtcbmNvbnN0IHRvR3JvdXBPcHRpb25zID0gKGN1cnJlbmNpZXMgPSBbXSkgPT4gWy4uLmN1cnJlbmNpZXNdLnNvcnQoYnlPcmRlcikubWFwKHRvT3B0aW9uKTtcbmNvbnN0IEFzc2V0U2VsZWN0QmFzZSA9IChfYSkgPT4ge1xuICAgIHZhciB7IG9wdGlvbnMsIGNsYXNzTmFtZSwgbGFiZWxDbGFzc05hbWUsIGxhYmVsID0gJ0Fzc2V0JywgbmFtZSA9ICdhc3NldCcsIHBsYWNlaG9sZGVyID0gJ1NlbGVjdCBhc3NldCcsIHNlYXJjaGFibGUgPSB0cnVlLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1cyA9IHRydWUsIHN0cm9uZyA9IHRydWUgfSA9IF9hLCByZXN0ID0gX19yZXN0KF9hLCBbXCJvcHRpb25zXCIsIFwiY2xhc3NOYW1lXCIsIFwibGFiZWxDbGFzc05hbWVcIiwgXCJsYWJlbFwiLCBcIm5hbWVcIiwgXCJwbGFjZWhvbGRlclwiLCBcInNlYXJjaGFibGVcIiwgXCJmaWx0ZXJJbnB1dEF1dG9Gb2N1c1wiLCBcInN0cm9uZ1wiXSk7XG4gICAgY29uc3QgZ3JvdXBlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gW107XG4gICAgICAgIGNvbnN0IGZpYXQgPSB0b0dyb3VwT3B0aW9ucyhvcHRpb25zLmZpYXQpO1xuICAgICAgICBjb25zdCBjcnlwdG8gPSB0b0dyb3VwT3B0aW9ucyhvcHRpb25zLmNyeXB0byk7XG4gICAgICAgIGlmIChmaWF0Lmxlbmd0aCA+IDApXG4gICAgICAgICAgICBncm91cHMucHVzaCh7IGxhYmVsOiBHUk9VUF9GSUFULCBvcHRpb25zOiBmaWF0IH0pO1xuICAgICAgICBpZiAoY3J5cHRvLmxlbmd0aCA+IDApXG4gICAgICAgICAgICBncm91cHMucHVzaCh7IGxhYmVsOiBHUk9VUF9DUllQVE8sIG9wdGlvbnM6IGNyeXB0byB9KTtcbiAgICAgICAgcmV0dXJuIGdyb3VwcztcbiAgICB9LCBbb3B0aW9ucy5maWF0LCBvcHRpb25zLmNyeXB0b10pO1xuICAgIHJldHVybiAoX2pzeChTZWxlY3QsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgbGFiZWw6IGxhYmVsLCBuYW1lOiBuYW1lLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHNlYXJjaGFibGU6IHNlYXJjaGFibGUsIGZpbHRlcklucHV0QXV0b0ZvY3VzOiBmaWx0ZXJJbnB1dEF1dG9Gb2N1cywgY2xhc3NOYW1lOiBqb2luQ2xzKFdSQVBfQ0xTLCBjbGFzc05hbWUpLCBsYWJlbENsYXNzTmFtZTogam9pbkNscyhgJHtXUkFQX0NMU30tbGFiZWxgLCBsYWJlbENsYXNzTmFtZSksIG9wdGlvbnM6IGdyb3VwZWRPcHRpb25zLCByZW5kZXJWYWx1ZTogKG9wdGlvbiwgeyBmb250U2l6ZSB9KSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBpZiAoIW9wdGlvbiB8fCBBcnJheS5pc0FycmF5KG9wdGlvbikpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBjaGlsZHJlbjogW19qc3goXCJpbWdcIiwgeyBzcmM6IGl0ZW0uaWNvbiwgYWx0OiBTdHJpbmcoKF9hID0gaXRlbS52YWx1ZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJycpLCB3aWR0aDogSUNPTl9TSVpFLCBoZWlnaHQ6IElDT05fU0laRSwgY2xhc3NOYW1lOiBJQ09OX0NMUyB9KSwgX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBmb250U2l6ZSwgc3Ryb25nOiBzdHJvbmcsIGNoaWxkcmVuOiBpdGVtLmxhYmVsIH0pXSB9KSk7XG4gICAgICAgIH0sIHJlbmRlck9wdGlvbkNvbnRlbnQ6IChvcHRpb24pID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBvcHRpb247XG4gICAgICAgICAgICByZXR1cm4gKF9qc3hzKEZsZXgsIHsgYWxpZ246ICdjZW50ZXInLCBnYXA6IDgsIHN0eWxlOiB7IHdpZHRoOiAnMTAwJScgfSwgY2hpbGRyZW46IFtfanN4KFwiaW1nXCIsIHsgc3JjOiBpdGVtLmljb24sIGFsdDogU3RyaW5nKChfYSA9IGl0ZW0udmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKSwgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUsIGNsYXNzTmFtZTogSUNPTl9DTFMgfSksIF9qc3hzKEZsZXgsIHsgdmVydGljYWw6IHRydWUsIGdhcDogMCwgYWxpZ246ICdzdGFydCcsIHN0eWxlOiB7IG1pbldpZHRoOiAwIH0sIGNoaWxkcmVuOiBbX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogJ21kJywgY29sb3I6ICdkZWZhdWx0JywgY2hpbGRyZW46IGl0ZW0ubGFiZWwgfSksIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogJ3NtJywgY29sb3I6ICdkZWZhdWx0LXRlcnRpYXJ5JywgY2hpbGRyZW46IGl0ZW0ubmFtZSB9KV0gfSldIH0pKTtcbiAgICAgICAgfSB9KSkpO1xufTtcbmV4cG9ydCBjb25zdCBBc3NldFNlbGVjdCA9IG1lbW8oQXNzZXRTZWxlY3RCYXNlKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
167
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImJ1c2luZXNzL1NlbGVjdC9Bc3NldC9Bc3NldFNlbGVjdC5qcyIsImJ1c2luZXNzL1NlbGVjdC9zcmMvYnVzaW5lc3MvU2VsZWN0L0Fzc2V0L0Fzc2V0U2VsZWN0LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfRW1wdHkiLCJfRmxleCIsIl9TZWxlY3QiLCJfVHlwb2dyYXBoeSIsIl9jbGFzc25hbWVzIiwiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJXUkFQX0NMUyIsIklDT05fQ0xTIiwiY29uY2F0IiwiSUNPTl9TSVpFIiwiR1JPVVBfRklBVCIsIkdST1VQX0NSWVBUTyIsInRvT3B0aW9uIiwiY3VycmVuY3kiLCJsYWJlbCIsImN1cnJlbmN5TmFtZSIsInZhbHVlIiwiaWNvbiIsImN1cnJlbmN5SWNvblVybCIsIm5hbWUiLCJjdXJyZW5jeURlc2MiLCJzZWFyY2hUZXh0IiwiYnlPcmRlciIsImEiLCJiIiwiX2EiLCJfYiIsIm9yZGVyIiwidG9Hcm91cE9wdGlvbnMiLCJjdXJyZW5jaWVzIiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInNvcnQiLCJtYXAiLCJBc3NldFNlbGVjdEJhc2UiLCJvcHRpb25zIiwiY2xhc3NOYW1lIiwibGFiZWxDbGFzc05hbWUiLCJfYSRsYWJlbCIsIl9hJG5hbWUiLCJfYSRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX2Ekc2VhcmNoYWJsZSIsInNlYXJjaGFibGUiLCJfYSRmaWx0ZXJJbnB1dEF1dG9Gb2MiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsIl9hJHN0cm9uZyIsInN0cm9uZyIsImVtcHR5Q29udGVudCIsIm9uU2VhcmNoQ2hhbmdlIiwicGFuZWxDbGFzc05hbWUiLCJyZXN0IiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwia2V5d29yZCIsInNldEtleXdvcmQiLCJoYW5kbGVTZWFyY2hDaGFuZ2UiLCJncm91cGVkT3B0aW9ucyIsInVzZU1lbW8iLCJncm91cHMiLCJmaWF0IiwiY3J5cHRvIiwicHVzaCIsIl9qc3giLCJTZWxlY3QiLCJhc3NpZ24iLCJFbXB0eSIsImRlc2NyaXB0aW9uIiwiam9pbkNscyIsInJlbmRlclZhbHVlIiwib3B0aW9uIiwiX3JlZiIsImZvbnRTaXplIiwiQXJyYXkiLCJpc0FycmF5IiwiaXRlbSIsIl9qc3hzIiwiRmxleCIsImFsaWduIiwiZ2FwIiwiY2hpbGRyZW4iLCJzcmMiLCJhbHQiLCJTdHJpbmciLCJ3aWR0aCIsImhlaWdodCIsIlR5cG9ncmFwaHlCb2R5Iiwic2l6ZSIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJzdHlsZSIsInZlcnRpY2FsIiwibWluV2lkdGgiLCJUeXBvZ3JhcGh5TGFiZWwiLCJjb2xvciIsIkFzc2V0U2VsZWN0IiwiZXhwb3J0cyIsIm1lbW8iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQVdBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ1hBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQU4sT0FBQTtBRExBLElBQUlPLE1BQU0sR0FBSSxVQUFRLFNBQUtBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0Ms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LEVBQUU7WUFBRUUsUUFBUSxFQUFFO1VBQUMsQ0FBRTtVQUFBWCxRQUFBLEVBQUEsQ0FDekQsSUFBQWpCLGVBQUEsRUFBQzZCLDJCQUFlLEVBQUE7WUFBQ0wsSUFBSSxFQUFDLElBQUk7WUFBQ00sS0FBSyxFQUFDLFNBQVM7WUFBQWIsUUFBQSxFQUN2Q0wsSUFBSSxDQUFDaEU7VUFBSyxDQUFBLENBQ0ssRUFDbEIsSUFBQW9ELGVBQUEsRUFBQ3VCLDBCQUFjLEVBQUE7WUFBQ0MsSUFBSSxFQUFDLElBQUk7WUFBQ00sS0FBSyxFQUFDLGtCQUFrQjtZQUFBYixRQUFBLEVBQy9DTCxJQUFJLENBQUMzRDtVQUFJLENBQUEsQ0FDSztRQUFBLENBQUEsQ0FDWjtNQUFBLENBQUEsQ0FDRjtJQUVYO0VBQUMsQ0FBQSxDQUFBLENBQ0Q7QUFFTixDQUFDO0FBRU0sSUFBTThFLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLGdCQUFHLElBQUFFLFdBQUksRUFBQ2hFLGVBQWUsQ0FBQyIsImZpbGUiOiJidXNpbmVzcy9TZWxlY3QvQXNzZXQvQXNzZXRTZWxlY3QuanMiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX19yZXN0ID0gKHRoaXMgJiYgdGhpcy5fX3Jlc3QpIHx8IGZ1bmN0aW9uIChzLCBlKSB7XG4gICAgdmFyIHQgPSB7fTtcbiAgICBmb3IgKHZhciBwIGluIHMpIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocywgcCkgJiYgZS5pbmRleE9mKHApIDwgMClcbiAgICAgICAgdFtwXSA9IHNbcF07XG4gICAgaWYgKHMgIT0gbnVsbCAmJiB0eXBlb2YgT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyA9PT0gXCJmdW5jdGlvblwiKVxuICAgICAgICBmb3IgKHZhciBpID0gMCwgcCA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMocyk7IGkgPCBwLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZS5pbmRleE9mKHBbaV0pIDwgMCAmJiBPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwocywgcFtpXSkpXG4gICAgICAgICAgICAgICAgdFtwW2ldXSA9IHNbcFtpXV07XG4gICAgICAgIH1cbiAgICByZXR1cm4gdDtcbn07XG5pbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgbWVtbywgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBFbXB0eSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRW1wdHknO1xuaW1wb3J0IHsgRmxleCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvRmxleCc7XG5pbXBvcnQgeyBTZWxlY3QgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL1NlbGVjdCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IFdSQVBfQ0xTID0gJ29tLWFzc2V0LXNlbGVjdCc7XG5jb25zdCBJQ09OX0NMUyA9IGAke1dSQVBfQ0xTfS1pY29uYDtcbmNvbnN0IElDT05fU0laRSA9IDI0O1xuY29uc3QgR1JPVVBfRklBVCA9ICdDYXNoJztcbmNvbnN0IEdST1VQX0NSWVBUTyA9ICdTdGFibGVjb2lucyc7XG5jb25zdCB0b09wdGlvbiA9IChjdXJyZW5jeSkgPT4gKHtcbiAgICBsYWJlbDogY3VycmVuY3kuY3VycmVuY3lOYW1lLFxuICAgIHZhbHVlOiBjdXJyZW5jeS5jdXJyZW5jeU5hbWUsXG4gICAgaWNvbjogY3VycmVuY3kuY3VycmVuY3lJY29uVXJsLFxuICAgIG5hbWU6IGN1cnJlbmN5LmN1cnJlbmN5RGVzYyxcbiAgICAvLyBNYXRjaCB0aGUgc2VhcmNoIGFnYWluc3QgYm90aCB0aGUgc3ltYm9sIGFuZCB0aGUgaHVtYW4tcmVhZGFibGUgbmFtZS5cbiAgICBzZWFyY2hUZXh0OiBgJHtjdXJyZW5jeS5jdXJyZW5jeU5hbWV9ICR7Y3VycmVuY3kuY3VycmVuY3lEZXNjfWAsXG59KTtcbi8vIFNvcnQgd2l0aGluIGEgZ3JvdXAgYnkgdGhlIGJhY2tlbmQgYG9yZGVyYCAoYXNjZW5kaW5nKS4gQ29waWVzIHRoZSBhcnJheSBzb1xuLy8gdGhlIGNhbGxlcidzIGBvcHRpb25zYCBpcyBuZXZlciBtdXRhdGVkOyBtaXNzaW5nIGBvcmRlcmAgZmFsbHMgYmFjayB0byAwLlxuY29uc3QgYnlPcmRlciA9IChhLCBiKSA9PiB7IHZhciBfYSwgX2I7IHJldHVybiAoKF9hID0gYS5vcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCkgLSAoKF9iID0gYi5vcmRlcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCk7IH07XG5jb25zdCB0b0dyb3VwT3B0aW9ucyA9IChjdXJyZW5jaWVzID0gW10pID0+IFsuLi5jdXJyZW5jaWVzXS5zb3J0KGJ5T3JkZXIpLm1hcCh0b09wdGlvbik7XG5jb25zdCBBc3NldFNlbGVjdEJhc2UgPSAoX2EpID0+IHtcbiAgICB2YXIgeyBvcHRpb25zLCBjbGFzc05hbWUsIGxhYmVsQ2xhc3NOYW1lLCBsYWJlbCA9ICdBc3NldCcsIG5hbWUgPSAnYXNzZXQnLCBwbGFjZWhvbGRlciA9ICdTZWxlY3QgYXNzZXQnLCBzZWFyY2hhYmxlID0gdHJ1ZSwgZmlsdGVySW5wdXRBdXRvRm9jdXMgPSB0cnVlLCBzdHJvbmcgPSB0cnVlLCBlbXB0eUNvbnRlbnQsIG9uU2VhcmNoQ2hhbmdlLCBwYW5lbENsYXNzTmFtZSB9ID0gX2EsIHJlc3QgPSBfX3Jlc3QoX2EsIFtcIm9wdGlvbnNcIiwgXCJjbGFzc05hbWVcIiwgXCJsYWJlbENsYXNzTmFtZVwiLCBcImxhYmVsXCIsIFwibmFtZVwiLCBcInBsYWNlaG9sZGVyXCIsIFwic2VhcmNoYWJsZVwiLCBcImZpbHRlcklucHV0QXV0b0ZvY3VzXCIsIFwic3Ryb25nXCIsIFwiZW1wdHlDb250ZW50XCIsIFwib25TZWFyY2hDaGFuZ2VcIiwgXCJwYW5lbENsYXNzTmFtZVwiXSk7XG4gICAgY29uc3QgW2tleXdvcmQsIHNldEtleXdvcmRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICBzZXRLZXl3b3JkKHZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKHZhbHVlKTtcbiAgICB9O1xuICAgIGNvbnN0IGdyb3VwZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGNvbnN0IGdyb3VwcyA9IFtdO1xuICAgICAgICBjb25zdCBmaWF0ID0gdG9Hcm91cE9wdGlvbnMob3B0aW9ucy5maWF0KTtcbiAgICAgICAgY29uc3QgY3J5cHRvID0gdG9Hcm91cE9wdGlvbnMob3B0aW9ucy5jcnlwdG8pO1xuICAgICAgICBpZiAoZmlhdC5sZW5ndGggPiAwKVxuICAgICAgICAgICAgZ3JvdXBzLnB1c2goeyBsYWJlbDogR1JPVVBfRklBVCwgb3B0aW9uczogZmlhdCB9KTtcbiAgICAgICAgaWYgKGNyeXB0by5sZW5ndGggPiAwKVxuICAgICAgICAgICAgZ3JvdXBzLnB1c2goeyBsYWJlbDogR1JPVVBfQ1JZUFRPLCBvcHRpb25zOiBjcnlwdG8gfSk7XG4gICAgICAgIHJldHVybiBncm91cHM7XG4gICAgfSwgW29wdGlvbnMuZmlhdCwgb3B0aW9ucy5jcnlwdG9dKTtcbiAgICByZXR1cm4gKF9qc3goU2VsZWN0LCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IGxhYmVsOiBsYWJlbCwgbmFtZTogbmFtZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCBzZWFyY2hhYmxlOiBzZWFyY2hhYmxlLCBmaWx0ZXJJbnB1dEF1dG9Gb2N1czogZmlsdGVySW5wdXRBdXRvRm9jdXMsIG9uU2VhcmNoQ2hhbmdlOiBoYW5kbGVTZWFyY2hDaGFuZ2UsIGVtcHR5Q29udGVudDogZW1wdHlDb250ZW50ICE9PSBudWxsICYmIGVtcHR5Q29udGVudCAhPT0gdm9pZCAwID8gZW1wdHlDb250ZW50IDogKF9qc3goRW1wdHksIHsgaWNvbjogJ2NvaW4nLCBkZXNjcmlwdGlvbjoga2V5d29yZCA/IGBObyByZXN1bHRzIGZvciBcIiR7a2V5d29yZH1cImAgOiAnTm8gcmVzdWx0cycgfSkpLCBjbGFzc05hbWU6IGpvaW5DbHMoV1JBUF9DTFMsIGNsYXNzTmFtZSksIGxhYmVsQ2xhc3NOYW1lOiBqb2luQ2xzKGAke1dSQVBfQ0xTfS1sYWJlbGAsIGxhYmVsQ2xhc3NOYW1lKSwgcGFuZWxDbGFzc05hbWU6IGpvaW5DbHMoYCR7V1JBUF9DTFN9LXBhbmVsYCwgcGFuZWxDbGFzc05hbWUpLCBvcHRpb25zOiBncm91cGVkT3B0aW9ucywgcmVuZGVyVmFsdWU6IChvcHRpb24sIHsgZm9udFNpemUgfSkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgaWYgKCFvcHRpb24gfHwgQXJyYXkuaXNBcnJheShvcHRpb24pKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXRlbSA9IG9wdGlvbjtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeHMoRmxleCwgeyBhbGlnbjogJ2NlbnRlcicsIGdhcDogOCwgY2hpbGRyZW46IFtfanN4KFwiaW1nXCIsIHsgc3JjOiBpdGVtLmljb24sIGFsdDogU3RyaW5nKChfYSA9IGl0ZW0udmFsdWUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICcnKSwgd2lkdGg6IElDT05fU0laRSwgaGVpZ2h0OiBJQ09OX1NJWkUsIGNsYXNzTmFtZTogSUNPTl9DTFMgfSksIF9qc3goVHlwb2dyYXBoeUJvZHksIHsgc2l6ZTogZm9udFNpemUsIHN0cm9uZzogc3Ryb25nLCBjaGlsZHJlbjogaXRlbS5sYWJlbCB9KV0gfSkpO1xuICAgICAgICB9LCByZW5kZXJPcHRpb25Db250ZW50OiAob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICBjb25zdCBpdGVtID0gb3B0aW9uO1xuICAgICAgICAgICAgcmV0dXJuIChfanN4cyhGbGV4LCB7IGFsaWduOiAnY2VudGVyJywgZ2FwOiA4LCBzdHlsZTogeyB3aWR0aDogJzEwMCUnIH0sIGNoaWxkcmVuOiBbX2pzeChcImltZ1wiLCB7IHNyYzogaXRlbS5pY29uLCBhbHQ6IFN0cmluZygoX2EgPSBpdGVtLnZhbHVlKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAnJyksIHdpZHRoOiBJQ09OX1NJWkUsIGhlaWdodDogSUNPTl9TSVpFLCBjbGFzc05hbWU6IElDT05fQ0xTIH0pLCBfanN4cyhGbGV4LCB7IHZlcnRpY2FsOiB0cnVlLCBnYXA6IDAsIGFsaWduOiAnc3RhcnQnLCBzdHlsZTogeyBtaW5XaWR0aDogMCB9LCBjaGlsZHJlbjogW19qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6ICdtZCcsIGNvbG9yOiAnZGVmYXVsdCcsIGNoaWxkcmVuOiBpdGVtLmxhYmVsIH0pLCBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6ICdzbScsIGNvbG9yOiAnZGVmYXVsdC10ZXJ0aWFyeScsIGNoaWxkcmVuOiBpdGVtLm5hbWUgfSldIH0pXSB9KSk7XG4gICAgICAgIH0gfSkpKTtcbn07XG5leHBvcnQgY29uc3QgQXNzZXRTZWxlY3QgPSBtZW1vKEFzc2V0U2VsZWN0QmFzZSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -30,6 +30,10 @@
30
30
  width: 100%;
31
31
  }
32
32
 
33
+ .om-asset-select-panel .om-component-ui-select-empty {
34
+ padding: 0;
35
+ }
36
+
33
37
  .om-asset-select-icon {
34
38
  flex: 0 0 auto;
35
39
  width: 24px;
@@ -488,7 +488,8 @@ var Select = exports.Select = function Select(props) {
488
488
  children: [searchable && (0, _jsxRuntime.jsx)(_SelectSearchControl["default"], {
489
489
  ref: setSearchInputRef,
490
490
  classes: classes,
491
- size: normalizedSize,
491
+ // size={normalizedSize}
492
+ size: "small",
492
493
  placeholder: searchPlaceholder,
493
494
  value: innerSearchValue,
494
495
  activeDescendant: activeOptionId,
@@ -576,4 +577,4 @@ var Select = exports.Select = function Select(props) {
576
577
  };
577
578
  Select.displayName = 'Select';
578
579
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(Select);
579
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkcmVhZE9ubHkiLCJyZWFkT25seSIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJfcHJvcHMkZmlsdGVySW5wdXRBdXQiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsImxhYmVsIiwibGFiZWxDbGFzc05hbWUiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib2Zmc2V0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJyZW5kZXJWYWx1ZSIsInJlZiIsImludGVyYWN0aXZlIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJvcHRpb25JZFByZWZpeCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwibm9ybWFsaXplU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsInVzZU1lbW8iLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJ1c2VSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCIsIl91c2VTZWxlY3RTaGVsbCIsInVzZVNlbGVjdFNoZWxsIiwiaW5uZXJPcGVuIiwiaXNPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInNldE9wZW4iLCJyZWZzIiwiY29udGV4dCIsImZsb2F0aW5nU3R5bGVzIiwidHJhbnNpdGlvblN0eWxlcyIsImlzTW91bnRlZCIsImJhc2VJbnRlcmFjdGlvbnMiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ2aXJ0dWFsIiwidHlwZWFoZWFkIiwidXNlVHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJ1c2VFZmZlY3QiLCJwcmV2IiwiX2EiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsInNldFNlYXJjaElucHV0UmVmIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsInRvZ2dsZU11bHRpcGxlVmFsdWUiLCJuZXh0T3B0aW9ucyIsImdldE9wdGlvbnNCeVZhbHVlcyIsImhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUiLCJvcHRpb25WYWx1ZSIsImdldE11bHRpcGxlVmFsdWUiLCJpbmNsdWRlcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJoYW5kbGVUcmlnZ2VyS2V5RG93biIsImtleSIsIktFWUJPQVJEIiwiRU5URVIiLCJTUEFDRSIsInByZXZlbnREZWZhdWx0IiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJpbmRleCIsImhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhZ1JlbW92ZUNsaWNrIiwiaGFuZGxlU2VhcmNoQmx1ciIsImhhbmRsZVNlYXJjaENoYW5nZSIsIl9ldmVudCIsImZpbmRFbmFibGVkSW5kZXgiLCJkaXJlY3Rpb24iLCJzdGFydCIsInN0ZXAiLCJjYW5kaWRhdGUiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwibmV4dCIsIkVTQ0FQRSIsInJlbmRlclZhbHVlTWV0YSIsImZvbnRTaXplIiwiZ2V0Rm9udFNpemUiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiam9pbkNscyIsImljb25TaXplIiwiYWN0aXZlT3B0aW9uSWQiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsIl9qc3hzIiwiU2VsZWN0RmllbGRTaGVsbCIsImNoaWxkcmVuIiwiYXNzaWduIiwidHlwZSIsIm9uS2V5RG93biIsIl9qc3giLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJvblJlbW92ZSIsIm9uUmVtb3ZlQ2xpY2siLCJvblJlbW92ZU1vdXNlRG93biIsIlNwaW5uZXIiLCJzdHJva2VXaWR0aCIsIkljb25zIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJGbG9hdGluZ0ZvY3VzTWFuYWdlciIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJTZWxlY3RTZWFyY2hDb250cm9sIiwiYWN0aXZlRGVzY2VuZGFudCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsInJvbGUiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsImNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBT0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUixPQUFBO0FBZ0JBLElBQUFTLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBVyxvQkFBQSxHQUFBRCxzQkFBQSxDQUFBVixPQUFBO0FBQ0EsSUFBQVksb0JBQUEsR0FBQUYsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFhLG1CQUFBLEdBQUFILHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBYyxnQkFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLE1BQUEsR0FBQWhCLE9BQUE7QUFjQUEsT0FBQTtBQUFpQixTQUFBaUIseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFWLHdCQUFBVSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEs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ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdQb3J0YWwsIHVzZUludGVyYWN0aW9ucywgdXNlTGlzdE5hdmlnYXRpb24sIHVzZVR5cGVhaGVhZCwgfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuaW1wb3J0IHsgbWVtbywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZUNvbnRyb2xsZWRTdGF0ZSwgdXNlRXZlbnRDYWxsYmFjayB9IGZyb20gJ0AxbW9uZXkvaG9va3MnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUxhYmVsIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IFNlbGVjdE9wdGlvbkNvbnRlbnQgZnJvbSAnLi9TZWxlY3RPcHRpb25Db250ZW50JztcbmltcG9ydCBTZWxlY3RTZWFyY2hDb250cm9sIGZyb20gJy4vU2VsZWN0U2VhcmNoQ29udHJvbCc7XG5pbXBvcnQgU2VsZWN0VmFsdWVDb250ZW50IGZyb20gJy4vU2VsZWN0VmFsdWVDb250ZW50JztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBLRVlCT0FSRCwgU0VMRUNUX1RZUE9HUkFQSFkgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBleHRyYWN0T3B0aW9uVGV4dCwgZmlsdGVyT3B0aW9uR3JvdXBzLCBmbGF0dGVuT3B0aW9uR3JvdXBzLCBnZXRNdWx0aXBsZVZhbHVlLCBnZXRGb250U2l6ZSwgZ2V0T3B0aW9uc0J5VmFsdWVzLCBnZXRTZWxlY3RlZE9wdGlvbnMsIGlzT3B0aW9uU2VsZWN0ZWQsIG5vcm1hbGl6ZVNpemUsIG5vcm1hbGl6ZU9wdGlvbkdyb3VwcywgcmVtb3ZlTXVsdGlwbGVWYWx1ZSwgdG9nZ2xlTXVsdGlwbGVWYWx1ZSwgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5jb25zdCBERUZBVUxUX01BWF9IRUlHSFQgPSAzMjA7XG5leHBvcnQgY29uc3QgU2VsZWN0ID0gKHByb3BzKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgcGxhY2Vob2xkZXIgPSAnVmFsdWUnLCBvcHRpb25zID0gW10sIHZhbHVlLCBkZWZhdWx0VmFsdWUsIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgcmVhZE9ubHkgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBtdWx0aXBsZSA9IGZhbHNlLCBtYXhWaXNpYmxlVmFsdWVzLCBzZWFyY2hhYmxlID0gZmFsc2UsIHNlYXJjaFBsYWNlaG9sZGVyID0gJ1NlYXJjaCcsIHNlYXJjaFZhbHVlLCBkZWZhdWx0U2VhcmNoVmFsdWUgPSAnJywgZmlsdGVySW5wdXRBdXRvRm9jdXMgPSB0cnVlLCBsYWJlbCwgbGFiZWxDbGFzc05hbWUsIGluZm8sIGRlc2NyaXB0aW9uLCBmZWVkYmFjaywgcmVxdWlyZWQgPSB0cnVlLCBwcmVmaXgsIGVtcHR5Q29udGVudCA9ICdObyBvcHRpb25zJywgcGFuZWxGb290ZXIsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIGFsbG93RGVzZWxlY3QgPSBmYWxzZSwgcGFuZWxDbGFzc05hbWUsIG9wdGlvbkNsYXNzTmFtZSwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgb2Zmc2V0LCBhbmltYXRpb24sIG9uQ2hhbmdlLCBvbk9wZW5DaGFuZ2UsIG9uU2VhcmNoQ2hhbmdlLCBvbkJsdXIsIGZpbHRlck9wdGlvbiwgcmVuZGVyT3B0aW9uLCByZW5kZXJPcHRpb25Db250ZW50LCByZW5kZXJWYWx1ZSwgcmVmLCB9ID0gcHJvcHM7XG4gICAgY29uc3QgZGlzYWJsZWQgPSBkaXNhYmxlZFByb3AgfHwgbG9hZGluZztcbiAgICBjb25zdCBpbnRlcmFjdGl2ZSA9ICFkaXNhYmxlZCAmJiAhcmVhZE9ubHk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHJvb3RDbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgYXV0b0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCB0cmlnZ2VySWQgPSBpZCAhPT0gbnVsbCAmJiBpZCAhPT0gdm9pZCAwID8gaWQgOiBhdXRvSWQ7XG4gICAgY29uc3QgbGFiZWxJZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZGVzY3JpcHRpb25JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgZmVlZGJhY2tJZCA9IHVzZUlkKCk7XG4gICAgY29uc3Qgb3B0aW9uSWRQcmVmaXggPSB1c2VJZCgpO1xuICAgIGNvbnN0IFtpbm5lclZhbHVlLCBzZXRJbm5lclZhbHVlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0VmFsdWUgIT09IG51bGwgJiYgZGVmYXVsdFZhbHVlICE9PSB2b2lkIDAgPyBkZWZhdWx0VmFsdWUgOiAobXVsdGlwbGUgPyBbXSA6IHVuZGVmaW5lZCksIHZhbHVlKTtcbiAgICBjb25zdCBbaW5uZXJTZWFyY2hWYWx1ZSwgc2V0SW5uZXJTZWFyY2hWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFNlYXJjaFZhbHVlLCBzZWFyY2hWYWx1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUluZGV4LCBzZXRBY3RpdmVJbmRleF0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgYWxsT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiBub3JtYWxpemVPcHRpb25Hcm91cHMob3B0aW9ucyksIFtvcHRpb25zXSk7XG4gICAgY29uc3QgYWxsRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHMoYWxsT3B0aW9uR3JvdXBzKSwgW2FsbE9wdGlvbkdyb3Vwc10pO1xuICAgIGNvbnN0IHZpc2libGVPcHRpb25Hcm91cHMgPSB1c2VNZW1vKCgpID0+IChzZWFyY2hhYmxlXG4gICAgICAgID8gZmlsdGVyT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcywgaW5uZXJTZWFyY2hWYWx1ZSwgZmlsdGVyT3B0aW9uKVxuICAgICAgICA6IGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHMsIGZpbHRlck9wdGlvbiwgaW5uZXJTZWFyY2hWYWx1ZSwgc2VhcmNoYWJsZV0pO1xuICAgIGNvbnN0IHZpc2libGVGbGF0T3B0aW9ucyA9IHVzZU1lbW8oKCkgPT4gZmxhdHRlbk9wdGlvbkdyb3Vwcyh2aXNpYmxlT3B0aW9uR3JvdXBzKSwgW3Zpc2libGVPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCBzZWxlY3RlZE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGdldFNlbGVjdGVkT3B0aW9ucyhhbGxGbGF0T3B0aW9ucywgaW5uZXJWYWx1ZSwgbXVsdGlwbGUpLCBbYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hlZEluZGV4ID0gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHNlbGVjdGVkT3B0aW9uc1swXS52YWx1ZSk7XG4gICAgICAgIHJldHVybiBtYXRjaGVkSW5kZXggPj0gMCA/IG1hdGNoZWRJbmRleCA6IG51bGw7XG4gICAgfSwgW3NlbGVjdGVkT3B0aW9ucywgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgY29uc3QgaGFzU2VsZWN0aW9uID0gc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGlzdFJlZiA9IHVzZVJlZihbXSk7XG4gICAgY29uc3QgbGlzdENvbnRlbnRSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGZsb2F0aW5nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRyaWdnZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlclJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgdHJpZ2dlclJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKHJlZikge1xuICAgICAgICAgICAgcmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgeyBpc09wZW46IGlubmVyT3Blbiwgc2V0T3BlbjogaGFuZGxlT3BlbkNoYW5nZSwgcmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXMsIHRyYW5zaXRpb25TdHlsZXMsIGlzTW91bnRlZCwgYmFzZUludGVyYWN0aW9ucywgfSA9IHVzZVNlbGVjdFNoZWxsKHtcbiAgICAgICAgb3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHJlYWRPbmx5LFxuICAgICAgICBsaXN0TWF4SGVpZ2h0LFxuICAgICAgICBhbmltYXRpb24sXG4gICAgICAgIG9mZnNldCxcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWZlcmVuY2UgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBoYW5kbGVUcmlnZ2VyUmVmKG5vZGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZsb2F0aW5nID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldEZsb2F0aW5nKG5vZGUpO1xuICAgICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICBjb25zdCBsaXN0TmF2aWdhdGlvbiA9IHVzZUxpc3ROYXZpZ2F0aW9uKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZixcbiAgICAgICAgYWN0aXZlSW5kZXgsXG4gICAgICAgIHNlbGVjdGVkSW5kZXgsXG4gICAgICAgIG9uTmF2aWdhdGU6IHNldEFjdGl2ZUluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4sXG4gICAgICAgIGxvb3A6IHRydWUsXG4gICAgICAgIHZpcnR1YWw6IHNlYXJjaGFibGUsXG4gICAgfSk7XG4gICAgY29uc3QgdHlwZWFoZWFkID0gdXNlVHlwZWFoZWFkKGNvbnRleHQsIHtcbiAgICAgICAgbGlzdFJlZjogbGlzdENvbnRlbnRSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBlbmFibGVkOiBpbm5lck9wZW4gJiYgIXNlYXJjaGFibGUsXG4gICAgICAgIG9uTWF0Y2g6IHNldEFjdGl2ZUluZGV4LFxuICAgIH0pO1xuICAgIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMsIGdldEl0ZW1Qcm9wcyB9ID0gdXNlSW50ZXJhY3Rpb25zKFtcbiAgICAgICAgLi4uYmFzZUludGVyYWN0aW9ucyxcbiAgICAgICAgbGlzdE5hdmlnYXRpb24sXG4gICAgICAgIHR5cGVhaGVhZCxcbiAgICBdKTtcbiAgICBjb25zdCBmaXJzdEVuYWJsZWRJbmRleCA9IHVzZU1lbW8oKCkgPT4gdmlzaWJsZUZsYXRPcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiAhb3B0aW9uLmRpc2FibGVkKSwgW3Zpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghaW5uZXJPcGVuKSB7XG4gICAgICAgICAgICBzZXRBY3RpdmVJbmRleChzZWxlY3RlZEluZGV4KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBzZXRBY3RpdmVJbmRleCgocHJldikgPT4ge1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwgJiYgdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdICYmICF2aXNpYmxlRmxhdE9wdGlvbnNbcHJldl0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW3NlbGVjdGVkSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XS5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZEluZGV4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGZpcnN0RW5hYmxlZEluZGV4ID49IDAgPyBmaXJzdEVuYWJsZWRJbmRleCA6IG51bGw7XG4gICAgICAgIH0pO1xuICAgIH0sIFtmaXJzdEVuYWJsZWRJbmRleCwgaW5uZXJPcGVuLCBzZWxlY3RlZEluZGV4LCB2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghaW5uZXJPcGVuIHx8IGFjdGl2ZUluZGV4ID09PSBudWxsIHx8IHNlYXJjaGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAoX2EgPSBsaXN0UmVmLmN1cnJlbnRbYWN0aXZlSW5kZXhdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0sIFthY3RpdmVJbmRleCwgaW5uZXJPcGVuLCBzZWFyY2hhYmxlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGlzdFJlZi5jdXJyZW50ID0gbGlzdFJlZi5jdXJyZW50LnNsaWNlKDAsIHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGgpO1xuICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50ID0gbGlzdENvbnRlbnRSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICB9LCBbdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aF0pO1xuICAgIGNvbnN0IHNldFNlYXJjaElucHV0UmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICBzZWFyY2hJbnB1dFJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgaWYgKG5vZGUgJiYgaW5uZXJPcGVuICYmIGZpbHRlcklucHV0QXV0b0ZvY3VzKSB7XG4gICAgICAgICAgICBub2RlLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IG5vdGlmeUJsdXJJZk91dHNpZGUgPSB1c2VFdmVudENhbGxiYWNrKChyZWxhdGVkVGFyZ2V0LCBldmVudCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBjb25zdCBuZXh0VGFyZ2V0ID0gcmVsYXRlZFRhcmdldDtcbiAgICAgICAgY29uc3Qgd2l0aGluVHJpZ2dlciA9ICEhKG5leHRUYXJnZXQgJiYgKChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGNvbnN0IHdpdGhpbkZsb2F0aW5nID0gISEobmV4dFRhcmdldCAmJiAoKF9iID0gZmxvYXRpbmdSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmNvbnRhaW5zKG5leHRUYXJnZXQpKSk7XG4gICAgICAgIGlmICghd2l0aGluVHJpZ2dlciAmJiAhd2l0aGluRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihldmVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9wdGlvbkJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjb21taXRDaGFuZ2UgPSB1c2VFdmVudENhbGxiYWNrKChuZXh0VmFsdWUsIG5leHRPcHRpb24pID0+IHtcbiAgICAgICAgc2V0SW5uZXJWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9uLCBuYW1lKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWxlY3RPcHRpb24gPSB1c2VFdmVudENhbGxiYWNrKChvcHRpb24pID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChtdWx0aXBsZSkge1xuICAgICAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gdG9nZ2xlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFsbG93RGVzZWxlY3QgJiYgaW5uZXJWYWx1ZSA9PT0gb3B0aW9uLnZhbHVlKSB7XG4gICAgICAgICAgICBjb21taXRDaGFuZ2UodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoKTtcbiAgICAgICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb21taXRDaGFuZ2Uob3B0aW9uLnZhbHVlLCBvcHRpb24pO1xuICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgIChfYiA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVSZW1vdmVTZWxlY3RlZFZhbHVlID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uVmFsdWUpID0+IHtcbiAgICAgICAgaWYgKCFtdWx0aXBsZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZ2V0TXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlKS5pbmNsdWRlcyhvcHRpb25WYWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBuZXh0VmFsdWUgPSByZW1vdmVNdWx0aXBsZVZhbHVlKGlubmVyVmFsdWUsIG9wdGlvblZhbHVlKTtcbiAgICAgICAgY29uc3QgbmV4dE9wdGlvbnMgPSBnZXRPcHRpb25zQnlWYWx1ZXMoYWxsRmxhdE9wdGlvbnMsIG5leHRWYWx1ZSk7XG4gICAgICAgIGNvbW1pdENoYW5nZShuZXh0VmFsdWUsIG5leHRPcHRpb25zKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGlmICghaW50ZXJhY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELlNQQUNFKSB7XG4gICAgICAgICAgICBpZiAoaW5uZXJPcGVuICYmXG4gICAgICAgICAgICAgICAgYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZSghaW5uZXJPcGVuKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOIHx8IGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVJdGVtTW91c2VFbnRlciA9IHVzZUV2ZW50Q2FsbGJhY2soKGluZGV4KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKCEoKF9hID0gdmlzaWJsZUZsYXRPcHRpb25zW2luZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVGFnUmVtb3ZlQ2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQ2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBfZXZlbnQpID0+IHtcbiAgICAgICAgc2V0SW5uZXJTZWFyY2hWYWx1ZShuZXh0VmFsdWUpO1xuICAgICAgICBvblNlYXJjaENoYW5nZSA9PT0gbnVsbCB8fCBvblNlYXJjaENoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25TZWFyY2hDaGFuZ2UobmV4dFZhbHVlKTtcbiAgICB9KTtcbiAgICBjb25zdCBmaW5kRW5hYmxlZEluZGV4ID0gdXNlRXZlbnRDYWxsYmFjaygoY3VycmVudCwgZGlyZWN0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgbGVuZ3RoID0gdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aDtcbiAgICAgICAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3RhcnQgPSBjdXJyZW50ICE9PSBudWxsICYmIGN1cnJlbnQgIT09IHZvaWQgMCA/IGN1cnJlbnQgOiAoZGlyZWN0aW9uID09PSAxID8gLTEgOiBsZW5ndGgpO1xuICAgICAgICBmb3IgKGxldCBzdGVwID0gMTsgc3RlcCA8PSBsZW5ndGg7IHN0ZXAgKz0gMSkge1xuICAgICAgICAgICAgY29uc3QgY2FuZGlkYXRlID0gKChzdGFydCArIGRpcmVjdGlvbiAqIHN0ZXApICUgbGVuZ3RoICsgbGVuZ3RoKSAlIGxlbmd0aDtcbiAgICAgICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tjYW5kaWRhdGVdKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZGlzYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVTZWFyY2hLZXlEb3duID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19ET1dOKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgY29uc3QgbmV4dCA9IGZpbmRFbmFibGVkSW5kZXgoYWN0aXZlSW5kZXgsIDEpO1xuICAgICAgICAgICAgaWYgKG5leHQgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChuZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5BUlJPV19VUCkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAtMSk7XG4gICAgICAgICAgICBpZiAocHJldiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KHByZXYpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5rZXkgPT09IEtFWUJPQVJELkVOVEVSKSB7XG4gICAgICAgICAgICBpZiAoYWN0aXZlSW5kZXggIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICB2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdICYmXG4gICAgICAgICAgICAgICAgIXZpc2libGVGbGF0T3B0aW9uc1thY3RpdmVJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbih2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FU0NBUEUpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKGZhbHNlKTtcbiAgICAgICAgICAgIChfYSA9IHRyaWdnZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHJlbmRlclZhbHVlTWV0YSA9IHtcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHJlYWRPbmx5LFxuICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyxcbiAgICAgICAgb3BlbjogaW5uZXJPcGVuLFxuICAgICAgICBwbGFjZWhvbGRlcjogIWhhc1NlbGVjdGlvbixcbiAgICAgICAgc2VsZWN0ZWRPcHRpb25zLFxuICAgICAgICBzaXplOiBub3JtYWxpemVkU2l6ZSxcbiAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICB9O1xuICAgIGNvbnN0IHZhbHVlTGFiZWxDbGFzcyA9IGhhc1NlbGVjdGlvbiA/ICd2YWx1ZScgOiAncGxhY2Vob2xkZXInO1xuICAgIGNvbnN0IGlzTXVsdGlwbGVWYWx1ZUZpbGxlZCA9IChtdWx0aXBsZSAmJlxuICAgICAgICBoYXNTZWxlY3Rpb24gJiZcbiAgICAgICAgbWF4VmlzaWJsZVZhbHVlcyA9PT0gdW5kZWZpbmVkKTtcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaW5uZXJPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1tdWx0aXBsZS1maWxsZWQnKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpLCByZWFkT25seSAmJiAhZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1yZWFkb25seScpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ3NtYWxsJyA/IDE2IDogMjA7XG4gICAgY29uc3QgYWN0aXZlT3B0aW9uSWQgPSBzZWFyY2hhYmxlICYmIGlubmVyT3BlbiAmJiBhY3RpdmVJbmRleCAhPT0gbnVsbFxuICAgICAgICA/IGAke29wdGlvbklkUHJlZml4fS0ke2FjdGl2ZUluZGV4fWBcbiAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW1xuICAgICAgICBkZXNjcmlwdGlvbiA/IGRlc2NyaXB0aW9uSWQgOiBudWxsLFxuICAgICAgICBmZWVkYmFjayA/IGZlZWRiYWNrSWQgOiBudWxsLFxuICAgIF0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIChfanN4cyhTZWxlY3RGaWVsZFNoZWxsLCB7IGNsYXNzZXM6IGNsYXNzZXMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgdmFyaWFudDogdmFyaWFudCwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgcmVhZE9ubHk6IHJlYWRPbmx5LCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGxhYmVsQ2xhc3NOYW1lOiBsYWJlbENsYXNzTmFtZSwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICdhcmlhLXJlYWRvbmx5JzogcmVhZE9ubHkgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbktleURvd246IGhhbmRsZVRyaWdnZXJLZXlEb3duLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBpc011bHRpcGxlVmFsdWVGaWxsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LW11bHRpcGxlYCksIGRpc2FibGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1kaXNhYmxlZGApKSksIGNoaWxkcmVuOiBfanN4KFNlbGVjdFZhbHVlQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBoYXNTZWxlY3Rpb246IGhhc1NlbGVjdGlvbiwgbXVsdGlwbGU6IG11bHRpcGxlLCBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsIHJlbmRlclZhbHVlOiByZW5kZXJWYWx1ZSwgcmVuZGVyVmFsdWVNZXRhOiByZW5kZXJWYWx1ZU1ldGEsIHNlbGVjdGVkT3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLCBtYXhWaXNpYmxlVmFsdWVzOiBtYXhWaXNpYmxlVmFsdWVzLCBvblJlbW92ZTogaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSwgb25SZW1vdmVDbGljazogaGFuZGxlVGFnUmVtb3ZlQ2xpY2ssIG9uUmVtb3ZlTW91c2VEb3duOiBoYW5kbGVUYWdSZW1vdmVNb3VzZURvd24gfSkgfSldIH0pLCBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX2pzeChTcGlubmVyLCB7IHNpemU6IGljb25TaXplLCBzdHJva2VXaWR0aDogMiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVhZE9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX2pzeChJY29ucywgeyBuYW1lOiBpbm5lck9wZW4gPyAnY2hldnJvblVwJyA6ICdjaGV2cm9uRG93bicsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSB9KV0gfSkpLCBpc01vdW50ZWQgJiYgaW50ZXJhY3RpdmUgJiYgKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYW5lbE5vZGUgPSAoX2pzeChGbG9hdGluZ0ZvY3VzTWFuYWdlciwgeyBjb250ZXh0OiBjb250ZXh0LCBtb2RhbDogZmFsc2UsIGluaXRpYWxGb2N1czogLTEsIHJldHVybkZvY3VzOiBmYWxzZSwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEZsb2F0aW5nUHJvcHMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmOiBzZXRGbG9hdGluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogam9pbkNscyhjbGFzc2VzKCdwYW5lbCcpLCBwYW5lbENsYXNzTmFtZSksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBmbG9hdGluZ1N0eWxlcyksIHRyYW5zaXRpb25TdHlsZXMpLFxuICAgICAgICAgICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW3NlYXJjaGFibGUgJiYgKF9qc3goU2VsZWN0U2VhcmNoQ29udHJvbCwgeyByZWY6IHNldFNlYXJjaElucHV0UmVmLCBjbGFzc2VzOiBjbGFzc2VzLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgcGxhY2Vob2xkZXI6IHNlYXJjaFBsYWNlaG9sZGVyLCB2YWx1ZTogaW5uZXJTZWFyY2hWYWx1ZSwgYWN0aXZlRGVzY2VuZGFudDogYWN0aXZlT3B0aW9uSWQsIG9uQmx1cjogaGFuZGxlU2VhcmNoQmx1ciwgb25DaGFuZ2U6IGhhbmRsZVNlYXJjaENoYW5nZSwgb25LZXlEb3duOiBoYW5kbGVTZWFyY2hLZXlEb3duIH0pKSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCA9PT0gMCA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbXB0eScpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5zaXplLCBjb2xvcjogU0VMRUNUX1RZUE9HUkFQSFkuZW1wdHkuY29sb3IsIGNoaWxkcmVuOiBlbXB0eUNvbnRlbnQgfSkgfSkpIDogKCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmxhdEluZGV4ID0gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2aXNpYmxlT3B0aW9uR3JvdXBzLm1hcCgoZ3JvdXApID0+IChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAnKSwgY2hpbGRyZW46IFtncm91cC5sYWJlbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZ3JvdXAtbGFiZWwnKSwgY2hpbGRyZW46IF9qc3goVHlwb2dyYXBoeUxhYmVsLCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmdyb3VwTGFiZWwuc2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogZ3JvdXAubGFiZWwgfSkgfSkpLCBncm91cC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25GbGF0SW5kZXggPSBmbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGF0SW5kZXggKz0gMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gaXNPcHRpb25TZWxlY3RlZChpbm5lclZhbHVlLCBtdWx0aXBsZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGFjdGl2ZUluZGV4ID09PSBvcHRpb25GbGF0SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25NZXRhID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogISFvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXg6IG9wdGlvbkZsYXRJbmRleCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuOiBpbm5lck9wZW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0Q29udGVudFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBleHRyYWN0T3B0aW9uVGV4dChvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldEl0ZW1Qcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmKG5vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdFJlZi5jdXJyZW50W29wdGlvbkZsYXRJbmRleF0gPSBub2RlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGAke29wdGlvbklkUHJlZml4fS0ke29wdGlvbkZsYXRJbmRleH1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU6ICdvcHRpb24nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogY2xhc3Nlcygnb3B0aW9uJywgam9pbkNscyhhY3RpdmUgJiYgY2xhc3Nlcygnb3B0aW9uLWFjdGl2ZScpLCBzZWxlY3RlZCAmJiBjbGFzc2VzKCdvcHRpb24tc2VsZWN0ZWQnKSwgb3B0aW9uLmRpc2FibGVkICYmIGNsYXNzZXMoJ29wdGlvbi1kaXNhYmxlZCcpLCBvcHRpb25DbGFzc05hbWUpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogb3B0aW9uLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmlhLXNlbGVjdGVkJzogc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljazogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdE9wdGlvbihvcHRpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyOiAoKSA9PiBoYW5kbGVJdGVtTW91c2VFbnRlcihvcHRpb25GbGF0SW5kZXgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlT3B0aW9uQmx1cixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiByZW5kZXJPcHRpb24gPyAocmVuZGVyT3B0aW9uKG9wdGlvbiwgb3B0aW9uTWV0YSkpIDogKF9qc3goU2VsZWN0T3B0aW9uQ29udGVudCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBvcHRpb246IG9wdGlvbiwgc2VsZWN0ZWQ6IHNlbGVjdGVkLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgY29udGVudDogcmVuZGVyT3B0aW9uQ29udGVudCA9PT0gbnVsbCB8fCByZW5kZXJPcHRpb25Db250ZW50ID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZW5kZXJPcHRpb25Db250ZW50KG9wdGlvbiwgb3B0aW9uTWV0YSkgfSkpIH0pLCBgJHtncm91cC5rZXl9LSR7b3B0aW9uLnZhbHVlfWApKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSldIH0sIGdyb3VwLmtleSkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0LmRpc3BsYXlOYW1lID0gJ1NlbGVjdCc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdCk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
580
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdC50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl9ob29rcyIsIl9JY29ucyIsIl9TcGlubmVyIiwiX1R5cG9ncmFwaHkiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX1NlbGVjdEZpZWxkU2hlbGwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX1NlbGVjdE9wdGlvbkNvbnRlbnQiLCJfU2VsZWN0U2VhcmNoQ29udHJvbCIsIl9TZWxlY3RWYWx1ZUNvbnRlbnQiLCJfdXNlU2VsZWN0U2hlbGwyIiwiX2NvbnN0YW50cyIsIl91dGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkRFRkFVTFRfTUFYX0hFSUdIVCIsIlNlbGVjdCIsImV4cG9ydHMiLCJwcm9wcyIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRwbGFjZWhvbGRlciIsInBsYWNlaG9sZGVyIiwiX3Byb3BzJG9wdGlvbnMiLCJvcHRpb25zIiwidmFsdWUiLCJkZWZhdWx0VmFsdWUiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJfcHJvcHMkc3RhdHVzIiwic3RhdHVzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJGRpc2FibGVkIiwiZGlzYWJsZWQiLCJkaXNhYmxlZFByb3AiLCJfcHJvcHMkcmVhZE9ubHkiLCJyZWFkT25seSIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIl9wcm9wcyRtdWx0aXBsZSIsIm11bHRpcGxlIiwibWF4VmlzaWJsZVZhbHVlcyIsIl9wcm9wcyRzZWFyY2hhYmxlIiwic2VhcmNoYWJsZSIsIl9wcm9wcyRzZWFyY2hQbGFjZWhvbCIsInNlYXJjaFBsYWNlaG9sZGVyIiwic2VhcmNoVmFsdWUiLCJfcHJvcHMkZGVmYXVsdFNlYXJjaFYiLCJkZWZhdWx0U2VhcmNoVmFsdWUiLCJfcHJvcHMkZmlsdGVySW5wdXRBdXQiLCJmaWx0ZXJJbnB1dEF1dG9Gb2N1cyIsImxhYmVsIiwibGFiZWxDbGFzc05hbWUiLCJpbmZvIiwiZGVzY3JpcHRpb24iLCJmZWVkYmFjayIsIl9wcm9wcyRyZXF1aXJlZCIsInJlcXVpcmVkIiwicHJlZml4IiwiX3Byb3BzJGVtcHR5Q29udGVudCIsImVtcHR5Q29udGVudCIsInBhbmVsRm9vdGVyIiwib3BlbiIsIl9wcm9wcyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwiX3Byb3BzJHBvcnRhbCIsInBvcnRhbCIsIl9wcm9wcyRhbGxvd0Rlc2VsZWN0IiwiYWxsb3dEZXNlbGVjdCIsInBhbmVsQ2xhc3NOYW1lIiwib3B0aW9uQ2xhc3NOYW1lIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0Iiwib2Zmc2V0IiwiYW5pbWF0aW9uIiwib25DaGFuZ2UiLCJvbk9wZW5DaGFuZ2UiLCJvblNlYXJjaENoYW5nZSIsIm9uQmx1ciIsImZpbHRlck9wdGlvbiIsInJlbmRlck9wdGlvbiIsInJlbmRlck9wdGlvbkNvbnRlbnQiLCJyZW5kZXJWYWx1ZSIsInJlZiIsImludGVyYWN0aXZlIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJvcHRpb25JZFByZWZpeCIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1bmRlZmluZWQiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlubmVyVmFsdWUiLCJzZXRJbm5lclZhbHVlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTMiLCJfdXNlQ29udHJvbGxlZFN0YXRlNCIsImlubmVyU2VhcmNoVmFsdWUiLCJzZXRJbm5lclNlYXJjaFZhbHVlIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsIm5vcm1hbGl6ZWRTaXplIiwibm9ybWFsaXplU2l6ZSIsImFsbE9wdGlvbkdyb3VwcyIsInVzZU1lbW8iLCJub3JtYWxpemVPcHRpb25Hcm91cHMiLCJhbGxGbGF0T3B0aW9ucyIsImZsYXR0ZW5PcHRpb25Hcm91cHMiLCJ2aXNpYmxlT3B0aW9uR3JvdXBzIiwiZmlsdGVyT3B0aW9uR3JvdXBzIiwidmlzaWJsZUZsYXRPcHRpb25zIiwic2VsZWN0ZWRPcHRpb25zIiwiZ2V0U2VsZWN0ZWRPcHRpb25zIiwic2VsZWN0ZWRJbmRleCIsImxlbmd0aCIsIm1hdGNoZWRJbmRleCIsImZpbmRJbmRleCIsIm9wdGlvbiIsImhhc1NlbGVjdGlvbiIsImxpc3RSZWYiLCJ1c2VSZWYiLCJsaXN0Q29udGVudFJlZiIsImZsb2F0aW5nUmVmIiwidHJpZ2dlclJlZiIsInNlYXJjaElucHV0UmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCIsIl91c2VTZWxlY3RTaGVsbCIsInVzZVNlbGVjdFNoZWxsIiwiaW5uZXJPcGVuIiwiaXNPcGVuIiwiaGFuZGxlT3BlbkNoYW5nZSIsInNldE9wZW4iLCJyZWZzIiwiY29udGV4dCIsImZsb2F0aW5nU3R5bGVzIiwidHJhbnNpdGlvblN0eWxlcyIsImlzTW91bnRlZCIsImJhc2VJbnRlcmFjdGlvbnMiLCJzZXRSZWZlcmVuY2UiLCJzZXRGbG9hdGluZyIsImxpc3ROYXZpZ2F0aW9uIiwidXNlTGlzdE5hdmlnYXRpb24iLCJvbk5hdmlnYXRlIiwiZW5hYmxlZCIsImxvb3AiLCJ2aXJ0dWFsIiwidHlwZWFoZWFkIiwidXNlVHlwZWFoZWFkIiwib25NYXRjaCIsIl91c2VJbnRlcmFjdGlvbnMiLCJ1c2VJbnRlcmFjdGlvbnMiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwiZ2V0SXRlbVByb3BzIiwiZmlyc3RFbmFibGVkSW5kZXgiLCJ1c2VFZmZlY3QiLCJwcmV2IiwiX2EiLCJmb2N1cyIsInByZXZlbnRTY3JvbGwiLCJzbGljZSIsInNldFNlYXJjaElucHV0UmVmIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJoYW5kbGVPcHRpb25CbHVyIiwiY29tbWl0Q2hhbmdlIiwibmV4dFZhbHVlIiwibmV4dE9wdGlvbiIsImhhbmRsZVNlbGVjdE9wdGlvbiIsInRvZ2dsZU11bHRpcGxlVmFsdWUiLCJuZXh0T3B0aW9ucyIsImdldE9wdGlvbnNCeVZhbHVlcyIsImhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUiLCJvcHRpb25WYWx1ZSIsImdldE11bHRpcGxlVmFsdWUiLCJpbmNsdWRlcyIsInJlbW92ZU11bHRpcGxlVmFsdWUiLCJoYW5kbGVUcmlnZ2VyS2V5RG93biIsImtleSIsIktFWUJPQVJEIiwiRU5URVIiLCJTUEFDRSIsInByZXZlbnREZWZhdWx0IiwiQVJST1dfRE9XTiIsIkFSUk9XX1VQIiwiaGFuZGxlSXRlbU1vdXNlRW50ZXIiLCJpbmRleCIsImhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVRhZ1JlbW92ZUNsaWNrIiwiaGFuZGxlU2VhcmNoQmx1ciIsImhhbmRsZVNlYXJjaENoYW5nZSIsIl9ldmVudCIsImZpbmRFbmFibGVkSW5kZXgiLCJkaXJlY3Rpb24iLCJzdGFydCIsInN0ZXAiLCJjYW5kaWRhdGUiLCJoYW5kbGVTZWFyY2hLZXlEb3duIiwibmV4dCIsIkVTQ0FQRSIsInJlbmRlclZhbHVlTWV0YSIsImZvbnRTaXplIiwiZ2V0Rm9udFNpemUiLCJ2YWx1ZUxhYmVsQ2xhc3MiLCJpc011bHRpcGxlVmFsdWVGaWxsZWQiLCJ0cmlnZ2VyQ2xhc3NOYW1lIiwiam9pbkNscyIsImljb25TaXplIiwiYWN0aXZlT3B0aW9uSWQiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsIl9qc3hzIiwiU2VsZWN0RmllbGRTaGVsbCIsImNoaWxkcmVuIiwiYXNzaWduIiwidHlwZSIsIm9uS2V5RG93biIsIl9qc3giLCJTZWxlY3RWYWx1ZUNvbnRlbnQiLCJvblJlbW92ZSIsIm9uUmVtb3ZlQ2xpY2siLCJvblJlbW92ZU1vdXNlRG93biIsIlNwaW5uZXIiLCJzdHJva2VXaWR0aCIsIkljb25zIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJGbG9hdGluZ0ZvY3VzTWFuYWdlciIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJTZWxlY3RTZWFyY2hDb250cm9sIiwiYWN0aXZlRGVzY2VuZGFudCIsIlR5cG9ncmFwaHlCb2R5IiwiU0VMRUNUX1RZUE9HUkFQSFkiLCJlbXB0eSIsImZsYXRJbmRleCIsIm1hcCIsImdyb3VwIiwiVHlwb2dyYXBoeUxhYmVsIiwiZ3JvdXBMYWJlbCIsInN0cm9uZyIsIm9wdGlvbkZsYXRJbmRleCIsInNlbGVjdGVkIiwiaXNPcHRpb25TZWxlY3RlZCIsImFjdGl2ZSIsIm9wdGlvbk1ldGEiLCJleHRyYWN0T3B0aW9uVGV4dCIsInJvbGUiLCJvbkNsaWNrIiwib25Nb3VzZUVudGVyIiwiU2VsZWN0T3B0aW9uQ29udGVudCIsImNvbnRlbnQiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDQUEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBT0EsSUFBQUUsT0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBQyx1QkFBQSxDQUFBUixPQUFBO0FBZ0JBLElBQUFTLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBVyxvQkFBQSxHQUFBRCxzQkFBQSxDQUFBVixPQUFBO0FBQ0EsSUFBQVksb0JBQUEsR0FBQUYsc0JBQUEsQ0FBQVYsT0FBQTtBQUNBLElBQUFhLG1CQUFBLEdBQUFILHNCQUFBLENBQUFWLE9BQUE7QUFDQSxJQUFBYyxnQkFBQSxHQUFBZCxPQUFBO0FBQ0EsSUFBQWUsVUFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLE1BQUEsR0FBQWhCLE9BQUE7QUFjQUEsT0FBQTtBQUFpQixTQUFBaUIseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFWLHdCQUFBVSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEs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dGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCwganN4cyBhcyBfanN4cyB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgRmxvYXRpbmdGb2N1c01hbmFnZXIsIEZsb2F0aW5nUG9ydGFsLCB1c2VJbnRlcmFjdGlvbnMsIHVzZUxpc3ROYXZpZ2F0aW9uLCB1c2VUeXBlYWhlYWQsIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUVmZmVjdCwgdXNlSWQsIHVzZU1lbW8sIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VDb250cm9sbGVkU3RhdGUsIHVzZUV2ZW50Q2FsbGJhY2sgfSBmcm9tICdAMW1vbmV5L2hvb2tzJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgVHlwb2dyYXBoeUJvZHksIFR5cG9ncmFwaHlMYWJlbCB9IGZyb20gJy4uL1R5cG9ncmFwaHknO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCBTZWxlY3RPcHRpb25Db250ZW50IGZyb20gJy4vU2VsZWN0T3B0aW9uQ29udGVudCc7XG5pbXBvcnQgU2VsZWN0U2VhcmNoQ29udHJvbCBmcm9tICcuL1NlbGVjdFNlYXJjaENvbnRyb2wnO1xuaW1wb3J0IFNlbGVjdFZhbHVlQ29udGVudCBmcm9tICcuL1NlbGVjdFZhbHVlQ29udGVudCc7XG5pbXBvcnQgeyB1c2VTZWxlY3RTaGVsbCB9IGZyb20gJy4vdXNlU2VsZWN0U2hlbGwnO1xuaW1wb3J0IHsgS0VZQk9BUkQsIFNFTEVDVF9UWVBPR1JBUEhZIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXh0cmFjdE9wdGlvblRleHQsIGZpbHRlck9wdGlvbkdyb3VwcywgZmxhdHRlbk9wdGlvbkdyb3VwcywgZ2V0TXVsdGlwbGVWYWx1ZSwgZ2V0Rm9udFNpemUsIGdldE9wdGlvbnNCeVZhbHVlcywgZ2V0U2VsZWN0ZWRPcHRpb25zLCBpc09wdGlvblNlbGVjdGVkLCBub3JtYWxpemVTaXplLCBub3JtYWxpemVPcHRpb25Hcm91cHMsIHJlbW92ZU11bHRpcGxlVmFsdWUsIHRvZ2dsZU11bHRpcGxlVmFsdWUsIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgREVGQVVMVF9NQVhfSEVJR0hUID0gMzIwO1xuZXhwb3J0IGNvbnN0IFNlbGVjdCA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHBsYWNlaG9sZGVyID0gJ1ZhbHVlJywgb3B0aW9ucyA9IFtdLCB2YWx1ZSwgZGVmYXVsdFZhbHVlLCBzaXplID0gJ2xhcmdlJywgc3RhdHVzID0gJ2RlZmF1bHQnLCB2YXJpYW50ID0gJ2ZpbGwnLCBkaXNhYmxlZDogZGlzYWJsZWRQcm9wID0gZmFsc2UsIHJlYWRPbmx5ID0gZmFsc2UsIGxvYWRpbmcgPSBmYWxzZSwgbXVsdGlwbGUgPSBmYWxzZSwgbWF4VmlzaWJsZVZhbHVlcywgc2VhcmNoYWJsZSA9IGZhbHNlLCBzZWFyY2hQbGFjZWhvbGRlciA9ICdTZWFyY2gnLCBzZWFyY2hWYWx1ZSwgZGVmYXVsdFNlYXJjaFZhbHVlID0gJycsIGZpbHRlcklucHV0QXV0b0ZvY3VzID0gdHJ1ZSwgbGFiZWwsIGxhYmVsQ2xhc3NOYW1lLCBpbmZvLCBkZXNjcmlwdGlvbiwgZmVlZGJhY2ssIHJlcXVpcmVkID0gdHJ1ZSwgcHJlZml4LCBlbXB0eUNvbnRlbnQgPSAnTm8gb3B0aW9ucycsIHBhbmVsRm9vdGVyLCBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBwb3J0YWwgPSB0cnVlLCBhbGxvd0Rlc2VsZWN0ID0gZmFsc2UsIHBhbmVsQ2xhc3NOYW1lLCBvcHRpb25DbGFzc05hbWUsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX01BWF9IRUlHSFQsIG9mZnNldCwgYW5pbWF0aW9uLCBvbkNoYW5nZSwgb25PcGVuQ2hhbmdlLCBvblNlYXJjaENoYW5nZSwgb25CbHVyLCBmaWx0ZXJPcHRpb24sIHJlbmRlck9wdGlvbiwgcmVuZGVyT3B0aW9uQ29udGVudCwgcmVuZGVyVmFsdWUsIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IG9wdGlvbklkUHJlZml4ID0gdXNlSWQoKTtcbiAgICBjb25zdCBbaW5uZXJWYWx1ZSwgc2V0SW5uZXJWYWx1ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdFZhbHVlICE9PSBudWxsICYmIGRlZmF1bHRWYWx1ZSAhPT0gdm9pZCAwID8gZGVmYXVsdFZhbHVlIDogKG11bHRpcGxlID8gW10gOiB1bmRlZmluZWQpLCB2YWx1ZSk7XG4gICAgY29uc3QgW2lubmVyU2VhcmNoVmFsdWUsIHNldElubmVyU2VhcmNoVmFsdWVdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRTZWFyY2hWYWx1ZSwgc2VhcmNoVmFsdWUpO1xuICAgIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZFNpemUgPSBub3JtYWxpemVTaXplKHNpemUpO1xuICAgIGNvbnN0IGFsbE9wdGlvbkdyb3VwcyA9IHVzZU1lbW8oKCkgPT4gbm9ybWFsaXplT3B0aW9uR3JvdXBzKG9wdGlvbnMpLCBbb3B0aW9uc10pO1xuICAgIGNvbnN0IGFsbEZsYXRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBmbGF0dGVuT3B0aW9uR3JvdXBzKGFsbE9wdGlvbkdyb3VwcyksIFthbGxPcHRpb25Hcm91cHNdKTtcbiAgICBjb25zdCB2aXNpYmxlT3B0aW9uR3JvdXBzID0gdXNlTWVtbygoKSA9PiAoc2VhcmNoYWJsZVxuICAgICAgICA/IGZpbHRlck9wdGlvbkdyb3VwcyhhbGxPcHRpb25Hcm91cHMsIGlubmVyU2VhcmNoVmFsdWUsIGZpbHRlck9wdGlvbilcbiAgICAgICAgOiBhbGxPcHRpb25Hcm91cHMpLCBbYWxsT3B0aW9uR3JvdXBzLCBmaWx0ZXJPcHRpb24sIGlubmVyU2VhcmNoVmFsdWUsIHNlYXJjaGFibGVdKTtcbiAgICBjb25zdCB2aXNpYmxlRmxhdE9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IGZsYXR0ZW5PcHRpb25Hcm91cHModmlzaWJsZU9wdGlvbkdyb3VwcyksIFt2aXNpYmxlT3B0aW9uR3JvdXBzXSk7XG4gICAgY29uc3Qgc2VsZWN0ZWRPcHRpb25zID0gdXNlTWVtbygoKSA9PiBnZXRTZWxlY3RlZE9wdGlvbnMoYWxsRmxhdE9wdGlvbnMsIGlubmVyVmFsdWUsIG11bHRpcGxlKSwgW2FsbEZsYXRPcHRpb25zLCBpbm5lclZhbHVlLCBtdWx0aXBsZV0pO1xuICAgIGNvbnN0IHNlbGVjdGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoZWRJbmRleCA9IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLnZhbHVlID09PSBzZWxlY3RlZE9wdGlvbnNbMF0udmFsdWUpO1xuICAgICAgICByZXR1cm4gbWF0Y2hlZEluZGV4ID49IDAgPyBtYXRjaGVkSW5kZXggOiBudWxsO1xuICAgIH0sIFtzZWxlY3RlZE9wdGlvbnMsIHZpc2libGVGbGF0T3B0aW9uc10pO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwO1xuICAgIGNvbnN0IGxpc3RSZWYgPSB1c2VSZWYoW10pO1xuICAgIGNvbnN0IGxpc3RDb250ZW50UmVmID0gdXNlUmVmKFtdKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHNlYXJjaElucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuOiBpbm5lck9wZW4sIHNldE9wZW46IGhhbmRsZU9wZW5DaGFuZ2UsIHJlZnMsIGNvbnRleHQsIGZsb2F0aW5nU3R5bGVzLCB0cmFuc2l0aW9uU3R5bGVzLCBpc01vdW50ZWQsIGJhc2VJbnRlcmFjdGlvbnMsIH0gPSB1c2VTZWxlY3RTaGVsbCh7XG4gICAgICAgIG9wZW4sXG4gICAgICAgIGRlZmF1bHRPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2UsXG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICBvZmZzZXQsXG4gICAgfSk7XG4gICAgY29uc3Qgc2V0UmVmZXJlbmNlID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldFJlZmVyZW5jZShub2RlKTtcbiAgICAgICAgaGFuZGxlVHJpZ2dlclJlZihub2RlKTtcbiAgICB9KTtcbiAgICBjb25zdCBzZXRGbG9hdGluZyA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRGbG9hdGluZyhub2RlKTtcbiAgICAgICAgZmxvYXRpbmdSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgfSk7XG4gICAgY29uc3QgbGlzdE5hdmlnYXRpb24gPSB1c2VMaXN0TmF2aWdhdGlvbihjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWYsXG4gICAgICAgIGFjdGl2ZUluZGV4LFxuICAgICAgICBzZWxlY3RlZEluZGV4LFxuICAgICAgICBvbk5hdmlnYXRlOiBzZXRBY3RpdmVJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuLFxuICAgICAgICBsb29wOiB0cnVlLFxuICAgICAgICB2aXJ0dWFsOiBzZWFyY2hhYmxlLFxuICAgIH0pO1xuICAgIGNvbnN0IHR5cGVhaGVhZCA9IHVzZVR5cGVhaGVhZChjb250ZXh0LCB7XG4gICAgICAgIGxpc3RSZWY6IGxpc3RDb250ZW50UmVmLFxuICAgICAgICBhY3RpdmVJbmRleCxcbiAgICAgICAgc2VsZWN0ZWRJbmRleCxcbiAgICAgICAgZW5hYmxlZDogaW5uZXJPcGVuICYmICFzZWFyY2hhYmxlLFxuICAgICAgICBvbk1hdGNoOiBzZXRBY3RpdmVJbmRleCxcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzLCBnZXRJdGVtUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhbXG4gICAgICAgIC4uLmJhc2VJbnRlcmFjdGlvbnMsXG4gICAgICAgIGxpc3ROYXZpZ2F0aW9uLFxuICAgICAgICB0eXBlYWhlYWQsXG4gICAgXSk7XG4gICAgY29uc3QgZmlyc3RFbmFibGVkSW5kZXggPSB1c2VNZW1vKCgpID0+IHZpc2libGVGbGF0T3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCksIFt2aXNpYmxlRmxhdE9wdGlvbnNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWlubmVyT3Blbikge1xuICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgoc2VsZWN0ZWRJbmRleCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IHtcbiAgICAgICAgICAgIGlmIChwcmV2ICE9PSBudWxsICYmIHZpc2libGVGbGF0T3B0aW9uc1twcmV2XSAmJiAhdmlzaWJsZUZsYXRPcHRpb25zW3ByZXZdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgICAgIHZpc2libGVGbGF0T3B0aW9uc1tzZWxlY3RlZEluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbc2VsZWN0ZWRJbmRleF0uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRJbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaXJzdEVuYWJsZWRJbmRleCA+PSAwID8gZmlyc3RFbmFibGVkSW5kZXggOiBudWxsO1xuICAgICAgICB9KTtcbiAgICB9LCBbZmlyc3RFbmFibGVkSW5kZXgsIGlubmVyT3Blbiwgc2VsZWN0ZWRJbmRleCwgdmlzaWJsZUZsYXRPcHRpb25zXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBpZiAoIWlubmVyT3BlbiB8fCBhY3RpdmVJbmRleCA9PT0gbnVsbCB8fCBzZWFyY2hhYmxlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKF9hID0gbGlzdFJlZi5jdXJyZW50W2FjdGl2ZUluZGV4XSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcbiAgICB9LCBbYWN0aXZlSW5kZXgsIGlubmVyT3Blbiwgc2VhcmNoYWJsZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGxpc3RSZWYuY3VycmVudCA9IGxpc3RSZWYuY3VycmVudC5zbGljZSgwLCB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoKTtcbiAgICAgICAgbGlzdENvbnRlbnRSZWYuY3VycmVudCA9IGxpc3RDb250ZW50UmVmLmN1cnJlbnQuc2xpY2UoMCwgdmlzaWJsZUZsYXRPcHRpb25zLmxlbmd0aCk7XG4gICAgfSwgW3Zpc2libGVGbGF0T3B0aW9ucy5sZW5ndGhdKTtcbiAgICBjb25zdCBzZXRTZWFyY2hJbnB1dFJlZiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgc2VhcmNoSW5wdXRSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChub2RlICYmIGlubmVyT3BlbiAmJiBmaWx0ZXJJbnB1dEF1dG9Gb2N1cykge1xuICAgICAgICAgICAgbm9kZS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPcHRpb25CbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY29tbWl0Q2hhbmdlID0gdXNlRXZlbnRDYWxsYmFjaygobmV4dFZhbHVlLCBuZXh0T3B0aW9uKSA9PiB7XG4gICAgICAgIHNldElubmVyVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbiwgbmFtZSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0T3B0aW9uID0gdXNlRXZlbnRDYWxsYmFjaygob3B0aW9uKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGlmIChvcHRpb24uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAobXVsdGlwbGUpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHRWYWx1ZSA9IHRvZ2dsZU11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSwgb3B0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKG5leHRWYWx1ZSwgbmV4dE9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhbGxvd0Rlc2VsZWN0ICYmIGlubmVyVmFsdWUgPT09IG9wdGlvbi52YWx1ZSkge1xuICAgICAgICAgICAgY29tbWl0Q2hhbmdlKHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoZmFsc2UpO1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKCk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29tbWl0Q2hhbmdlKG9wdGlvbi52YWx1ZSwgb3B0aW9uKTtcbiAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cigpO1xuICAgICAgICAoX2IgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlUmVtb3ZlU2VsZWN0ZWRWYWx1ZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG9wdGlvblZhbHVlKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWdldE11bHRpcGxlVmFsdWUoaW5uZXJWYWx1ZSkuaW5jbHVkZXMob3B0aW9uVmFsdWUpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbmV4dFZhbHVlID0gcmVtb3ZlTXVsdGlwbGVWYWx1ZShpbm5lclZhbHVlLCBvcHRpb25WYWx1ZSk7XG4gICAgICAgIGNvbnN0IG5leHRPcHRpb25zID0gZ2V0T3B0aW9uc0J5VmFsdWVzKGFsbEZsYXRPcHRpb25zLCBuZXh0VmFsdWUpO1xuICAgICAgICBjb21taXRDaGFuZ2UobmV4dFZhbHVlLCBuZXh0T3B0aW9ucyk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlcktleURvd24gPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBpZiAoIWludGVyYWN0aXZlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRU5URVIgfHwgZXZlbnQua2V5ID09PSBLRVlCT0FSRC5TUEFDRSkge1xuICAgICAgICAgICAgaWYgKGlubmVyT3BlbiAmJlxuICAgICAgICAgICAgICAgIGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGhhbmRsZU9wZW5DaGFuZ2UoIWlubmVyT3Blbik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTiB8fCBldmVudC5rZXkgPT09IEtFWUJPQVJELkFSUk9XX1VQKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKCFpbm5lck9wZW4pIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVPcGVuQ2hhbmdlKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlSXRlbU1vdXNlRW50ZXIgPSB1c2VFdmVudENhbGxiYWNrKChpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmICghKChfYSA9IHZpc2libGVGbGF0T3B0aW9uc1tpbmRleF0pID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5kaXNhYmxlZCkpIHtcbiAgICAgICAgICAgIHNldEFjdGl2ZUluZGV4KGluZGV4KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZU1vdXNlRG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRhZ1JlbW92ZUNsaWNrID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoQmx1ciA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIG5vdGlmeUJsdXJJZk91dHNpZGUoZXZlbnQucmVsYXRlZFRhcmdldCwgZXZlbnQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVNlYXJjaENoYW5nZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRWYWx1ZSwgX2V2ZW50KSA9PiB7XG4gICAgICAgIHNldElubmVyU2VhcmNoVmFsdWUobmV4dFZhbHVlKTtcbiAgICAgICAgb25TZWFyY2hDaGFuZ2UgPT09IG51bGwgfHwgb25TZWFyY2hDaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uU2VhcmNoQ2hhbmdlKG5leHRWYWx1ZSk7XG4gICAgfSk7XG4gICAgY29uc3QgZmluZEVuYWJsZWRJbmRleCA9IHVzZUV2ZW50Q2FsbGJhY2soKGN1cnJlbnQsIGRpcmVjdGlvbikgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGxlbmd0aCA9IHZpc2libGVGbGF0T3B0aW9ucy5sZW5ndGg7XG4gICAgICAgIGlmIChsZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gY3VycmVudCAhPT0gbnVsbCAmJiBjdXJyZW50ICE9PSB2b2lkIDAgPyBjdXJyZW50IDogKGRpcmVjdGlvbiA9PT0gMSA/IC0xIDogbGVuZ3RoKTtcbiAgICAgICAgZm9yIChsZXQgc3RlcCA9IDE7IHN0ZXAgPD0gbGVuZ3RoOyBzdGVwICs9IDEpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhbmRpZGF0ZSA9ICgoc3RhcnQgKyBkaXJlY3Rpb24gKiBzdGVwKSAlIGxlbmd0aCArIGxlbmd0aCkgJSBsZW5ndGg7XG4gICAgICAgICAgICBpZiAoISgoX2EgPSB2aXNpYmxlRmxhdE9wdGlvbnNbY2FuZGlkYXRlXSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmRpc2FibGVkKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlU2VhcmNoS2V5RG93biA9IHVzZUV2ZW50Q2FsbGJhY2soKGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfRE9XTikge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBmaW5kRW5hYmxlZEluZGV4KGFjdGl2ZUluZGV4LCAxKTtcbiAgICAgICAgICAgIGlmIChuZXh0ICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgc2V0QWN0aXZlSW5kZXgobmV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuQVJST1dfVVApIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBjb25zdCBwcmV2ID0gZmluZEVuYWJsZWRJbmRleChhY3RpdmVJbmRleCwgLTEpO1xuICAgICAgICAgICAgaWYgKHByZXYgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBzZXRBY3RpdmVJbmRleChwcmV2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSBLRVlCT0FSRC5FTlRFUikge1xuICAgICAgICAgICAgaWYgKGFjdGl2ZUluZGV4ICE9PSBudWxsICYmXG4gICAgICAgICAgICAgICAgdmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSAmJlxuICAgICAgICAgICAgICAgICF2aXNpYmxlRmxhdE9wdGlvbnNbYWN0aXZlSW5kZXhdLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RPcHRpb24odmlzaWJsZUZsYXRPcHRpb25zW2FjdGl2ZUluZGV4XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gS0VZQk9BUkQuRVNDQVBFKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaGFuZGxlT3BlbkNoYW5nZShmYWxzZSk7XG4gICAgICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCByZW5kZXJWYWx1ZU1ldGEgPSB7XG4gICAgICAgIGRpc2FibGVkLFxuICAgICAgICByZWFkT25seSxcbiAgICAgICAgbXVsdGlwbGUsXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMsXG4gICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgcGxhY2Vob2xkZXI6ICFoYXNTZWxlY3Rpb24sXG4gICAgICAgIHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgc2l6ZTogbm9ybWFsaXplZFNpemUsXG4gICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgfTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCBpc011bHRpcGxlVmFsdWVGaWxsZWQgPSAobXVsdGlwbGUgJiZcbiAgICAgICAgaGFzU2VsZWN0aW9uICYmXG4gICAgICAgIG1heFZpc2libGVWYWx1ZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlubmVyT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItbXVsdGlwbGUtZmlsbGVkJyksIGhhc1NlbGVjdGlvbiA/IGNsYXNzZXMoJ3RyaWdnZXItZmlsbGVkJykgOiBjbGFzc2VzKCd0cmlnZ2VyLXBsYWNlaG9sZGVyJyksIHN0YXR1cyAhPT0gJ2RlZmF1bHQnICYmIGNsYXNzZXMoYHRyaWdnZXItJHtzdGF0dXN9YCksIGRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgIWRpc2FibGVkICYmIGNsYXNzZXMoJ3RyaWdnZXItcmVhZG9ubHknKSkpO1xuICAgIGNvbnN0IGljb25TaXplID0gbm9ybWFsaXplZFNpemUgPT09ICdzbWFsbCcgPyAxNiA6IDIwO1xuICAgIGNvbnN0IGFjdGl2ZU9wdGlvbklkID0gc2VhcmNoYWJsZSAmJiBpbm5lck9wZW4gJiYgYWN0aXZlSW5kZXggIT09IG51bGxcbiAgICAgICAgPyBgJHtvcHRpb25JZFByZWZpeH0tJHthY3RpdmVJbmRleH1gXG4gICAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnkgPSBhcmlhTGFiZWxsZWRCeSAhPT0gbnVsbCAmJiBhcmlhTGFiZWxsZWRCeSAhPT0gdm9pZCAwID8gYXJpYUxhYmVsbGVkQnkgOiAobGFiZWwgPyBsYWJlbElkIDogdW5kZWZpbmVkKTtcbiAgICBjb25zdCBkZXNjcmliZWRCeUlkcyA9IFtcbiAgICAgICAgZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCxcbiAgICAgICAgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbCxcbiAgICBdLmZpbHRlcihCb29sZWFuKS5qb2luKCcgJykgfHwgdW5kZWZpbmVkO1xuICAgIHJldHVybiAoX2pzeHMoU2VsZWN0RmllbGRTaGVsbCwgeyBjbGFzc2VzOiBjbGFzc2VzLCBjbGFzc05hbWU6IGNsYXNzTmFtZSwgc2l6ZTogbm9ybWFsaXplZFNpemUsIHZhcmlhbnQ6IHZhcmlhbnQsIHN0YXR1czogc3RhdHVzLCBkaXNhYmxlZDogZGlzYWJsZWQsIHJlYWRPbmx5OiByZWFkT25seSwgbG9hZGluZzogbG9hZGluZywgbGFiZWw6IGxhYmVsLCBsYWJlbENsYXNzTmFtZTogbGFiZWxDbGFzc05hbWUsIGluZm86IGluZm8sIGRlc2NyaXB0aW9uOiBkZXNjcmlwdGlvbiwgZmVlZGJhY2s6IGZlZWRiYWNrLCByZXF1aXJlZDogcmVxdWlyZWQsIGxhYmVsSWQ6IGxhYmVsSWQsIGRlc2NyaXB0aW9uSWQ6IGRlc2NyaXB0aW9uSWQsIGZlZWRiYWNrSWQ6IGZlZWRiYWNrSWQsIGNoaWxkcmVuOiBbX2pzeHMoXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0UmVmZXJlbmNlUHJvcHMoe1xuICAgICAgICAgICAgICAgIHJlZjogc2V0UmVmZXJlbmNlLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAnYXJpYS1yZWFkb25seSc6IHJlYWRPbmx5IHx8IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU6IHRyaWdnZXJDbGFzc05hbWUsXG4gICAgICAgICAgICAgICAgb25LZXlEb3duOiBoYW5kbGVUcmlnZ2VyS2V5RG93bixcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgaXNNdWx0aXBsZVZhbHVlRmlsbGVkICYmIGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS1tdWx0aXBsZWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogX2pzeChTZWxlY3RWYWx1ZUNvbnRlbnQsIHsgY2xhc3NlczogY2xhc3NlcywgaGFzU2VsZWN0aW9uOiBoYXNTZWxlY3Rpb24sIG11bHRpcGxlOiBtdWx0aXBsZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZW5kZXJWYWx1ZTogcmVuZGVyVmFsdWUsIHJlbmRlclZhbHVlTWV0YTogcmVuZGVyVmFsdWVNZXRhLCBzZWxlY3RlZE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucywgbWF4VmlzaWJsZVZhbHVlczogbWF4VmlzaWJsZVZhbHVlcywgb25SZW1vdmU6IGhhbmRsZVJlbW92ZVNlbGVjdGVkVmFsdWUsIG9uUmVtb3ZlQ2xpY2s6IGhhbmRsZVRhZ1JlbW92ZUNsaWNrLCBvblJlbW92ZU1vdXNlRG93bjogaGFuZGxlVGFnUmVtb3ZlTW91c2VEb3duIH0pIH0pXSB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogaW5uZXJPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSldIH0pKSwgaXNNb3VudGVkICYmIGludGVyYWN0aXZlICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtzZWFyY2hhYmxlICYmIChfanN4KFNlbGVjdFNlYXJjaENvbnRyb2wsIHsgcmVmOiBzZXRTZWFyY2hJbnB1dFJlZiwgY2xhc3NlczogY2xhc3NlcywgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNpemU9e25vcm1hbGl6ZWRTaXplfSBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZTogXCJzbWFsbFwiLCBwbGFjZWhvbGRlcjogc2VhcmNoUGxhY2Vob2xkZXIsIHZhbHVlOiBpbm5lclNlYXJjaFZhbHVlLCBhY3RpdmVEZXNjZW5kYW50OiBhY3RpdmVPcHRpb25JZCwgb25CbHVyOiBoYW5kbGVTZWFyY2hCbHVyLCBvbkNoYW5nZTogaGFuZGxlU2VhcmNoQ2hhbmdlLCBvbktleURvd246IGhhbmRsZVNlYXJjaEtleURvd24gfSkpLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiB2aXNpYmxlRmxhdE9wdGlvbnMubGVuZ3RoID09PSAwID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2VtcHR5JyksIGNoaWxkcmVuOiBfanN4KFR5cG9ncmFwaHlCb2R5LCB7IHNpemU6IFNFTEVDVF9UWVBPR1JBUEhZLmVtcHR5LnNpemUsIGNvbG9yOiBTRUxFQ1RfVFlQT0dSQVBIWS5lbXB0eS5jb2xvciwgY2hpbGRyZW46IGVtcHR5Q29udGVudCB9KSB9KSkgOiAoKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmbGF0SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZpc2libGVPcHRpb25Hcm91cHMubWFwKChncm91cCkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cCcpLCBjaGlsZHJlbjogW2dyb3VwLmxhYmVsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdncm91cC1sYWJlbCcpLCBjaGlsZHJlbjogX2pzeChUeXBvZ3JhcGh5TGFiZWwsIHsgc2l6ZTogU0VMRUNUX1RZUE9HUkFQSFkuZ3JvdXBMYWJlbC5zaXplLCBzdHJvbmc6IHRydWUsIGNoaWxkcmVuOiBncm91cC5sYWJlbCB9KSB9KSksIGdyb3VwLm9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkZsYXRJbmRleCA9IGZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYXRJbmRleCArPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWQgPSBpc09wdGlvblNlbGVjdGVkKGlubmVyVmFsdWUsIG11bHRpcGxlLCBvcHRpb24udmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aXZlID0gYWN0aXZlSW5kZXggPT09IG9wdGlvbkZsYXRJbmRleDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbk1ldGEgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIW9wdGlvbi5kaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleDogb3B0aW9uRmxhdEluZGV4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wZW46IGlubmVyT3BlbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb250U2l6ZTogZ2V0Rm9udFNpemUobm9ybWFsaXplZFNpemUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RDb250ZW50UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IGV4dHJhY3RPcHRpb25UZXh0KG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goXCJidXR0b25cIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0SXRlbVByb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWYobm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0UmVmLmN1cnJlbnRbb3B0aW9uRmxhdEluZGV4XSA9IG5vZGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogYCR7b3B0aW9uSWRQcmVmaXh9LSR7b3B0aW9uRmxhdEluZGV4fWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZTogJ29wdGlvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBjbGFzc2VzKCdvcHRpb24nLCBqb2luQ2xzKGFjdGl2ZSAmJiBjbGFzc2VzKCdvcHRpb24tYWN0aXZlJyksIHNlbGVjdGVkICYmIGNsYXNzZXMoJ29wdGlvbi1zZWxlY3RlZCcpLCBvcHRpb24uZGlzYWJsZWQgJiYgY2xhc3Nlcygnb3B0aW9uLWRpc2FibGVkJyksIG9wdGlvbkNsYXNzTmFtZSkpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkOiBvcHRpb24uZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyaWEtc2VsZWN0ZWQnOiBzZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrOiAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI6ICgpID0+IGhhbmRsZUl0ZW1Nb3VzZUVudGVyKG9wdGlvbkZsYXRJbmRleCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyOiBoYW5kbGVPcHRpb25CbHVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IHJlbmRlck9wdGlvbiA/IChyZW5kZXJPcHRpb24ob3B0aW9uLCBvcHRpb25NZXRhKSkgOiAoX2pzeChTZWxlY3RPcHRpb25Db250ZW50LCB7IGNsYXNzZXM6IGNsYXNzZXMsIG9wdGlvbjogb3B0aW9uLCBzZWxlY3RlZDogc2VsZWN0ZWQsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCBjb250ZW50OiByZW5kZXJPcHRpb25Db250ZW50ID09PSBudWxsIHx8IHJlbmRlck9wdGlvbkNvbnRlbnQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHJlbmRlck9wdGlvbkNvbnRlbnQob3B0aW9uLCBvcHRpb25NZXRhKSB9KSkgfSksIGAke2dyb3VwLmtleX0tJHtvcHRpb24udmFsdWV9YCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KV0gfSwgZ3JvdXAua2V5KSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSgpKSB9KSwgcGFuZWxGb290ZXIgIT0gbnVsbCAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtZm9vdGVyJyksIGNoaWxkcmVuOiBwYW5lbEZvb3RlciB9KSldIH0pKSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvcnRhbCA/IF9qc3goRmxvYXRpbmdQb3J0YWwsIHsgY2hpbGRyZW46IHBhbmVsTm9kZSB9KSA6IHBhbmVsTm9kZTtcbiAgICAgICAgICAgIH0pKCldIH0pKTtcbn07XG5TZWxlY3QuZGlzcGxheU5hbWUgPSAnU2VsZWN0JztcbmV4cG9ydCBkZWZhdWx0IG1lbW8oU2VsZWN0KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=