@cloudbase/auth 2.20.7 → 2.20.9

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.
@@ -198,7 +198,7 @@ var dealUserAdapter = function (config, adapter) {
198
198
  _f.label = 1;
199
199
  case 1:
200
200
  _f.trys.push([1, 3, , 4]);
201
- if ((!((_d = options.headers) === null || _d === void 0 ? void 0 : _d['content-type']) || ((_e = options.headers) === null || _e === void 0 ? void 0 : _e['content-type'].includes('application/json'))) && ['string', 'undefined'].includes(typeof options.body)) {
201
+ if ((!((_d = options.headers) === null || _d === void 0 ? void 0 : _d['content-type']) || ((_e = options.headers) === null || _e === void 0 ? void 0 : _e['content-type'].includes('application/json'))) && !['string', 'undefined'].includes(typeof options.body)) {
202
202
  options.data = options.data || options.body;
203
203
  options.body = JSON.stringify(options.body);
204
204
  }
@@ -261,4 +261,4 @@ export var useAuthAdapter = function (config) {
261
261
  }
262
262
  return dealAuthAdapter(config, config.adapter);
263
263
  };
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUs1QztJQUVFLGdDQUFZLE1BQW1GOztRQUM3RixJQUFJO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLFVBQVUsS0FBSSxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUE7U0FDM0c7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQTtTQUMvQztJQUNILENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFD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Q1YsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQTtLQUMzQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLElBQU0sY0FBYyxHQUFHLFVBQUMsTUFBbUI7SUFFaEQsSUFBSSxNQUFNLENBQUMsT0FBTyxJQUFLLE1BQU0sQ0FBQyxPQUFlLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRTtRQUNoRSxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0tBQy9DO0lBRUQsT0FBTyxlQUFlLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtBQUNoRCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTREtBZGFwdGVySW50ZXJmYWNlIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7IGFkYXB0ZXJGb3JXeE1wIH0gZnJvbSAnLi91dGlsaXRpZXMnXG5pbXBvcnQgdHlwZSB7IEF1dGhPcHRpb25zIH0gZnJvbSAnQGNsb3VkYmFzZS9vYXV0aCdcblxuZGVjbGFyZSBjb25zdCB3eDogYW55XG5cbmNsYXNzIE9hdXRoQ2xpZW50U3RvcmFnZUJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxTdG9yYWdlXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IHsgbG9jYWxTdG9yYWdlOiBhbnkgLyogU3RvcmFnZUludGVyZmFjZSAqLzsgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSB9KSB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMubG9jYWxTdG9yYWdlID0gY29uZmlnPy5sb2NhbFN0b3JhZ2UgfHwgKGNvbmZpZz8uYWRhcHRlcj8ucm9vdD8uZ2xvYmFsVGhpcyB8fCBnbG9iYWxUaGlzKS5sb2NhbFN0b3JhZ2VcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UgPSBjb25maWc/LmxvY2FsU3RvcmFnZSB8fCB7fVxuICAgIH1cbiAgfVxuICAvKipcbiAgICogR2V0IEl0ZW1cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHN0cmluZyB8IG51bGw+fVxuICAgKi9cbiAgYXN5bmMgZ2V0SXRlbShrZXk6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgSXRlbS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIFNldCBJdGVtLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEBwYXJhbSB7c3RyaW5nfSB2YWx1ZVxuICAgKiBAcmV0dXJuIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgc2V0SXRlbShrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSlcbiAgfVxuXG4gIGdldEl0ZW1TeW5jKGtleTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KVxuICB9XG5cbiAgc2V0SXRlbVN5bmMoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSwgdmFsdWUpXG4gIH1cblxuICByZW1vdmVJdGVtU3luYyhrZXk6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oa2V5KVxuICB9XG59XG5cbi8qKlxuICogY29weSB0byBnaXRAZ2l0LndvYS5jb206UUJhc2UvbGNhcC9kYXRhc291cmNlLmdpdC9wYWNrYWdlcy9jbG91ZC1zZGsvY29tbW9uXG4gKiDlkIzmraXkv67mlLlcbiAqL1xuY29uc3QgVVJMX1JFRyA9IC9eW146XSs6XFwvXFwvW14vXSsoXFwvW14/I10rKS9cblxuY29uc3QgZGVhbEFkYXB0ZXJSZXF1ZXN0RGF0YSA9IChyZXMsIG9wdGlvbnMpID0+IHtcbiAgY29uc3QgcmVxdWVzdElkID0gb3B0aW9ucz8uaGVhZGVycz8uWyd4LXJlcXVlc3QtaWQnXVxuXG4gIGlmICghcmVzKSB7XG4gICAgcmVzID0ge31cbiAgfVxuXG4gIGlmIChyZXM/LmNvZGUgfHwgcmVzPy5kYXRhPy5lcnJvcl9jb2RlKSB7XG4gICAgcmVzID0ge1xuICAgICAgZXJyb3I6IHJlcy5jb2RlIHx8IHJlcy5kYXRhLmVycm9yLFxuICAgICAgZXJyb3JfZGVzY3JpcHRpb246IHJlcy5kYXRhLmVycm9yX2Rlc2NyaXB0aW9uIHx8IHJlcy5tZXNzYWdlIHx8IHJlcy5jb2RlIHx8IHJlcy5kYXRhLmVycm9yX2NvZGUsXG4gICAgICByZXF1ZXN0X2lkOiByZXMucmVxdWVzdElkLFxuICAgICAgZXJyb3JfY29kZTogcmVzLmRhdGE/LmVycm9yX2NvZGUsXG4gICAgfVxuICB9XG5cbiAgaWYgKCFyZXM/LnJlcXVlc3RfaWQpIHtcbiAgICByZXMucmVxdWVzdF9pZCA9IHJlcy5yZXF1ZXN0X2lkIHx8IHJlcXVlc3RJZFxuICB9XG5cbiAgaWYgKHJlcz8uZXJyb3IpIHtcbiAgICByZXMuZXJyb3JfdXJpID0gZ2V0VXJsUGF0aChvcHRpb25zPy51cmwpXG4gICAgcmV0dXJuIHJlc1xuICB9XG5cbiAgcmV0dXJuIHJlcz8uZGF0YSB8fCB7fVxufVxuXG5mdW5jdGlvbiBnZW5lcmF0ZU9hdXRoQ2xpZW50UmVxdWVzdChyZXFDbGFzcykge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBib2R5PzogYW55IHwgbnVsbFxuICAgICAgaGVhZGVycz86IGFueSB8IG51bGxcbiAgICAgIG1ldGhvZD86IHN0cmluZ1xuICAgICAgW2tleTogc3RyaW5nXTogYW55XG4gICAgfSxcbiAgKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIC8vIE9iamVjdHMgbXVzdCBiZSBjb3BpZWQgdG8gcHJldmVudCBtb2RpZmljYXRpb24gb2YgZGF0YSBzdWNoIGFzIGJvZHkuXG4gICAgICBjb25zdCBjb3B5T3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpXG4gICAgICBpZiAoY29weU9wdGlvbnMuYm9keSAmJiB0eXBlb2YgY29weU9wdGlvbnMuYm9keSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29weU9wdGlvbnMuYm9keSA9IEpTT04uc3RyaW5naWZ5KGNvcHlPcHRpb25zLmJvZHkpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHRhc2sgPSB3eC5yZXF1ZXN0KHtcbiAgICAgICAgdXJsLFxuICAgICAgICBkYXRhOiBjb3B5T3B0aW9ucy5ib2R5LFxuICAgICAgICB0aW1lb3V0OiByZXFDbGFzcy5fdGltZW91dCxcbiAgICAgICAgbWV0aG9kOiBjb3B5T3B0aW9ucy5tZXRob2QgfHwgJ0dFVCcsXG4gICAgICAgIGhlYWRlcjogY29weU9wdGlvbnMuaGVhZGVycyxcbiAgICAgICAgc3VjY2VzcyhyZXMpIHtcbiAgICAgICAgICByZXMgPSBkZWFsQWRhcHRlclJlcXVlc3REYXRhKHJlcywgeyAuLi5vcHRpb25zLCB1cmwgfSlcblxuICAgICAgICAgIGlmIChyZXMuZXJyb3IpIHtcbiAgICAgICAgICAgIHJlamVjdChyZXMpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgICB9LFxuICAgICAgICBmYWlsKGVycikge1xuICAgICAgICAgIHJlamVjdCh7XG4gICAgICAgICAgICBlcnJvcjogJ3VucmVhY2hhYmxlJyxcbiAgICAgICAgICAgIGVycm9yX2Rlc2NyaXB0aW9uOiAoZXJyIGFzIEVycm9yKS5tZXNzYWdlLFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlKGVycikge1xuICAgICAgICAgIGlmICghZXJyIHx8ICFlcnIuZXJyTXNnKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCFyZXFDbGFzcy5fdGltZW91dCB8fCByZXFDbGFzcy5fcmVzdHJpY3RlZE1ldGhvZHMuaW5kZXhPZigncmVxdWVzdCcpID09PSAtMSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IHsgZXJyTXNnIH0gPSBlcnJcbiAgICAgICAgICBpZiAoZXJyTXNnID09PSAncmVxdWVzdDpmYWlsIHRpbWVvdXQnKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4ocmVxQ2xhc3MuX3RpbWVvdXRNc2cpXG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB0YXNrLmFib3J0KClcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG5cbi8qKlxuICogR2V0IHVybCBwYXRoLlxuICogQHBhcmFtIHtzdHJpbmd9IHVybFxuICogQHJldHVybiB7c3RyaW5nfVxuICovXG5mdW5jdGlvbiBnZXRVcmxQYXRoKHVybDogc3RyaW5nKSB7XG4gIC8vIHJldHVybiBwYXRoIGlmIG1hdGNoZWQsIG9yIG9yaWdpbmFsIHVybFxuICByZXR1cm4gVVJMX1JFRy50ZXN0KHVybCkgPyBSZWdFeHAuJDEgOiB1cmxcbn1cblxuLyoqXG4gKiDnlKjmiLfoh6rlrprkuYlhZGFwdGVy5aSE55CGXG4gKiBAcGFyYW0gY29uZmlnXG4gKiBAcGFyYW0gYWRhcHRlclxuICogQHJldHVybnNcbiAqL1xuY29uc3QgZGVhbFVzZXJBZGFwdGVyID0gKGNvbmZpZzogQXV0aE9wdGlvbnMsIGFkYXB0ZXI6IFNES0FkYXB0ZXJJbnRlcmZhY2UpID0+IHtcbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cblxuICB0cnkge1xuICAgIGlmICghY29uZmlnPy5zdG9yYWdlICYmIGFkYXB0ZXI/LmxvY2FsU3RvcmFnZSkge1xuICAgICAgZGF0YS5zdG9yYWdlID0gbmV3IE9hdXRoQ2xpZW50U3RvcmFnZUJhc2UoeyBsb2NhbFN0b3JhZ2U6IGFkYXB0ZXIubG9jYWxTdG9yYWdlLCBhZGFwdGVyIH0pXG4gICAgfVxuXG4gICAgaWYgKCFjb25maWcuY2FwdGNoYU9wdGlvbnMgJiYgYWRhcHRlcj8uY2FwdGNoYU9wdGlvbnMpIHtcbiAgICAgIGRhdGEuY2FwdGNoYU9wdGlvbnMgPSBhZGFwdGVyLmNhcHRjaGFPcHRpb25zXG4gICAgfVxuXG4gICAgLy8g55So5oi35pyq5Lyg5YWlYmFzZVJlcXVlc3TlkoxyZXF1ZXN05pe25aSE55CGXG4gICAgLy8gT0F1dGgyQ2xpZW505LyY5YWI5LulIGJhc2VSZXF1ZXN0IOS4uuWHhlxuICAgIC8vIEF1dGgg5Zyo5rKh5pyJIHJlcXVlc3Qg55qE5pe25YCZ5Lya5Yid5aeL5YyWIENhcHRjaGHvvIzku47ogIzkvb/nlKggQ2FwdGNoYSDnmoQgcmVxdWVzdFxuICAgIGlmICghY29uZmlnLmJhc2VSZXF1ZXN0ICYmICFjb25maWcucmVxdWVzdCAmJiBhZGFwdGVyPy5yZXFDbGFzcykge1xuICAgICAgY29uc3QgcmVxQ2xhc3NQYXJhbXMgPSB7XG4gICAgICAgIHRpbWVvdXQ6IDEwMDAwLFxuICAgICAgICByZXN0cmljdGVkTWV0aG9kczogWydnZXQnLCAncG9zdCcsICd1cGxvYWQnLCAnZG93bmxvYWQnLCAncmVxdWVzdCddLFxuICAgICAgfVxuICAgICAgY29uc3QgYWRhcHRlclJlcSA9IG5ldyBhZGFwdGVyLnJlcUNsYXNzKHJlcUNsYXNzUGFyYW1zKVxuICAgICAgZGF0YS5iYXNlUmVxdWVzdCA9IGFzeW5jIGZ1bmN0aW9uICh1cmw6IHN0cmluZywgb3B0aW9ucz86IHsgbWV0aG9kPzogc3RyaW5nOyBba2V5OiBzdHJpbmddOiBhbnkgfSkge1xuICAgICAgICBsZXQgcmVzOiBhbnkgPSB7fVxuXG4gICAgICAgIGNvbnN0IHJlcXVlc3RUeXBlID0gb3B0aW9ucy5tZXRob2Q/LnRvTG9jYWxlTG93ZXJDYXNlKCkgfHwgJ3Bvc3QnXG5cbiAgICAgICAgY29uc3QgZnVuYyA9IGFkYXB0ZXJSZXE/LltyZXF1ZXN0VHlwZV0/LmJpbmQ/LihhZGFwdGVyUmVxKVxuXG4gICAgICAgIGlmICh0eXBlb2YgZnVuYyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCDjgJAke3JlcXVlc3RUeXBlfeOAkSByZXF1ZXN0IG1ldGhvZGApXG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuICAgICAgICAgIC8vIOWFvOWuuemdnuWwj+eoi+W6j+eahGFkYXB0ZXJcbiAgICAgICAgICBpZiAoKCFvcHRpb25zLmhlYWRlcnM/LlsnY29udGVudC10eXBlJ10gfHwgb3B0aW9ucy5oZWFkZXJzPy5bJ2NvbnRlbnQtdHlwZSddLmluY2x1ZGVzKCdhcHBsaWNhdGlvbi9qc29uJykpICYmIFsnc3RyaW5nJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiBvcHRpb25zLmJvZHkpKSB7XG4gICAgICAgICAgICBvcHRpb25zLmRhdGEgPSBvcHRpb25zLmRhdGEgfHwgb3B0aW9ucy5ib2R5XG4gICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLmJvZHkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlcyA9IGF3YWl0IGZ1bmMoeyB1cmwsIC4uLm9wdGlvbnMgfSlcbiAgICAgICAgICByZXMgPSBkZWFsQWRhcHRlclJlcXVlc3REYXRhKHJlcywgeyAuLi5vcHRpb25zLCB1cmwgfSlcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXMgPSBlcnJvclxuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzPy5lcnJvcikge1xuICAgICAgICAgIHRocm93IHJlc1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3VzZXIgYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG4vKipcbiAqIOWGhee9rum7mOiupGFkYXB0ZXLlpITnkIZcbiAqIEBwYXJhbSBjb25maWdcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGRlYWxBdXRoQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zLCBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlKSA9PiB7XG4gIGlmICghYWRhcHRlckZvcld4TXAuaXNNYXRjaCgpIHx8IChjb25maWcuc3RvcmFnZSAmJiBjb25maWcuYmFzZVJlcXVlc3QpKSByZXR1cm4gY29uZmlnXG5cbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cbiAgY29uc3QgYXV0aE9wdGlvbnM6IGFueSA9IHt9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IGxvY2FsU3RvcmFnZSwgcmVxQ2xhc3M6IFJlcUNsYXNzIH0gPSBhZGFwdGVyRm9yV3hNcC5nZW5BZGFwdGVyKHt9KVxuICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIGF1dGhPcHRpb25zLnN0b3JhZ2UgPSBuZXcgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSh7IGxvY2FsU3RvcmFnZSwgYWRhcHRlciB9KVxuICAgIH1cbiAgICBpZiAoUmVxQ2xhc3MpIHtcbiAgICAgIGNvbnN0IHJlcUNsYXNzID0gbmV3IFJlcUNsYXNzKHtcbiAgICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgICAgIHJlc3RyaWN0ZWRNZXRob2RzOiBbJ2dldCcsICdwb3N0JywgJ3VwbG9hZCcsICdkb3dubG9hZCcsICdyZXF1ZXN0J10sXG4gICAgICB9KVxuICAgICAgYXV0aE9wdGlvbnMucmVxdWVzdCA9IGdlbmVyYXRlT2F1dGhDbGllbnRSZXF1ZXN0KHJlcUNsYXNzKVxuICAgIH1cblxuICAgIGlmIChkYXRhLmNhcHRjaGFPcHRpb25zKSB7XG4gICAgICBhdXRoT3B0aW9ucy5iYXNlUmVxdWVzdCA9IGF1dGhPcHRpb25zLnJlcXVlc3RcbiAgICAgIGF1dGhPcHRpb25zLnJlcXVlc3QgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi5kYXRhLCAuLi5hdXRoT3B0aW9ucyB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdhZGFwdGVyIGdlbmVyYXRlIGZhaWw6JywgZSlcbiAgfVxuXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCBjb25zdCB1c2VBdXRoQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zKSA9PiB7XG4gIC8vIOWFvOWuueW+ruaQrWNsb3VkLXNka++8jGF1dGjkuK1qcy1zZGvpu5jorqTnmoRhZGFwdGVy5LiN6L+b6KGM6YWN572uXG4gIGlmIChjb25maWcuYWRhcHRlciAmJiAoY29uZmlnLmFkYXB0ZXIgYXMgYW55KS50eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICByZXR1cm4gZGVhbFVzZXJBZGFwdGVyKGNvbmZpZywgY29uZmlnLmFkYXB0ZXIpXG4gIH1cblxuICByZXR1cm4gZGVhbEF1dGhBZGFwdGVyKGNvbmZpZywgY29uZmlnLmFkYXB0ZXIpXG59XG4iXX0=
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUs1QztJQUVFLGdDQUFZLE1BQW1GOztRQUM3RixJQUFJO1lBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxZQUFZLEtBQUksQ0FBQyxDQUFBLE1BQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxJQUFJLDBDQUFFLFVBQVUsS0FBSSxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUE7U0FDM0c7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWSxLQUFJLEVBQUUsQ0FBQTtTQUMvQztJQUNILENBQUM7SUFNSyx3Q0FBTyxHQUFiLFVBQWMsR0FBVzs7O2dCQUN2QixXQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFBOzs7S0FDdEM7SUFPSywyQ0FBVSxHQUFoQixVQUFpQixHQUFXOzs7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBOzs7O0tBQ2xDO0lBUUssd0NBQU8sR0FBYixVQUFjLEdBQVcsRUFBRSxLQUFhOzs7Z0JBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTs7OztLQUN0QztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELDRDQUFXLEdBQVgsVUFBWSxHQUFXLEVBQUUsS0FBYTtRQUNwQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdkMsQ0FBQztJQUVELCtDQUFjLEdBQWQsVUFBZSxHQUFXO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQ25DLENBQUM7SUFDSCw2QkFBQztBQUFELENBQUMsQUFoREQsSUFnREM7QUFNRCxJQUFNLE9BQU8sR0FBRyw0QkFBNEIsQ0FBQTtBQUU1QyxJQUFNLHNCQUFzQixHQUFHLFVBQUMsR0FBRyxFQUFFLE9BQU87O0lBQzFDLElBQU0sU0FBUyxHQUFHLE1BQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLE9BQU8sMENBQUcsY0FBYyxDQUFDLENBQUE7SUFFcEQsSUFBSSxDQUFDLEdBQUcsRUFBRTtRQUNSLEdBQUcsR0FBRyxFQUFFLENBQUE7S0FDVDtJQUVELElBQUksQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsSUFBSSxNQUFJLE1BQUEsR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLElBQUksMENBQUUsVUFBVSxDQUFBLEVBQUU7UUFDdEMsR0FBRyxHQUFHO1lBQ0osS0FBSyxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLO1lBQ2pDLGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLElBQUksR0FBRyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVTtZQUMvRixVQUFVLEVBQUUsR0FBRyxDQUFDLFNBQVM7WUFDekIsVUFBVSxFQUFFLE1BQUEsR0FBRyxDQUFDLElBQUksMENBQUUsVUFBVTtTQUNqQyxDQUFBO0tBQ0Y7SUFFRCxJQUFJLENBQUMsQ0FBQSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsVUFBVSxDQUFBLEVBQUU7UUFDcEIsR0FBRyxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxJQUFJLFNBQVMsQ0FBQTtLQUM3QztJQUVELElBQUksR0FBRyxhQUFILEdBQUcsdUJBQUgsR0FBRyxDQUFFLEtBQUssRUFBRTtRQUNkLEdBQUcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxHQUFHLENBQUMsQ0FBQTtRQUN4QyxPQUFPLEdBQUcsQ0FBQTtLQUNYO0lBRUQsT0FBTyxDQUFBLEdBQUcsYUFBSCxHQUFHLHVCQUFILEdBQUcsQ0FBRSxJQUFJLEtBQUksRUFBRSxDQUFBO0FBQ3hCLENBQUMsQ0FBQTtBQUVELFNBQVMsMEJBQTBCLENBQUMsUUFBUTtJQUMxQyxPQUFPLFVBQ0wsR0FBVyxFQUNYLE9BS0M7OztnQkFFRCxXQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07d0JBRWpDLElBQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFBO3dCQUM5QyxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksT0FBTyxXQUFXLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRTs0QkFDNUQsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQTt5QkFDcEQ7d0JBRUQsSUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQzs0QkFDdEIsR0FBRyxLQUFBOzRCQUNILElBQUksRUFBRSxXQUFXLENBQUMsSUFBSTs0QkFDdEIsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFROzRCQUMxQixNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU0sSUFBSSxLQUFLOzRCQUNuQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE9BQU87NEJBQzNCLE9BQU8sWUFBQyxHQUFHO2dDQUNULEdBQUcsR0FBRyxzQkFBc0IsQ0FBQyxHQUFHLHdCQUFPLE9BQU8sS0FBRSxHQUFHLEtBQUEsSUFBRyxDQUFBO2dDQUV0RCxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUU7b0NBQ2IsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2lDQUNaO2dDQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQTs0QkFDZCxDQUFDOzRCQUNELElBQUksWUFBQyxHQUFHO2dDQUNOLE1BQU0sQ0FBQztvQ0FDTCxLQUFLLEVBQUUsYUFBYTtvQ0FDcEIsaUJBQWlCLEVBQUcsR0FBYSxDQUFDLE9BQU87aUNBQzFDLENBQUMsQ0FBQTs0QkFDSixDQUFDOzRCQUNELFFBQVEsWUFBQyxHQUFHO2dDQUNWLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFO29DQUN2QixPQUFNO2lDQUNQO2dDQUNELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxJQUFJLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7b0NBQy9FLE9BQU07aUNBQ1A7Z0NBQ08sSUFBQSxNQUFNLEdBQUssR0FBRyxPQUFSLENBQVE7Z0NBQ3RCLElBQUksTUFBTSxLQUFLLHNCQUFzQixFQUFFO29DQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtvQ0FDbEMsSUFBSTt3Q0FDRixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUE7cUNBQ2I7b0NBQUMsT0FBTyxDQUFDLEVBQUUsR0FBRTtpQ0FDZjs0QkFDSCxDQUFDO3lCQUNGLENBQUMsQ0FBQTtvQkFDSixDQUFDLENBQUMsRUFBQTs7O0tBQ0gsQ0FBQTtBQUNILENBQUM7QUFPRCxTQUFTLFVBQVUsQ0FBQyxHQUFXO0lBRTdCLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFBO0FBQzVDLENBQUM7QUFRRCxJQUFNLGVBQWUsR0FBRyxVQUFDLE1BQW1CLEVBQUUsT0FBNEI7SUFDeEUsSUFBTSxJQUFJLGdCQUFRLE1BQU0sQ0FBRSxDQUFBO0lBRTFCLElBQUk7UUFDRixJQUFJLENBQUMsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTyxDQUFBLEtBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFlBQVksQ0FBQSxFQUFFO1lBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsWUFBWSxFQUFFLE9BQU8sU0FBQSxFQUFFLENBQUMsQ0FBQTtTQUMzRjtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxLQUFJLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxjQUFjLENBQUEsRUFBRTtZQUNyRCxJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUE7U0FDN0M7UUFLRCxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEtBQUksT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLFFBQVEsQ0FBQSxFQUFFO1lBQy9ELElBQU0sY0FBYyxHQUFHO2dCQUNyQixPQUFPLEVBQUUsS0FBSztnQkFDZCxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7YUFDcEUsQ0FBQTtZQUNELElBQU0sWUFBVSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQTtZQUN2RCxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQWdCLEdBQVcsRUFBRSxPQUFpRDs7Ozs7OztnQ0FDM0YsR0FBRyxHQUFRLEVBQUUsQ0FBQTtnQ0FFWCxXQUFXLEdBQUcsQ0FBQSxNQUFBLE9BQU8sQ0FBQyxNQUFNLDBDQUFFLGlCQUFpQixFQUFFLEtBQUksTUFBTSxDQUFBO2dDQUUzRCxJQUFJLEdBQUcsTUFBQSxNQUFBLFlBQVUsYUFBVixZQUFVLHVCQUFWLFlBQVUsQ0FBRyxXQUFXLENBQUMsMENBQUUsSUFBSSxtREFBRyxZQUFVLENBQUMsQ0FBQTtnQ0FFMUQsSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVLEVBQUU7b0NBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQVksV0FBVywwQkFBa0IsQ0FBQyxDQUFBO2lDQUMzRDs7OztnQ0FJQyxJQUFJLENBQUMsQ0FBQyxDQUFBLE1BQUEsT0FBTyxDQUFDLE9BQU8sMENBQUcsY0FBYyxDQUFDLENBQUEsS0FBSSxNQUFBLE9BQU8sQ0FBQyxPQUFPLDBDQUFHLGNBQWMsRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQSxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7b0NBQ3BLLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFBO29DQUMzQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFBO2lDQUM1QztnQ0FDSyxXQUFNLElBQUksWUFBRyxHQUFHLEtBQUEsSUFBSyxPQUFPLEVBQUcsRUFBQTs7Z0NBQXJDLEdBQUcsR0FBRyxTQUErQixDQUFBO2dDQUNyQyxHQUFHLEdBQUcsc0JBQXNCLENBQUMsR0FBRyx3QkFBTyxPQUFPLEtBQUUsR0FBRyxLQUFBLElBQUcsQ0FBQTs7OztnQ0FFdEQsR0FBRyxHQUFHLE9BQUssQ0FBQTtnQ0FDWCxNQUFNLE9BQUssQ0FBQTs7Z0NBR2IsSUFBSSxHQUFHLGFBQUgsR0FBRyx1QkFBSCxHQUFHLENBQUUsS0FBSyxFQUFFO29DQUNkLE1BQU0sR0FBRyxDQUFBO2lDQUNWO2dDQUVELFdBQU8sR0FBRyxFQUFBOzs7O2FBQ1gsQ0FBQTtTQUNGO0tBQ0Y7SUFBQyxPQUFPLENBQUMsRUFBRTtRQUNWLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsQ0FBQyxDQUFDLENBQUE7S0FDaEQ7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUMsQ0FBQTtBQU9ELElBQU0sZUFBZSxHQUFHLFVBQUMsTUFBbUIsRUFBRSxPQUE0QjtJQUN4RSxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyxNQUFNLENBQUE7SUFFdEYsSUFBTSxJQUFJLGdCQUFRLE1BQU0sQ0FBRSxDQUFBO0lBQzFCLElBQU0sV0FBVyxHQUFRLEVBQUUsQ0FBQTtJQUUzQixJQUFJO1FBQ0ksSUFBQSxLQUF1QyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFsRSxjQUFZLGtCQUFBLEVBQVksUUFBUSxjQUFrQyxDQUFBO1FBQzFFLElBQUksY0FBWSxFQUFFO1lBQ2hCLFdBQVcsQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsQ0FBQyxFQUFFLFlBQVksZ0JBQUEsRUFBRSxPQUFPLFNBQUEsRUFBRSxDQUFDLENBQUE7U0FDNUU7UUFDRCxJQUFJLFFBQVEsRUFBRTtZQUNaLElBQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDO2dCQUM1QixPQUFPLEVBQUUsS0FBSztnQkFDZCxpQkFBaUIsRUFBRSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUM7YUFDcEUsQ0FBQyxDQUFBO1lBQ0YsV0FBVyxDQUFDLE9BQU8sR0FBRywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsQ0FBQTtTQUMzRDtRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixXQUFXLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUE7WUFDN0MsV0FBVyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUE7U0FDaEM7UUFFRCw2QkFBWSxJQUFJLEdBQUssV0FBVyxFQUFFO0tBQ25DO0lBQUMsT0FBTyxDQUFDLEVBQUU7UUFDVixPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUMsQ0FBQyxDQUFBO0tBQzNDO0lBRUQsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsSUFBTSxjQUFjLEdBQUcsVUFBQyxNQUFtQjtJQUVoRCxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUssTUFBTSxDQUFDLE9BQWUsQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1FBQ2hFLE9BQU8sZUFBZSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDL0M7SUFFRCxPQUFPLGVBQWUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFBO0FBQ2hELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHsgYWRhcHRlckZvcld4TXAgfSBmcm9tICcuL3V0aWxpdGllcydcbmltcG9ydCB0eXBlIHsgQXV0aE9wdGlvbnMgfSBmcm9tICdAY2xvdWRiYXNlL29hdXRoJ1xuXG5kZWNsYXJlIGNvbnN0IHd4OiBhbnlcblxuY2xhc3MgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSB7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhbFN0b3JhZ2VcbiAgY29uc3RydWN0b3IoY29uZmlnPzogeyBsb2NhbFN0b3JhZ2U6IGFueSAvKiBTdG9yYWdlSW50ZXJmYWNlICovOyBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlIH0pIHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5sb2NhbFN0b3JhZ2UgPSBjb25maWc/LmxvY2FsU3RvcmFnZSB8fCAoY29uZmlnPy5hZGFwdGVyPy5yb290Py5nbG9iYWxUaGlzIHx8IGdsb2JhbFRoaXMpLmxvY2FsU3RvcmFnZVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLmxvY2FsU3RvcmFnZSA9IGNvbmZpZz8ubG9jYWxTdG9yYWdlIHx8IHt9XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBHZXQgSXRlbVxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8c3RyaW5nIHwgbnVsbD59XG4gICAqL1xuICBhc3luYyBnZXRJdGVtKGtleTogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmcgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBJdGVtLlxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5XG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyByZW1vdmVJdGVtKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cblxuICAvKipcbiAgICogU2V0IEl0ZW0uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICogQHBhcmFtIHtzdHJpbmd9IHZhbHVlXG4gICAqIEByZXR1cm4ge1Byb21pc2U8dm9pZD59XG4gICAqL1xuICBhc3luYyBzZXRJdGVtKGtleTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksIHZhbHVlKVxuICB9XG5cbiAgZ2V0SXRlbVN5bmMoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkpXG4gIH1cblxuICBzZXRJdGVtU3luYyhrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMubG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCB2YWx1ZSlcbiAgfVxuXG4gIHJlbW92ZUl0ZW1TeW5jKGtleTogc3RyaW5nKSB7XG4gICAgdGhpcy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrZXkpXG4gIH1cbn1cblxuLyoqXG4gKiBjb3B5IHRvIGdpdEBnaXQud29hLmNvbTpRQmFzZS9sY2FwL2RhdGFzb3VyY2UuZ2l0L3BhY2thZ2VzL2Nsb3VkLXNkay9jb21tb25cbiAqIOWQjOatpeS/ruaUuVxuICovXG5jb25zdCBVUkxfUkVHID0gL15bXjpdKzpcXC9cXC9bXi9dKyhcXC9bXj8jXSspL1xuXG5jb25zdCBkZWFsQWRhcHRlclJlcXVlc3REYXRhID0gKHJlcywgb3B0aW9ucykgPT4ge1xuICBjb25zdCByZXF1ZXN0SWQgPSBvcHRpb25zPy5oZWFkZXJzPy5bJ3gtcmVxdWVzdC1pZCddXG5cbiAgaWYgKCFyZXMpIHtcbiAgICByZXMgPSB7fVxuICB9XG5cbiAgaWYgKHJlcz8uY29kZSB8fCByZXM/LmRhdGE/LmVycm9yX2NvZGUpIHtcbiAgICByZXMgPSB7XG4gICAgICBlcnJvcjogcmVzLmNvZGUgfHwgcmVzLmRhdGEuZXJyb3IsXG4gICAgICBlcnJvcl9kZXNjcmlwdGlvbjogcmVzLmRhdGEuZXJyb3JfZGVzY3JpcHRpb24gfHwgcmVzLm1lc3NhZ2UgfHwgcmVzLmNvZGUgfHwgcmVzLmRhdGEuZXJyb3JfY29kZSxcbiAgICAgIHJlcXVlc3RfaWQ6IHJlcy5yZXF1ZXN0SWQsXG4gICAgICBlcnJvcl9jb2RlOiByZXMuZGF0YT8uZXJyb3JfY29kZSxcbiAgICB9XG4gIH1cblxuICBpZiAoIXJlcz8ucmVxdWVzdF9pZCkge1xuICAgIHJlcy5yZXF1ZXN0X2lkID0gcmVzLnJlcXVlc3RfaWQgfHwgcmVxdWVzdElkXG4gIH1cblxuICBpZiAocmVzPy5lcnJvcikge1xuICAgIHJlcy5lcnJvcl91cmkgPSBnZXRVcmxQYXRoKG9wdGlvbnM/LnVybClcbiAgICByZXR1cm4gcmVzXG4gIH1cblxuICByZXR1cm4gcmVzPy5kYXRhIHx8IHt9XG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlT2F1dGhDbGllbnRSZXF1ZXN0KHJlcUNsYXNzKSB7XG4gIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IHtcbiAgICAgIGJvZHk/OiBhbnkgfCBudWxsXG4gICAgICBoZWFkZXJzPzogYW55IHwgbnVsbFxuICAgICAgbWV0aG9kPzogc3RyaW5nXG4gICAgICBba2V5OiBzdHJpbmddOiBhbnlcbiAgICB9LFxuICApIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgLy8gT2JqZWN0cyBtdXN0IGJlIGNvcGllZCB0byBwcmV2ZW50IG1vZGlmaWNhdGlvbiBvZiBkYXRhIHN1Y2ggYXMgYm9keS5cbiAgICAgIGNvbnN0IGNvcHlPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucylcbiAgICAgIGlmIChjb3B5T3B0aW9ucy5ib2R5ICYmIHR5cGVvZiBjb3B5T3B0aW9ucy5ib2R5ICE9PSAnc3RyaW5nJykge1xuICAgICAgICBjb3B5T3B0aW9ucy5ib2R5ID0gSlNPTi5zdHJpbmdpZnkoY29weU9wdGlvbnMuYm9keSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgdGFzayA9IHd4LnJlcXVlc3Qoe1xuICAgICAgICB1cmwsXG4gICAgICAgIGRhdGE6IGNvcHlPcHRpb25zLmJvZHksXG4gICAgICAgIHRpbWVvdXQ6IHJlcUNsYXNzLl90aW1lb3V0LFxuICAgICAgICBtZXRob2Q6IGNvcHlPcHRpb25zLm1ldGhvZCB8fCAnR0VUJyxcbiAgICAgICAgaGVhZGVyOiBjb3B5T3B0aW9ucy5oZWFkZXJzLFxuICAgICAgICBzdWNjZXNzKHJlcykge1xuICAgICAgICAgIHJlcyA9IGRlYWxBZGFwdGVyUmVxdWVzdERhdGEocmVzLCB7IC4uLm9wdGlvbnMsIHVybCB9KVxuXG4gICAgICAgICAgaWYgKHJlcy5lcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KHJlcylcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICAgIH0sXG4gICAgICAgIGZhaWwoZXJyKSB7XG4gICAgICAgICAgcmVqZWN0KHtcbiAgICAgICAgICAgIGVycm9yOiAndW5yZWFjaGFibGUnLFxuICAgICAgICAgICAgZXJyb3JfZGVzY3JpcHRpb246IChlcnIgYXMgRXJyb3IpLm1lc3NhZ2UsXG4gICAgICAgICAgfSlcbiAgICAgICAgfSxcbiAgICAgICAgY29tcGxldGUoZXJyKSB7XG4gICAgICAgICAgaWYgKCFlcnIgfHwgIWVyci5lcnJNc2cpIHtcbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXJlcUNsYXNzLl90aW1lb3V0IHx8IHJlcUNsYXNzLl9yZXN0cmljdGVkTWV0aG9kcy5pbmRleE9mKCdyZXF1ZXN0JykgPT09IC0xKSB7XG4gICAgICAgICAgICByZXR1cm5cbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgeyBlcnJNc2cgfSA9IGVyclxuICAgICAgICAgIGlmIChlcnJNc2cgPT09ICdyZXF1ZXN0OmZhaWwgdGltZW91dCcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihyZXFDbGFzcy5fdGltZW91dE1zZylcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHRhc2suYWJvcnQoKVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH0pXG4gIH1cbn1cblxuLyoqXG4gKiBHZXQgdXJsIHBhdGguXG4gKiBAcGFyYW0ge3N0cmluZ30gdXJsXG4gKiBAcmV0dXJuIHtzdHJpbmd9XG4gKi9cbmZ1bmN0aW9uIGdldFVybFBhdGgodXJsOiBzdHJpbmcpIHtcbiAgLy8gcmV0dXJuIHBhdGggaWYgbWF0Y2hlZCwgb3Igb3JpZ2luYWwgdXJsXG4gIHJldHVybiBVUkxfUkVHLnRlc3QodXJsKSA/IFJlZ0V4cC4kMSA6IHVybFxufVxuXG4vKipcbiAqIOeUqOaIt+iHquWumuS5iWFkYXB0ZXLlpITnkIZcbiAqIEBwYXJhbSBjb25maWdcbiAqIEBwYXJhbSBhZGFwdGVyXG4gKiBAcmV0dXJuc1xuICovXG5jb25zdCBkZWFsVXNlckFkYXB0ZXIgPSAoY29uZmlnOiBBdXRoT3B0aW9ucywgYWRhcHRlcjogU0RLQWRhcHRlckludGVyZmFjZSkgPT4ge1xuICBjb25zdCBkYXRhID0geyAuLi5jb25maWcgfVxuXG4gIHRyeSB7XG4gICAgaWYgKCFjb25maWc/LnN0b3JhZ2UgJiYgYWRhcHRlcj8ubG9jYWxTdG9yYWdlKSB7XG4gICAgICBkYXRhLnN0b3JhZ2UgPSBuZXcgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSh7IGxvY2FsU3RvcmFnZTogYWRhcHRlci5sb2NhbFN0b3JhZ2UsIGFkYXB0ZXIgfSlcbiAgICB9XG5cbiAgICBpZiAoIWNvbmZpZy5jYXB0Y2hhT3B0aW9ucyAmJiBhZGFwdGVyPy5jYXB0Y2hhT3B0aW9ucykge1xuICAgICAgZGF0YS5jYXB0Y2hhT3B0aW9ucyA9IGFkYXB0ZXIuY2FwdGNoYU9wdGlvbnNcbiAgICB9XG5cbiAgICAvLyDnlKjmiLfmnKrkvKDlhaViYXNlUmVxdWVzdOWSjHJlcXVlc3Tml7blpITnkIZcbiAgICAvLyBPQXV0aDJDbGllbnTkvJjlhYjku6UgYmFzZVJlcXVlc3Qg5Li65YeGXG4gICAgLy8gQXV0aCDlnKjmsqHmnIkgcmVxdWVzdCDnmoTml7blgJnkvJrliJ3lp4vljJYgQ2FwdGNoYe+8jOS7juiAjOS9v+eUqCBDYXB0Y2hhIOeahCByZXF1ZXN0XG4gICAgaWYgKCFjb25maWcuYmFzZVJlcXVlc3QgJiYgIWNvbmZpZy5yZXF1ZXN0ICYmIGFkYXB0ZXI/LnJlcUNsYXNzKSB7XG4gICAgICBjb25zdCByZXFDbGFzc1BhcmFtcyA9IHtcbiAgICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgICAgIHJlc3RyaWN0ZWRNZXRob2RzOiBbJ2dldCcsICdwb3N0JywgJ3VwbG9hZCcsICdkb3dubG9hZCcsICdyZXF1ZXN0J10sXG4gICAgICB9XG4gICAgICBjb25zdCBhZGFwdGVyUmVxID0gbmV3IGFkYXB0ZXIucmVxQ2xhc3MocmVxQ2xhc3NQYXJhbXMpXG4gICAgICBkYXRhLmJhc2VSZXF1ZXN0ID0gYXN5bmMgZnVuY3Rpb24gKHVybDogc3RyaW5nLCBvcHRpb25zPzogeyBtZXRob2Q/OiBzdHJpbmc7IFtrZXk6IHN0cmluZ106IGFueSB9KSB7XG4gICAgICAgIGxldCByZXM6IGFueSA9IHt9XG5cbiAgICAgICAgY29uc3QgcmVxdWVzdFR5cGUgPSBvcHRpb25zLm1ldGhvZD8udG9Mb2NhbGVMb3dlckNhc2UoKSB8fCAncG9zdCdcblxuICAgICAgICBjb25zdCBmdW5jID0gYWRhcHRlclJlcT8uW3JlcXVlc3RUeXBlXT8uYmluZD8uKGFkYXB0ZXJSZXEpXG5cbiAgICAgICAgaWYgKHR5cGVvZiBmdW5jICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBpbnZhbGlkIOOAkCR7cmVxdWVzdFR5cGV944CRIHJlcXVlc3QgbWV0aG9kYClcbiAgICAgICAgfVxuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgLy8g5YW85a656Z2e5bCP56iL5bqP55qEYWRhcHRlclxuICAgICAgICAgIGlmICgoIW9wdGlvbnMuaGVhZGVycz8uWydjb250ZW50LXR5cGUnXSB8fCBvcHRpb25zLmhlYWRlcnM/LlsnY29udGVudC10eXBlJ10uaW5jbHVkZXMoJ2FwcGxpY2F0aW9uL2pzb24nKSkgJiYgIVsnc3RyaW5nJywgJ3VuZGVmaW5lZCddLmluY2x1ZGVzKHR5cGVvZiBvcHRpb25zLmJvZHkpKSB7XG4gICAgICAgICAgICBvcHRpb25zLmRhdGEgPSBvcHRpb25zLmRhdGEgfHwgb3B0aW9ucy5ib2R5XG4gICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLmJvZHkpXG4gICAgICAgICAgfVxuICAgICAgICAgIHJlcyA9IGF3YWl0IGZ1bmMoeyB1cmwsIC4uLm9wdGlvbnMgfSlcbiAgICAgICAgICByZXMgPSBkZWFsQWRhcHRlclJlcXVlc3REYXRhKHJlcywgeyAuLi5vcHRpb25zLCB1cmwgfSlcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXMgPSBlcnJvclxuICAgICAgICAgIHRocm93IGVycm9yXG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzPy5lcnJvcikge1xuICAgICAgICAgIHRocm93IHJlc1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ3VzZXIgYWRhcHRlciBnZW5lcmF0ZSBmYWlsOicsIGUpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG4vKipcbiAqIOWGhee9rum7mOiupGFkYXB0ZXLlpITnkIZcbiAqIEBwYXJhbSBjb25maWdcbiAqIEByZXR1cm5zXG4gKi9cbmNvbnN0IGRlYWxBdXRoQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zLCBhZGFwdGVyOiBTREtBZGFwdGVySW50ZXJmYWNlKSA9PiB7XG4gIGlmICghYWRhcHRlckZvcld4TXAuaXNNYXRjaCgpIHx8IChjb25maWcuc3RvcmFnZSAmJiBjb25maWcuYmFzZVJlcXVlc3QpKSByZXR1cm4gY29uZmlnXG5cbiAgY29uc3QgZGF0YSA9IHsgLi4uY29uZmlnIH1cbiAgY29uc3QgYXV0aE9wdGlvbnM6IGFueSA9IHt9XG5cbiAgdHJ5IHtcbiAgICBjb25zdCB7IGxvY2FsU3RvcmFnZSwgcmVxQ2xhc3M6IFJlcUNsYXNzIH0gPSBhZGFwdGVyRm9yV3hNcC5nZW5BZGFwdGVyKHt9KVxuICAgIGlmIChsb2NhbFN0b3JhZ2UpIHtcbiAgICAgIGF1dGhPcHRpb25zLnN0b3JhZ2UgPSBuZXcgT2F1dGhDbGllbnRTdG9yYWdlQmFzZSh7IGxvY2FsU3RvcmFnZSwgYWRhcHRlciB9KVxuICAgIH1cbiAgICBpZiAoUmVxQ2xhc3MpIHtcbiAgICAgIGNvbnN0IHJlcUNsYXNzID0gbmV3IFJlcUNsYXNzKHtcbiAgICAgICAgdGltZW91dDogMTAwMDAsXG4gICAgICAgIHJlc3RyaWN0ZWRNZXRob2RzOiBbJ2dldCcsICdwb3N0JywgJ3VwbG9hZCcsICdkb3dubG9hZCcsICdyZXF1ZXN0J10sXG4gICAgICB9KVxuICAgICAgYXV0aE9wdGlvbnMucmVxdWVzdCA9IGdlbmVyYXRlT2F1dGhDbGllbnRSZXF1ZXN0KHJlcUNsYXNzKVxuICAgIH1cblxuICAgIGlmIChkYXRhLmNhcHRjaGFPcHRpb25zKSB7XG4gICAgICBhdXRoT3B0aW9ucy5iYXNlUmVxdWVzdCA9IGF1dGhPcHRpb25zLnJlcXVlc3RcbiAgICAgIGF1dGhPcHRpb25zLnJlcXVlc3QgPSB1bmRlZmluZWRcbiAgICB9XG5cbiAgICByZXR1cm4geyAuLi5kYXRhLCAuLi5hdXRoT3B0aW9ucyB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBjb25zb2xlLmVycm9yKCdhZGFwdGVyIGdlbmVyYXRlIGZhaWw6JywgZSlcbiAgfVxuXG4gIHJldHVybiBkYXRhXG59XG5cbmV4cG9ydCBjb25zdCB1c2VBdXRoQWRhcHRlciA9IChjb25maWc6IEF1dGhPcHRpb25zKSA9PiB7XG4gIC8vIOWFvOWuueW+ruaQrWNsb3VkLXNka++8jGF1dGjkuK1qcy1zZGvpu5jorqTnmoRhZGFwdGVy5LiN6L+b6KGM6YWN572uXG4gIGlmIChjb25maWcuYWRhcHRlciAmJiAoY29uZmlnLmFkYXB0ZXIgYXMgYW55KS50eXBlICE9PSAnZGVmYXVsdCcpIHtcbiAgICByZXR1cm4gZGVhbFVzZXJBZGFwdGVyKGNvbmZpZywgY29uZmlnLmFkYXB0ZXIpXG4gIH1cblxuICByZXR1cm4gZGVhbEF1dGhBZGFwdGVyKGNvbmZpZywgY29uZmlnLmFkYXB0ZXIpXG59XG4iXX0=