specmatic 0.73.0 → 0.73.2

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.
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.testWithApiCoverage = exports.test = exports.stopStub = exports.startStub = exports.startApiCoverageServer = exports.showTestResults = exports.setExpectations = exports.printJarVersion = exports.Stub = void 0;
7
- var _nodeFetch = _interopRequireDefault(require("node-fetch"));
7
+ var _axios = _interopRequireDefault(require("axios"));
8
8
  var _path = _interopRequireDefault(require("path"));
9
9
  var _fastXmlParser = require("fast-xml-parser");
10
10
  var _fs = _interopRequireDefault(require("fs"));
@@ -201,41 +201,11 @@ var setExpectations = function setExpectations(stubPath, stubServerBaseUrl) {
201
201
  stubServerBaseUrl = stubServerBaseUrl || 'http://localhost:9000';
202
202
  _logger["default"].info("Set Expectations: Stub url is ".concat(stubServerBaseUrl));
203
203
  return new Promise(function (resolve, reject) {
204
- (0, _nodeFetch["default"])("".concat(stubServerBaseUrl, "/_specmatic/expectations"), {
205
- method: 'POST',
206
- body: JSON.stringify(stubResponse)
207
- }).then( /*#__PURE__*/function () {
208
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(response) {
209
- var body;
210
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
211
- while (1) switch (_context4.prev = _context4.next) {
212
- case 0:
213
- if (!(response.status != 200)) {
214
- _context4.next = 9;
215
- break;
216
- }
217
- _logger["default"].error("Set Expectations: Failed with status code ".concat(response.status));
218
- _context4.next = 4;
219
- return response.text();
220
- case 4:
221
- body = _context4.sent;
222
- _logger["default"].error(body);
223
- reject("Setting expecation failed");
224
- _context4.next = 11;
225
- break;
226
- case 9:
227
- _logger["default"].info('Set Expectations: Finished');
228
- resolve();
229
- case 11:
230
- case "end":
231
- return _context4.stop();
232
- }
233
- }, _callee4);
234
- }));
235
- return function (_x9) {
236
- return _ref4.apply(this, arguments);
237
- };
238
- }())["catch"](function (err) {
204
+ _axios["default"].post("".concat(stubServerBaseUrl, "/_specmatic/expectations"), stubResponse).then(function (response) {
205
+ _logger["default"].debug("Set Expectations: ".concat(response.data));
206
+ _logger["default"].info('Set Expectations: Finished');
207
+ resolve();
208
+ })["catch"](function (err) {
239
209
  _logger["default"].error("Set Expectations: Failed with error ".concat(err));
240
210
  reject("Setting expecation failed with error ".concat(err));
241
211
  });
@@ -322,4 +292,4 @@ function extractEndPoints(expressApp) {
322
292
  });
323
293
  return springActuatorPayload;
324
294
  }
325
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbm9kZUZldGNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcGF0aCIsIl9mYXN0WG1sUGFyc2VyIiwiX2ZzIiwiX2xvZ2dlciIsIl9ydW5uZXIiLCJfcHJvbWlzZSIsIl9leHByZXNzTGlzdEVuZHBvaW50cyIsIl9odHRwIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsIk9iamVjdCIsImhhc093biIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJkZXNjIiwidmFsdWUiLCIkU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl9fYXdhaXQiLCJ0aGVuIiwidW53cmFwcGVkIiwiZXJyb3IiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInN0YXRlIiwiRXJyb3IiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsImRvbmUiLCJtZXRob2ROYW1lIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwibGVuZ3RoIiwiaSIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX3RvUHJvcGVydHlLZXkiLCJfY3JlYXRlQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiX2RlZmluZVByb3BlcnR5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiU3R1YiIsImhvc3QiLCJwb3J0IiwidXJsIiwicHJvY2VzcyIsInN0YXJ0U3R1YiIsImNtZCIsImNvbmNhdCIsImpvaW4iLCJsb2dnZXIiLCJkZWJ1ZyIsImphdmFQcm9jZXNzIiwiY2FsbENvcmUiLCJtZXNzYWdlIiwiaW5kZXhPZiIsInN0dWJJbmZvIiwic3BsaXQiLCJfdXJsSW5mbyRsZW5ndGgiLCJ0cmltIiwidXJsSW5mbyIsImV4ZWMiLCJwYXJzZUludCIsInN0b3BTdHViIiwiX3JlZiIsIl9jYWxsZWUiLCJzdHViIiwiX2phdmFQcm9jZXNzJHN0ZG91dCIsIl9qYXZhUHJvY2VzcyRzdGRlcnIiLCJfY2FsbGVlJCIsIl9jb250ZXh0Iiwic3Rkb3V0IiwicmVtb3ZlQWxsTGlzdGVuZXJzIiwic3RkZXJyIiwidGVybWluYXRlIiwicGlkIiwiX3giLCJ0ZXN0V2l0aEFwaUNvdmVyYWdlIiwiX3JlZjIiLCJfY2FsbGVlMyIsImV4cHJlc3NBcHAiLCJjb250cmFjdFBhdGgiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJfcmVmMyIsIl9jYWxsZWUyIiwiX3JlamVjdCIsImFwaUNvdmVyYWdlU2VydmVyIiwicmVzdWx0cyIsIl9jYWxsZWUyJCIsIl9jb250ZXh0MiIsInN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIiLCJ0ZXN0IiwiY2xvc2UiLCJfeDciLCJfeDgiLCJfeDIiLCJfeDMiLCJfeDQiLCJfeDUiLCJfeDYiLCJzcGVjc1BhdGgiLCJwYXRoIiwicmVwb3J0RGlyIiwiZnMiLCJybVN5bmMiLCJyZWN1cnNpdmUiLCJmb3JjZSIsInRlc3RDYXNlcyIsInBhcnNlSnVuaXRYTUwiLCJ0b3RhbCIsImZhaWx1cmUiLCJmaWx0ZXIiLCJ0ZXN0Y2FzZSIsInN1Y2Nlc3MiLCJjb25zb2xlIiwibG9nIiwic2hvd1Rlc3RSZXN1bHRzIiwidGVzdEZuIiwibWFwIiwibmFtZVRlbXBBcnIiLCJyZXBsYWNlIiwic2tpcHBlZCIsInNldEV4cGVjdGF0aW9ucyIsInN0dWJQYXRoIiwic3R1YlNlcnZlckJhc2VVcmwiLCJzdHViUmVzcG9uc2UiLCJmZXRjaCIsImJvZHkiLCJKU09OIiwic3RyaW5naWZ5IiwiX3JlZjQiLCJfY2FsbGVlNCIsInJlc3BvbnNlIiwiX2NhbGxlZTQkIiwiX2NvbnRleHQ0Iiwic3RhdHVzIiwidGV4dCIsIl94OSIsInByaW50SmFyVmVyc2lvbiIsImFwcCIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJfcmVxIiwid3JpdGVIZWFkIiwiZW5kUG9pbnRzIiwiZXh0cmFjdEVuZFBvaW50cyIsImVuZCIsIm9uIiwibGlzdGVuIiwiYWRkcmVzcyIsImVudiIsInJlcG9ydFBhdGgiLCJkYXRhIiwicmVhZEZpbGVTeW5jIiwicGFyc2VyIiwiWE1MUGFyc2VyIiwicmVzdWx0WG1sIiwicGFyc2UiLCJ0ZXN0c3VpdGUiLCJBcnJheSIsImlzQXJyYXkiLCJsaXN0RW5kUG9pbnRzIiwiZGV0YWlscyIsImxpc3RFeHByZXNzRW5kcG9pbnRzIiwiYXBpRGV0YWlsIiwibWV0aG9kcyIsInNwcmluZ0FjdHVhdG9yUGF5bG9hZCIsImNvbnRleHRzIiwiYXBwbGljYXRpb24iLCJtYXBwaW5ncyIsImRpc3BhdGNoZXJTZXJ2bGV0cyIsImRpc3BhdGNoZXJTZXJ2bGV0Iiwic29ydCIsInJlcXVlc3RNYXBwaW5nQ29uZGl0aW9ucyIsInBhdHRlcm5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IHsgQ2hpbGRQcm9jZXNzIH0gZnJvbSAnY2hpbGRfcHJvY2VzcydcbmltcG9ydCB7IFhNTFBhcnNlciB9IGZyb20gJ2Zhc3QteG1sLXBhcnNlcidcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBsb2dnZXIgZnJvbSAnLi4vY29tbW9uL2xvZ2dlcidcbmltcG9ydCB7IGNhbGxDb3JlIH0gZnJvbSAnLi4vY29tbW9uL3J1bm5lcidcbmltcG9ydCB0ZXJtaW5hdGUgZnJvbSAndGVybWluYXRlL3Byb21pc2UnXG5pbXBvcnQgbGlzdEV4cHJlc3NFbmRwb2ludHMgZnJvbSAnZXhwcmVzcy1saXN0LWVuZHBvaW50cydcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnXG5pbXBvcnQgeyBBZGRyZXNzSW5mbyB9IGZyb20gJ25ldCdcblxuZXhwb3J0IGNsYXNzIFN0dWIge1xuICAgIGhvc3Q6IHN0cmluZ1xuICAgIHBvcnQ6IG51bWJlclxuICAgIHVybDogc3RyaW5nXG4gICAgcHJvY2VzczogQ2hpbGRQcm9jZXNzXG4gICAgY29uc3RydWN0b3IoaG9zdDogc3RyaW5nLCBwb3J0OiBudW1iZXIsIHVybDogc3RyaW5nLCBwcm9jZXNzOiBDaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgdGhpcy5ob3N0ID0gaG9zdFxuICAgICAgICB0aGlzLnBvcnQgPSBwb3J0XG4gICAgICAgIHRoaXMudXJsID0gdXJsXG4gICAgICAgIHRoaXMucHJvY2VzcyA9IHByb2Nlc3NcbiAgICB9XG59XG5cbmNvbnN0IHN0YXJ0U3R1YiA9IChob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyLCBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8U3R1Yj4gPT4ge1xuICAgIHZhciBjbWQgPSBgc3R1YmBcbiAgICBpZiAoaG9zdCkgY21kICs9IGAgLS1ob3N0PSR7aG9zdH1gXG4gICAgaWYgKHBvcnQpIGNtZCArPSBgIC0tcG9ydD0ke3BvcnR9YFxuICAgIGlmIChhcmdzKSBjbWQgKz0gJyAnICsgYXJncy5qb2luKCcgJylcblxuICAgIGxvZ2dlci5pbmZvKCdTdHViOiBTdGFydGluZyBzZXJ2ZXInKVxuICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgY29uc3QgamF2YVByb2Nlc3MgPSBjYWxsQ29yZShcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiBFeGl0ZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ1N0dWIgc2VydmVyIGlzIHJ1bm5pbmcnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHViSW5mbyA9IG1lc3NhZ2Uuc3BsaXQoJ29uJylcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby5sZW5ndGggPCAyKSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgdXJsIGZyb20gc3R1YiBvdXRwdXQnKVxuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsID0gc3R1YkluZm9bMV0udHJpbSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdXJsSW5mbyA9IC8oLio/KTpcXC9cXC8oLio/KTooWzAtOV0rKS8uZXhlYyh1cmwpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCh1cmxJbmZvPy5sZW5ndGggPz8gMCkgPCA0KSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgaG9zdCBhbmQgcG9ydCBmcm9tIHN0dWIgb3V0cHV0JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJlc29sdmUobmV3IFN0dWIodXJsSW5mbyFbMl0sIHBhcnNlSW50KHVybEluZm8hWzNdKSwgdXJsSW5mbyFbMF0sIGphdmFQcm9jZXNzKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJylcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgU3R1YjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgIH0pXG59XG5cbmNvbnN0IHN0b3BTdHViID0gYXN5bmMgKHN0dWI6IFN0dWIpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoYFN0dWI6IFN0b3BwaW5nIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG4gICAgY29uc3QgamF2YVByb2Nlc3MgPSBzdHViLnByb2Nlc3NcbiAgICBqYXZhUHJvY2Vzcy5zdGRvdXQ/LnJlbW92ZUFsbExpc3RlbmVycygpXG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5yZW1vdmVBbGxMaXN0ZW5lcnMoKVxuICAgIGphdmFQcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycygnY2xvc2UnKVxuICAgIGF3YWl0IHRlcm1pbmF0ZShqYXZhUHJvY2Vzcy5waWQhKVxuICAgIGxvZ2dlci5pbmZvKGBTdHViOiBTdG9wcGVkIHNlcnZlciBhdCAke3N0dWIudXJsfWApXG59XG5cbmNvbnN0IHRlc3RXaXRoQXBpQ292ZXJhZ2UgPSBhc3luYyAoXG4gICAgZXhwcmVzc0FwcDogYW55LFxuICAgIGhvc3Q/OiBzdHJpbmcsXG4gICAgcG9ydD86IG51bWJlcixcbiAgICBjb250cmFjdFBhdGg/OiBzdHJpbmcsXG4gICAgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW11cbik6IFByb21pc2U8eyBbazogc3RyaW5nXTogbnVtYmVyIH0gfCB1bmRlZmluZWQ+ID0+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUsIF9yZWplY3QpID0+IHtcbiAgICAgICAgbGV0IGFwaUNvdmVyYWdlU2VydmVyID0gYXdhaXQgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlcihleHByZXNzQXBwKVxuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgdGVzdChob3N0LCBwb3J0LCBjb250cmFjdFBhdGgsIGFyZ3MpXG4gICAgICAgIGFwaUNvdmVyYWdlU2VydmVyLmNsb3NlKCgpID0+IHtcbiAgICAgICAgICAgIHJlc29sdmUocmVzdWx0cylcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCB0ZXN0ID0gKGhvc3Q/OiBzdHJpbmcsIHBvcnQ/OiBudW1iZXIsIGNvbnRyYWN0UGF0aD86IHN0cmluZywgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW10pOiBQcm9taXNlPHsgW2s6IHN0cmluZ106IG51bWJlciB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgY29uc3Qgc3BlY3NQYXRoID0gcGF0aC5yZXNvbHZlKGNvbnRyYWN0UGF0aCArICcnKVxuXG4gICAgdmFyIGNtZCA9IGB0ZXN0YFxuICAgIGlmIChjb250cmFjdFBhdGgpIGNtZCArPSBgICR7c3BlY3NQYXRofWBcbiAgICBjbWQgKz0gJyAtLWp1bml0UmVwb3J0RGlyPWRpc3QvdGVzdC1yZXBvcnQnXG4gICAgaWYgKGhvc3QpIGNtZCArPSBgIC0taG9zdD0ke2hvc3R9YFxuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWBcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpXG5cbiAgICBsb2dnZXIuaW5mbygnVGVzdDogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBUZXN0OiBFeGVjdXRpbmcgXCIke2NtZH1cImApXG5cbiAgICBjb25zdCByZXBvcnREaXIgPSBwYXRoLnJlc29sdmUoJ2Rpc3QvdGVzdC1yZXBvcnQnKVxuICAgIGZzLnJtU3luYyhyZXBvcnREaXIsIHsgcmVjdXJzaXZlOiB0cnVlLCBmb3JjZTogdHJ1ZSB9KVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICAgIGNhbGxDb3JlKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikgbG9nZ2VyLmVycm9yKGBUZXN0OiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICAgICAgICAgICAgICBjb25zdCB0b3RhbCA9IHRlc3RDYXNlcy5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBmYWlsdXJlID0gdGVzdENhc2VzLmZpbHRlcigodGVzdGNhc2U6IHsgW2lkOiBzdHJpbmddOiBhbnkgfSkgPT4gdGVzdGNhc2VbJ2ZhaWx1cmUnXSB8fCB0ZXN0Y2FzZVsnc2tpcHBlZCddKS5sZW5ndGhcbiAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzID0gdG90YWwgLSBmYWlsdXJlXG4gICAgICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHsgdG90YWwsIHN1Y2Nlc3MsIGZhaWx1cmUgfVxuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzdWx0KVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FQSSBDT1ZFUkFHRSBTVU1NQVJZJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhtZXNzYWdlKSAvL0xvZyBhbHdheXMgZm9yIGFsbCBsb2cgbGV2ZWxzXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyW2Vycm9yID8gJ2Vycm9yJyA6ICdkZWJ1ZyddKGBUZXN0OiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICB9KVxufVxuXG5jb25zdCBzaG93VGVzdFJlc3VsdHMgPSAodGVzdEZuOiAobmFtZTogc3RyaW5nLCBjYjogKCkgPT4gdm9pZCkgPT4gdm9pZCkgPT4ge1xuICAgIHZhciB0ZXN0Q2FzZXMgPSBwYXJzZUp1bml0WE1MKClcbiAgICB0ZXN0Q2FzZXMubWFwKGZ1bmN0aW9uICh0ZXN0Y2FzZTogeyBbaWQ6IHN0cmluZ106IGFueSB9KSB7XG4gICAgICAgIHZhciBuYW1lID0gJ05vIE5hbWUnXG4gICAgICAgIGlmICh0ZXN0Y2FzZVsnc3lzdGVtLW91dCddKSB7XG4gICAgICAgICAgICBjb25zdCBuYW1lVGVtcEFyciA9IHRlc3RjYXNlWydzeXN0ZW0tb3V0J11cbiAgICAgICAgICAgICAgICAudHJpbSgpXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoL1xcbi9nLCAnJylcbiAgICAgICAgICAgICAgICAuc3BsaXQoL2Rpc3BsYXktbmFtZTouKlNjZW5hcmlvOiAvKVxuICAgICAgICAgICAgaWYgKG5hbWVUZW1wQXJyLmxlbmd0aCA+IDEpIG5hbWUgPSBuYW1lVGVtcEFyclsxXS50cmltKClcbiAgICAgICAgfVxuICAgICAgICB0ZXN0Rm4obmFtZSwgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKHRlc3RjYXNlLmZhaWx1cmUgfHwgdGVzdGNhc2Uuc2tpcHBlZCkgdGhyb3cgbmV3IEVycm9yKCdEaWQgbm90IHBhc3MnKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHNldEV4cGVjdGF0aW9ucyA9IChzdHViUGF0aDogc3RyaW5nLCBzdHViU2VydmVyQmFzZVVybD86IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IHN0dWJSZXNwb25zZSA9IHJlcXVpcmUocGF0aC5yZXNvbHZlKHN0dWJQYXRoKSlcbiAgICBzdHViU2VydmVyQmFzZVVybCA9IHN0dWJTZXJ2ZXJCYXNlVXJsIHx8ICdodHRwOi8vbG9jYWxob3N0OjkwMDAnXG5cbiAgICBsb2dnZXIuaW5mbyhgU2V0IEV4cGVjdGF0aW9uczogU3R1YiB1cmwgaXMgJHtzdHViU2VydmVyQmFzZVVybH1gKVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmV0Y2goYCR7c3R1YlNlcnZlckJhc2VVcmx9L19zcGVjbWF0aWMvZXhwZWN0YXRpb25zYCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShzdHViUmVzcG9uc2UpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4oYXN5bmMgcmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXNwb25zZS5zdGF0dXN9YClcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYm9keSA9IGF3YWl0IHJlc3BvbnNlLnRleHQoKVxuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYm9keSlcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGBTZXR0aW5nIGV4cGVjYXRpb24gZmFpbGVkYClcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQnKVxuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTZXQgRXhwZWN0YXRpb25zOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgICAgIHJlamVjdChgU2V0dGluZyBleHBlY2F0aW9uIGZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApXG4gICAgICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHByaW50SmFyVmVyc2lvbiA9ICgpID0+IHtcbiAgICBjb25zdCBjbWQgPSBgLS12ZXJzaW9uYFxuICAgIGxvZ2dlci5pbmZvKCdQcmludCBKYXIgVmVyc2lvbjogUnVubmluZycpXG4gICAgbG9nZ2VyLmRlYnVnKGBQcmludCBKYXIgVmVyc2lvbjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgY2FsbENvcmUoXG4gICAgICAgIGNtZCxcbiAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSBsb2dnZXIuZXJyb3IoYFByaW50IEphciBWZXJzaW9uOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICB9LFxuICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgIGlmIChlcnJvcikgbG9nZ2VyLmVycm9yKGBQcmludCBKYXIgVmVyc2lvbjogJHttZXNzYWdlfWApXG4gICAgICAgICAgICBlbHNlIGNvbnNvbGUubG9nKGAke21lc3NhZ2V9YClcbiAgICAgICAgfVxuICAgIClcbn1cblxuY29uc3Qgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciA9IChleHByZXNzQXBwOiBhbnkpOiBQcm9taXNlPGh0dHAuU2VydmVyPiA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKGBSZWdpc3RlcmluZyBBUEkgZW5kcG9pbnQgZm9yIGNvdmVyYWdlYClcbiAgICBsZXQgYXBwID0gaHR0cC5jcmVhdGVTZXJ2ZXIoKF9yZXEsIHJlcykgPT4ge1xuICAgICAgICByZXMud3JpdGVIZWFkKDIwMCwgeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0pXG4gICAgICAgIGNvbnN0IGVuZFBvaW50cyA9IEpTT04uc3RyaW5naWZ5KGV4dHJhY3RFbmRQb2ludHMoZXhwcmVzc0FwcCkpXG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgRW5kcG9pbnRzOiAke2VuZFBvaW50c31gKVxuICAgICAgICByZXMuZW5kKGVuZFBvaW50cylcbiAgICB9KVxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxodHRwLlNlcnZlcj4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBhcHAub24oJ2Vycm9yJywgZXJyID0+IHtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScsIGVycilcbiAgICAgICAgICAgIHJlamVjdCgnRXJyb3Igd2hpbGUgc3RhcnRpbmcgZW5kIHBvaW50cyBzZXJ2ZXIgZm9yIGFwaSBjb3ZlcmFnZScpXG4gICAgICAgIH0pXG4gICAgICAgIGFwcC5saXN0ZW4oeyBob3N0OiAnMTI3LjAuMC4xJywgcG9ydDogMCB9LCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhZGRyZXNzID0gYXBwLmFkZHJlc3MoKSBhcyBBZGRyZXNzSW5mbyB8IG51bGxcbiAgICAgICAgICAgIHByb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXSA9IGBodHRwOi8vJHthZGRyZXNzPy5hZGRyZXNzfToke2FkZHJlc3M/LnBvcnR9YFxuICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEVuZHBvaW50cyBBUEkgcmVnaXN0ZXJlZCBhdCAke3Byb2Nlc3MuZW52WydlbmRwb2ludHNBUEknXX1gKVxuICAgICAgICAgICAgcmVzb2x2ZShhcHApXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgcGFyc2VKdW5pdFhNTCA9ICgpID0+IHtcbiAgICBjb25zdCByZXBvcnRQYXRoID0gcGF0aC5yZXNvbHZlKCdkaXN0L3Rlc3QtcmVwb3J0L1RFU1QtanVuaXQtanVwaXRlci54bWwnKVxuICAgIHZhciBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHJlcG9ydFBhdGgpXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IFhNTFBhcnNlcigpXG4gICAgdmFyIHJlc3VsdFhtbCA9IHBhcnNlci5wYXJzZShkYXRhKVxuICAgIHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UgPSBBcnJheS5pc0FycmF5KHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UpID8gcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZSA6IFtyZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXVxuICAgIHJldHVybiByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlXG59XG5cbmNvbnN0IGxpc3RFbmRQb2ludHMgPSAoZXhwcmVzc0FwcDogYW55KTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0+IHtcbiAgICBjb25zdCBkZXRhaWxzID0gbGlzdEV4cHJlc3NFbmRwb2ludHMoZXhwcmVzc0FwcClcbiAgICBsZXQgZW5kUG9pbnRzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH0gPSB7fVxuICAgIGRldGFpbHMubWFwKGFwaURldGFpbCA9PiB7XG4gICAgICAgIGVuZFBvaW50c1thcGlEZXRhaWwucGF0aF0gPSBhcGlEZXRhaWwubWV0aG9kc1xuICAgIH0pXG4gICAgZGVsZXRlIGVuZFBvaW50c1snKiddXG4gICAgcmV0dXJuIGVuZFBvaW50c1xufVxuXG5mdW5jdGlvbiBleHRyYWN0RW5kUG9pbnRzKGV4cHJlc3NBcHA6IGFueSkge1xuICAgIGxldCBlbmRQb2ludHMgPSBsaXN0RW5kUG9pbnRzKGV4cHJlc3NBcHApXG4gICAgbGV0IHNwcmluZ0FjdHVhdG9yUGF5bG9hZCA9IHtcbiAgICAgICAgY29udGV4dHM6IHtcbiAgICAgICAgICAgIGFwcGxpY2F0aW9uOiB7XG4gICAgICAgICAgICAgICAgbWFwcGluZ3M6IHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlclNlcnZsZXRzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaGVyU2VydmxldDogW10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgfVxuICAgIE9iamVjdC5rZXlzKGVuZFBvaW50cylcbiAgICAgICAgLnNvcnQoKVxuICAgICAgICAubWFwKHBhdGggPT4ge1xuICAgICAgICAgICAgc3ByaW5nQWN0dWF0b3JQYXlsb2FkLmNvbnRleHRzLmFwcGxpY2F0aW9uLm1hcHBpbmdzLmRpc3BhdGNoZXJTZXJ2bGV0cy5kaXNwYXRjaGVyU2VydmxldC5wdXNoKHtcbiAgICAgICAgICAgICAgICBkZXRhaWxzOiB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RNYXBwaW5nQ29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kczogZW5kUG9pbnRzW3BhdGhdLnNvcnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5zOiBbcGF0aC5yZXBsYWNlKC86KFteL10rKS9nLCAneyQxfScpLnJlcGxhY2UoL1xcXFwvZywgJycpXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSBhcyBuZXZlcilcbiAgICAgICAgfSlcbiAgICByZXR1cm4gc3ByaW5nQWN0dWF0b3JQYXlsb2FkXG59XG5cbmV4cG9ydCB7IHN0YXJ0U3R1Yiwgc3RvcFN0dWIsIHRlc3QsIHRlc3RXaXRoQXBpQ292ZXJhZ2UsIHNldEV4cGVjdGF0aW9ucywgcHJpbnRKYXJWZXJzaW9uLCBzaG93VGVzdFJlc3VsdHMgfVxuZXhwb3J0IHsgc3RhcnRBcGlDb3ZlcmFnZVNlcnZlciB9XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFFLGNBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLEdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLE9BQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLHFCQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFBdUIsU0FBQUQsdUJBQUFVLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxnQkFBQUEsR0FBQTtBQUFBLFNBQUFFLFFBQUFGLEdBQUEsc0NBQUFFLE9BQUEsd0JBQUFDLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBSixHQUFBLGtCQUFBQSxHQUFBLGdCQUFBQSxHQUFBLFdBQUFBLEdBQUEseUJBQUFHLE1BQUEsSUFBQUgsR0FBQSxD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
295
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9wYXRoIiwiX2Zhc3RYbWxQYXJzZXIiLCJfZnMiLCJfbG9nZ2VyIiwiX3J1bm5lciIsIl9wcm9taXNlIiwiX2V4cHJlc3NMaXN0RW5kcG9pbnRzIiwiX2h0dHAiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiT2JqZWN0IiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsImRlc2MiLCJ2YWx1ZSIsIiRTeW1ib2wiLCJpdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJjYWxsIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiZ2V0UHJvdG90eXBlT2YiLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsInZhbHVlcyIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVjb3JkIiwicmVzdWx0IiwiX19hd2FpdCIsInRoZW4iLCJ1bndyYXBwZWQiLCJlcnJvciIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiZG9uZSIsIm1ldGhvZE5hbWUiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwibG9jcyIsImVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNOYU4iLCJsZW5ndGgiLCJpIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsIml0ZXIiLCJrZXlzIiwidmFsIiwib2JqZWN0IiwicmV2ZXJzZSIsInBvcCIsInNraXBUZW1wUmVzZXQiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJoYW5kbGUiLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsInRocm93biIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJfbmV4dCIsIl90aHJvdyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJfdG9Qcm9wZXJ0eUtleSIsIl9jcmVhdGVDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJTdHViIiwiaG9zdCIsInBvcnQiLCJ1cmwiLCJwcm9jZXNzIiwic3RhcnRTdHViIiwiY21kIiwiY29uY2F0Iiwiam9pbiIsImxvZ2dlciIsImRlYnVnIiwiamF2YVByb2Nlc3MiLCJjYWxsQ29yZSIsIm1lc3NhZ2UiLCJpbmRleE9mIiwic3R1YkluZm8iLCJzcGxpdCIsIl91cmxJbmZvJGxlbmd0aCIsInRyaW0iLCJ1cmxJbmZvIiwiZXhlYyIsInBhcnNlSW50Iiwic3RvcFN0dWIiLCJfcmVmIiwiX2NhbGxlZSIsInN0dWIiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzdGRvdXQiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJzdGRlcnIiLCJ0ZXJtaW5hdGUiLCJwaWQiLCJfeCIsInRlc3RXaXRoQXBpQ292ZXJhZ2UiLCJfcmVmMiIsIl9jYWxsZWUzIiwiZXhwcmVzc0FwcCIsImNvbnRyYWN0UGF0aCIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsIl9yZWYzIiwiX2NhbGxlZTIiLCJfcmVqZWN0IiwiYXBpQ292ZXJhZ2VTZXJ2ZXIiLCJyZXN1bHRzIiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwic3RhcnRBcGlDb3ZlcmFnZVNlcnZlciIsInRlc3QiLCJjbG9zZSIsIl94NyIsIl94OCIsIl94MiIsIl94MyIsIl94NCIsIl94NSIsIl94NiIsInNwZWNzUGF0aCIsInBhdGgiLCJyZXBvcnREaXIiLCJmcyIsInJtU3luYyIsInJlY3Vyc2l2ZSIsImZvcmNlIiwidGVzdENhc2VzIiwicGFyc2VKdW5pdFhNTCIsInRvdGFsIiwiZmFpbHVyZSIsImZpbHRlciIsInRlc3RjYXNlIiwic3VjY2VzcyIsImNvbnNvbGUiLCJsb2ciLCJzaG93VGVzdFJlc3VsdHMiLCJ0ZXN0Rm4iLCJtYXAiLCJuYW1lVGVtcEFyciIsInJlcGxhY2UiLCJza2lwcGVkIiwic2V0RXhwZWN0YXRpb25zIiwic3R1YlBhdGgiLCJzdHViU2VydmVyQmFzZVVybCIsInN0dWJSZXNwb25zZSIsImF4aW9zIiwicG9zdCIsInJlc3BvbnNlIiwiZGF0YSIsInByaW50SmFyVmVyc2lvbiIsImFwcCIsImh0dHAiLCJjcmVhdGVTZXJ2ZXIiLCJfcmVxIiwid3JpdGVIZWFkIiwiZW5kUG9pbnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsImV4dHJhY3RFbmRQb2ludHMiLCJlbmQiLCJvbiIsImxpc3RlbiIsImFkZHJlc3MiLCJlbnYiLCJyZXBvcnRQYXRoIiwicmVhZEZpbGVTeW5jIiwicGFyc2VyIiwiWE1MUGFyc2VyIiwicmVzdWx0WG1sIiwicGFyc2UiLCJ0ZXN0c3VpdGUiLCJBcnJheSIsImlzQXJyYXkiLCJsaXN0RW5kUG9pbnRzIiwiZGV0YWlscyIsImxpc3RFeHByZXNzRW5kcG9pbnRzIiwiYXBpRGV0YWlsIiwibWV0aG9kcyIsInNwcmluZ0FjdHVhdG9yUGF5bG9hZCIsImNvbnRleHRzIiwiYXBwbGljYXRpb24iLCJtYXBwaW5ncyIsImRpc3BhdGNoZXJTZXJ2bGV0cyIsImRpc3BhdGNoZXJTZXJ2bGV0Iiwic29ydCIsInJlcXVlc3RNYXBwaW5nQ29uZGl0aW9ucyIsInBhdHRlcm5zIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvcmUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnXG5pbXBvcnQgeyBYTUxQYXJzZXIgfSBmcm9tICdmYXN0LXhtbC1wYXJzZXInXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInXG5pbXBvcnQgeyBjYWxsQ29yZSB9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInXG5pbXBvcnQgdGVybWluYXRlIGZyb20gJ3Rlcm1pbmF0ZS9wcm9taXNlJ1xuaW1wb3J0IGxpc3RFeHByZXNzRW5kcG9pbnRzIGZyb20gJ2V4cHJlc3MtbGlzdC1lbmRwb2ludHMnXG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJ1xuaW1wb3J0IHsgQWRkcmVzc0luZm8gfSBmcm9tICduZXQnXG5cbmV4cG9ydCBjbGFzcyBTdHViIHtcbiAgICBob3N0OiBzdHJpbmdcbiAgICBwb3J0OiBudW1iZXJcbiAgICB1cmw6IHN0cmluZ1xuICAgIHByb2Nlc3M6IENoaWxkUHJvY2Vzc1xuICAgIGNvbnN0cnVjdG9yKGhvc3Q6IHN0cmluZywgcG9ydDogbnVtYmVyLCB1cmw6IHN0cmluZywgcHJvY2VzczogQ2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIHRoaXMuaG9zdCA9IGhvc3RcbiAgICAgICAgdGhpcy5wb3J0ID0gcG9ydFxuICAgICAgICB0aGlzLnVybCA9IHVybFxuICAgICAgICB0aGlzLnByb2Nlc3MgPSBwcm9jZXNzXG4gICAgfVxufVxuXG5jb25zdCBzdGFydFN0dWIgPSAoaG9zdD86IHN0cmluZywgcG9ydD86IG51bWJlciwgYXJncz86IChzdHJpbmcgfCBudW1iZXIpW10pOiBQcm9taXNlPFN0dWI+ID0+IHtcbiAgICB2YXIgY21kID0gYHN0dWJgXG4gICAgaWYgKGhvc3QpIGNtZCArPSBgIC0taG9zdD0ke2hvc3R9YFxuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWBcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpXG5cbiAgICBsb2dnZXIuaW5mbygnU3R1YjogU3RhcnRpbmcgc2VydmVyJylcbiAgICBsb2dnZXIuZGVidWcoYFN0dWI6IEV4ZWN1dGluZyBcIiR7Y21kfVwiYClcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGNvbnN0IGphdmFQcm9jZXNzID0gY2FsbENvcmUoXG4gICAgICAgICAgICBjbWQsXG4gICAgICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU3R1YjogRXhpdGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgKG1lc3NhZ2UsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pbmRleE9mKCdTdHViIHNlcnZlciBpcyBydW5uaW5nJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3R1YkluZm8gPSBtZXNzYWdlLnNwbGl0KCdvbicpXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R1YkluZm8ubGVuZ3RoIDwgMikgcmVqZWN0KCdDYW5ub3QgZGV0ZXJtaW5lIHVybCBmcm9tIHN0dWIgb3V0cHV0JylcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IHN0dWJJbmZvWzFdLnRyaW0oKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVybEluZm8gPSAvKC4qPyk6XFwvXFwvKC4qPyk6KFswLTldKykvLmV4ZWModXJsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgodXJsSW5mbz8ubGVuZ3RoID8/IDApIDwgNCkgcmVqZWN0KCdDYW5ub3QgZGV0ZXJtaW5lIGhvc3QgYW5kIHBvcnQgZnJvbSBzdHViIG91dHB1dCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSByZXNvbHZlKG5ldyBTdHViKHVybEluZm8hWzJdLCBwYXJzZUludCh1cmxJbmZvIVszXSksIHVybEluZm8hWzBdLCBqYXZhUHJvY2VzcykpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgnQWRkcmVzcyBhbHJlYWR5IGluIHVzZScpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYFN0dWI6ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBTdHViOiAke21lc3NhZ2V9YClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIClcbiAgICB9KVxufVxuXG5jb25zdCBzdG9wU3R1YiA9IGFzeW5jIChzdHViOiBTdHViKSA9PiB7XG4gICAgbG9nZ2VyLmRlYnVnKGBTdHViOiBTdG9wcGluZyBzZXJ2ZXIgYXQgJHtzdHViLnVybH1gKVxuICAgIGNvbnN0IGphdmFQcm9jZXNzID0gc3R1Yi5wcm9jZXNzXG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5yZW1vdmVBbGxMaXN0ZW5lcnMoKVxuICAgIGphdmFQcm9jZXNzLnN0ZGVycj8ucmVtb3ZlQWxsTGlzdGVuZXJzKClcbiAgICBqYXZhUHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2Nsb3NlJylcbiAgICBhd2FpdCB0ZXJtaW5hdGUoamF2YVByb2Nlc3MucGlkISlcbiAgICBsb2dnZXIuaW5mbyhgU3R1YjogU3RvcHBlZCBzZXJ2ZXIgYXQgJHtzdHViLnVybH1gKVxufVxuXG5jb25zdCB0ZXN0V2l0aEFwaUNvdmVyYWdlID0gYXN5bmMgKFxuICAgIGV4cHJlc3NBcHA6IGFueSxcbiAgICBob3N0Pzogc3RyaW5nLFxuICAgIHBvcnQ/OiBudW1iZXIsXG4gICAgY29udHJhY3RQYXRoPzogc3RyaW5nLFxuICAgIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdXG4pOiBQcm9taXNlPHsgW2s6IHN0cmluZ106IG51bWJlciB9IHwgdW5kZWZpbmVkPiA9PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCBfcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBhcGlDb3ZlcmFnZVNlcnZlciA9IGF3YWl0IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIoZXhwcmVzc0FwcClcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRlc3QoaG9zdCwgcG9ydCwgY29udHJhY3RQYXRoLCBhcmdzKVxuICAgICAgICBhcGlDb3ZlcmFnZVNlcnZlci5jbG9zZSgoKSA9PiB7XG4gICAgICAgICAgICByZXNvbHZlKHJlc3VsdHMpXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuY29uc3QgdGVzdCA9IChob3N0Pzogc3RyaW5nLCBwb3J0PzogbnVtYmVyLCBjb250cmFjdFBhdGg/OiBzdHJpbmcsIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTx7IFtrOiBzdHJpbmddOiBudW1iZXIgfSB8IHVuZGVmaW5lZD4gPT4ge1xuICAgIGNvbnN0IHNwZWNzUGF0aCA9IHBhdGgucmVzb2x2ZShjb250cmFjdFBhdGggKyAnJylcblxuICAgIHZhciBjbWQgPSBgdGVzdGBcbiAgICBpZiAoY29udHJhY3RQYXRoKSBjbWQgKz0gYCAke3NwZWNzUGF0aH1gXG4gICAgY21kICs9ICcgLS1qdW5pdFJlcG9ydERpcj1kaXN0L3Rlc3QtcmVwb3J0J1xuICAgIGlmIChob3N0KSBjbWQgKz0gYCAtLWhvc3Q9JHtob3N0fWBcbiAgICBpZiAocG9ydCkgY21kICs9IGAgLS1wb3J0PSR7cG9ydH1gXG4gICAgaWYgKGFyZ3MpIGNtZCArPSAnICcgKyBhcmdzLmpvaW4oJyAnKVxuXG4gICAgbG9nZ2VyLmluZm8oJ1Rlc3Q6IFJ1bm5pbmcnKVxuICAgIGxvZ2dlci5kZWJ1ZyhgVGVzdDogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKVxuXG4gICAgY29uc3QgcmVwb3J0RGlyID0gcGF0aC5yZXNvbHZlKCdkaXN0L3Rlc3QtcmVwb3J0JylcbiAgICBmcy5ybVN5bmMocmVwb3J0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgZm9yY2U6IHRydWUgfSlcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgX3JlamVjdCkgPT4ge1xuICAgICAgICBjYWxsQ29yZShcbiAgICAgICAgICAgIGNtZCxcbiAgICAgICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnIpIGxvZ2dlci5lcnJvcihgVGVzdDogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICB2YXIgdGVzdENhc2VzID0gcGFyc2VKdW5pdFhNTCgpXG4gICAgICAgICAgICAgICAgY29uc3QgdG90YWwgPSB0ZXN0Q2FzZXMubGVuZ3RoXG4gICAgICAgICAgICAgICAgY29uc3QgZmFpbHVyZSA9IHRlc3RDYXNlcy5maWx0ZXIoKHRlc3RjYXNlOiB7IFtpZDogc3RyaW5nXTogYW55IH0pID0+IHRlc3RjYXNlWydmYWlsdXJlJ10gfHwgdGVzdGNhc2VbJ3NraXBwZWQnXSkubGVuZ3RoXG4gICAgICAgICAgICAgICAgY29uc3Qgc3VjY2VzcyA9IHRvdGFsIC0gZmFpbHVyZVxuICAgICAgICAgICAgICAgIHZhciByZXN1bHQgPSB7IHRvdGFsLCBzdWNjZXNzLCBmYWlsdXJlIH1cbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdClcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pbmRleE9mKCdBUEkgQ09WRVJBR0UgU1VNTUFSWScpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2cobWVzc2FnZSkgLy9Mb2cgYWx3YXlzIGZvciBhbGwgbG9nIGxldmVsc1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlcltlcnJvciA/ICdlcnJvcicgOiAnZGVidWcnXShgVGVzdDogJHttZXNzYWdlfWApXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApXG4gICAgfSlcbn1cblxuY29uc3Qgc2hvd1Rlc3RSZXN1bHRzID0gKHRlc3RGbjogKG5hbWU6IHN0cmluZywgY2I6ICgpID0+IHZvaWQpID0+IHZvaWQpID0+IHtcbiAgICB2YXIgdGVzdENhc2VzID0gcGFyc2VKdW5pdFhNTCgpXG4gICAgdGVzdENhc2VzLm1hcChmdW5jdGlvbiAodGVzdGNhc2U6IHsgW2lkOiBzdHJpbmddOiBhbnkgfSkge1xuICAgICAgICB2YXIgbmFtZSA9ICdObyBOYW1lJ1xuICAgICAgICBpZiAodGVzdGNhc2VbJ3N5c3RlbS1vdXQnXSkge1xuICAgICAgICAgICAgY29uc3QgbmFtZVRlbXBBcnIgPSB0ZXN0Y2FzZVsnc3lzdGVtLW91dCddXG4gICAgICAgICAgICAgICAgLnRyaW0oKVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC9cXG4vZywgJycpXG4gICAgICAgICAgICAgICAgLnNwbGl0KC9kaXNwbGF5LW5hbWU6LipTY2VuYXJpbzogLylcbiAgICAgICAgICAgIGlmIChuYW1lVGVtcEFyci5sZW5ndGggPiAxKSBuYW1lID0gbmFtZVRlbXBBcnJbMV0udHJpbSgpXG4gICAgICAgIH1cbiAgICAgICAgdGVzdEZuKG5hbWUsICgpID0+IHtcbiAgICAgICAgICAgIGlmICh0ZXN0Y2FzZS5mYWlsdXJlIHx8IHRlc3RjYXNlLnNraXBwZWQpIHRocm93IG5ldyBFcnJvcignRGlkIG5vdCBwYXNzJylcbiAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCBzZXRFeHBlY3RhdGlvbnMgPSAoc3R1YlBhdGg6IHN0cmluZywgc3R1YlNlcnZlckJhc2VVcmw/OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICBjb25zdCBzdHViUmVzcG9uc2UgPSByZXF1aXJlKHBhdGgucmVzb2x2ZShzdHViUGF0aCkpXG4gICAgc3R1YlNlcnZlckJhc2VVcmwgPSBzdHViU2VydmVyQmFzZVVybCB8fCAnaHR0cDovL2xvY2FsaG9zdDo5MDAwJ1xuXG4gICAgbG9nZ2VyLmluZm8oYFNldCBFeHBlY3RhdGlvbnM6IFN0dWIgdXJsIGlzICR7c3R1YlNlcnZlckJhc2VVcmx9YClcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGF4aW9zXG4gICAgICAgICAgICAucG9zdChgJHtzdHViU2VydmVyQmFzZVVybH0vX3NwZWNtYXRpYy9leHBlY3RhdGlvbnNgLCBzdHViUmVzcG9uc2UpXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBTZXQgRXhwZWN0YXRpb25zOiAke3Jlc3BvbnNlLmRhdGF9YClcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQnKVxuICAgICAgICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICByZWplY3QoYFNldHRpbmcgZXhwZWNhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgfSlcbiAgICB9KVxufVxuXG5jb25zdCBwcmludEphclZlcnNpb24gPSAoKSA9PiB7XG4gICAgY29uc3QgY21kID0gYC0tdmVyc2lvbmBcbiAgICBsb2dnZXIuaW5mbygnUHJpbnQgSmFyIFZlcnNpb246IFJ1bm5pbmcnKVxuICAgIGxvZ2dlci5kZWJ1ZyhgUHJpbnQgSmFyIFZlcnNpb246IEV4ZWN1dGluZyBcIiR7Y21kfVwiYClcblxuICAgIGNhbGxDb3JlKFxuICAgICAgICBjbWQsXG4gICAgICAgIChlcnI6IGFueSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVycikgbG9nZ2VyLmVycm9yKGBQcmludCBKYXIgVmVyc2lvbjogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgfSxcbiAgICAgICAgKG1lc3NhZ2UsIGVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyb3IpIGxvZ2dlci5lcnJvcihgUHJpbnQgSmFyIFZlcnNpb246ICR7bWVzc2FnZX1gKVxuICAgICAgICAgICAgZWxzZSBjb25zb2xlLmxvZyhgJHttZXNzYWdlfWApXG4gICAgICAgIH1cbiAgICApXG59XG5cbmNvbnN0IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIgPSAoZXhwcmVzc0FwcDogYW55KTogUHJvbWlzZTxodHRwLlNlcnZlcj4gPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgUmVnaXN0ZXJpbmcgQVBJIGVuZHBvaW50IGZvciBjb3ZlcmFnZWApXG4gICAgbGV0IGFwcCA9IGh0dHAuY3JlYXRlU2VydmVyKChfcmVxLCByZXMpID0+IHtcbiAgICAgICAgcmVzLndyaXRlSGVhZCgyMDAsIHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyB9KVxuICAgICAgICBjb25zdCBlbmRQb2ludHMgPSBKU09OLnN0cmluZ2lmeShleHRyYWN0RW5kUG9pbnRzKGV4cHJlc3NBcHApKVxuICAgICAgICBsb2dnZXIuZGVidWcoYEVuZHBvaW50czogJHtlbmRQb2ludHN9YClcbiAgICAgICAgcmVzLmVuZChlbmRQb2ludHMpXG4gICAgfSlcbiAgICByZXR1cm4gbmV3IFByb21pc2U8aHR0cC5TZXJ2ZXI+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgYXBwLm9uKCdlcnJvcicsIGVyciA9PiB7XG4gICAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yIHdoaWxlIHN0YXJ0aW5nIGVuZCBwb2ludHMgc2VydmVyIGZvciBhcGkgY292ZXJhZ2UnLCBlcnIpXG4gICAgICAgICAgICByZWplY3QoJ0Vycm9yIHdoaWxlIHN0YXJ0aW5nIGVuZCBwb2ludHMgc2VydmVyIGZvciBhcGkgY292ZXJhZ2UnKVxuICAgICAgICB9KVxuICAgICAgICBhcHAubGlzdGVuKHsgaG9zdDogJzEyNy4wLjAuMScsIHBvcnQ6IDAgfSwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWRkcmVzcyA9IGFwcC5hZGRyZXNzKCkgYXMgQWRkcmVzc0luZm8gfCBudWxsXG4gICAgICAgICAgICBwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ10gPSBgaHR0cDovLyR7YWRkcmVzcz8uYWRkcmVzc306JHthZGRyZXNzPy5wb3J0fWBcbiAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBFbmRwb2ludHMgQVBJIHJlZ2lzdGVyZWQgYXQgJHtwcm9jZXNzLmVudlsnZW5kcG9pbnRzQVBJJ119YClcbiAgICAgICAgICAgIHJlc29sdmUoYXBwKVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmNvbnN0IHBhcnNlSnVuaXRYTUwgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVwb3J0UGF0aCA9IHBhdGgucmVzb2x2ZSgnZGlzdC90ZXN0LXJlcG9ydC9URVNULWp1bml0LWp1cGl0ZXIueG1sJylcbiAgICB2YXIgZGF0YSA9IGZzLnJlYWRGaWxlU3luYyhyZXBvcnRQYXRoKVxuICAgIGNvbnN0IHBhcnNlciA9IG5ldyBYTUxQYXJzZXIoKVxuICAgIHZhciByZXN1bHRYbWwgPSBwYXJzZXIucGFyc2UoZGF0YSlcbiAgICByZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlID0gQXJyYXkuaXNBcnJheShyZXN1bHRYbWwudGVzdHN1aXRlLnRlc3RjYXNlKSA/IHJlc3VsdFhtbC50ZXN0c3VpdGUudGVzdGNhc2UgOiBbcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZV1cbiAgICByZXR1cm4gcmVzdWx0WG1sLnRlc3RzdWl0ZS50ZXN0Y2FzZVxufVxuXG5jb25zdCBsaXN0RW5kUG9pbnRzID0gKGV4cHJlc3NBcHA6IGFueSk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nW10gfSA9PiB7XG4gICAgY29uc3QgZGV0YWlscyA9IGxpc3RFeHByZXNzRW5kcG9pbnRzKGV4cHJlc3NBcHApXG4gICAgbGV0IGVuZFBvaW50czogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9ID0ge31cbiAgICBkZXRhaWxzLm1hcChhcGlEZXRhaWwgPT4ge1xuICAgICAgICBlbmRQb2ludHNbYXBpRGV0YWlsLnBhdGhdID0gYXBpRGV0YWlsLm1ldGhvZHNcbiAgICB9KVxuICAgIGRlbGV0ZSBlbmRQb2ludHNbJyonXVxuICAgIHJldHVybiBlbmRQb2ludHNcbn1cblxuZnVuY3Rpb24gZXh0cmFjdEVuZFBvaW50cyhleHByZXNzQXBwOiBhbnkpIHtcbiAgICBsZXQgZW5kUG9pbnRzID0gbGlzdEVuZFBvaW50cyhleHByZXNzQXBwKVxuICAgIGxldCBzcHJpbmdBY3R1YXRvclBheWxvYWQgPSB7XG4gICAgICAgIGNvbnRleHRzOiB7XG4gICAgICAgICAgICBhcHBsaWNhdGlvbjoge1xuICAgICAgICAgICAgICAgIG1hcHBpbmdzOiB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoZXJTZXJ2bGV0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlclNlcnZsZXQ6IFtdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgIH1cbiAgICBPYmplY3Qua2V5cyhlbmRQb2ludHMpXG4gICAgICAgIC5zb3J0KClcbiAgICAgICAgLm1hcChwYXRoID0+IHtcbiAgICAgICAgICAgIHNwcmluZ0FjdHVhdG9yUGF5bG9hZC5jb250ZXh0cy5hcHBsaWNhdGlvbi5tYXBwaW5ncy5kaXNwYXRjaGVyU2VydmxldHMuZGlzcGF0Y2hlclNlcnZsZXQucHVzaCh7XG4gICAgICAgICAgICAgICAgZGV0YWlsczoge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0TWFwcGluZ0NvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZHM6IGVuZFBvaW50c1twYXRoXS5zb3J0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXR0ZXJuczogW3BhdGgucmVwbGFjZSgvOihbXi9dKykvZywgJ3skMX0nKS5yZXBsYWNlKC9cXFxcL2csICcnKV0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0gYXMgbmV2ZXIpXG4gICAgICAgIH0pXG4gICAgcmV0dXJuIHNwcmluZ0FjdHVhdG9yUGF5bG9hZFxufVxuXG5leHBvcnQgeyBzdGFydFN0dWIsIHN0b3BTdHViLCB0ZXN0LCB0ZXN0V2l0aEFwaUNvdmVyYWdlLCBzZXRFeHBlY3RhdGlvbnMsIHByaW50SmFyVmVyc2lvbiwgc2hvd1Rlc3RSZXN1bHRzIH1cbmV4cG9ydCB7IHN0YXJ0QXBpQ292ZXJhZ2VTZXJ2ZXIgfVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFBLENB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
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.verifyKafkaStubMessage = exports.verifyKafkaStub = exports.stopKafkaStub = exports.startKafkaStub = exports.setKafkaStubExpectations = exports.KafkaStub = void 0;
7
7
  var _runner = require("../common/runner");
8
8
  var _logger = _interopRequireDefault(require("../common/logger"));
9
- var _nodeFetch = _interopRequireDefault(require("node-fetch"));
9
+ var _axios = _interopRequireDefault(require("axios"));
10
10
  var _promise = _interopRequireDefault(require("terminate/promise"));
11
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12
12
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
@@ -98,22 +98,13 @@ var setKafkaStubExpectations = function setKafkaStubExpectations(stub, expecatio
98
98
  var exectationsUrl = "http://localhost:".concat(stub.apiPort, "/_expectations");
99
99
  _logger["default"].info("Kafka Set Expectations: Url is ".concat(exectationsUrl));
100
100
  return new Promise(function (resolve, reject) {
101
- (0, _nodeFetch["default"])("".concat(exectationsUrl), {
102
- method: 'POST',
101
+ _axios["default"].post("".concat(exectationsUrl), expecations, {
103
102
  headers: {
104
103
  Accept: 'application/json',
105
104
  'Content-Type': 'application/json'
106
- },
107
- body: JSON.stringify(expecations)
108
- }).then(function (response) {
109
- if (response.status != 200) {
110
- _logger["default"].error("Kafka Set Expectations: Failed with status code ".concat(response.status));
111
- reject('Set expectation failed');
112
- } else {
113
- return response.text();
114
105
  }
115
- }).then(function (data) {
116
- _logger["default"].debug("Kafka Set Expectations: Finished ".concat(JSON.stringify(data)));
106
+ }).then(function (response) {
107
+ _logger["default"].debug("Kafka Set Expectations: Finished ".concat(JSON.stringify(response.data)));
117
108
  resolve();
118
109
  })["catch"](function (err) {
119
110
  _logger["default"].error("Kafka Set Expectations: Failed with error ".concat(err));
@@ -126,23 +117,15 @@ var verifyKafkaStub = function verifyKafkaStub(stub) {
126
117
  var verificationUrl = "http://localhost:".concat(stub.apiPort, "/_expectations/verifications");
127
118
  _logger["default"].info("Kafka Verification: Url is ".concat(verificationUrl));
128
119
  return new Promise(function (resolve, reject) {
129
- (0, _nodeFetch["default"])("".concat(verificationUrl), {
130
- method: 'POST',
120
+ _axios["default"].post("".concat(verificationUrl), {
131
121
  headers: {
132
122
  Accept: 'application/json',
133
123
  'Content-Type': 'application/json'
134
124
  }
135
125
  }).then(function (response) {
136
- if (response.status != 200) {
137
- _logger["default"].error("Kafka Verification: Failed with status code ".concat(response.status));
138
- reject('Kafka verification failed');
139
- } else {
140
- return response.json();
141
- }
142
- }).then(function (data) {
143
- _logger["default"].debug("Kafka Verification: Finished ".concat(JSON.stringify(data)));
144
- if (!data.success) _logger["default"].info("Kafka Verification: Errors\n".concat(JSON.stringify(data)));
145
- resolve(data.success);
126
+ _logger["default"].debug("Kafka Verification: Finished ".concat(JSON.stringify(response.data)));
127
+ if (!response.data.success) _logger["default"].info("Kafka Verification: Errors\n".concat(JSON.stringify(response.data)));
128
+ resolve(response.data.success);
146
129
  })["catch"](function (err) {
147
130
  _logger["default"].error("Kafka Verification: Failed with error ".concat(err));
148
131
  reject("Kafka verification failed with error ".concat(err));
@@ -154,26 +137,17 @@ var verifyKafkaStubMessage = function verifyKafkaStubMessage(stub, topic, value)
154
137
  var verificationUrl = "http://localhost:".concat(stub.apiPort, "/_verifications");
155
138
  _logger["default"].info("Kafka Verify Message: Url is ".concat(verificationUrl));
156
139
  return new Promise(function (resolve, reject) {
157
- (0, _nodeFetch["default"])("".concat(verificationUrl), {
158
- method: 'POST',
140
+ _axios["default"].post("".concat(verificationUrl), {
141
+ topic: topic,
142
+ value: value
143
+ }, {
159
144
  headers: {
160
145
  Accept: 'application/json',
161
146
  'Content-Type': 'application/json'
162
- },
163
- body: JSON.stringify({
164
- topic: topic,
165
- value: value
166
- })
167
- }).then(function (response) {
168
- if (response.status != 200) {
169
- _logger["default"].error("Kafka Verify Message: Failed with status code ".concat(response.status));
170
- reject('Kafka message verification failed');
171
- } else {
172
- return response.json();
173
147
  }
174
- }).then(function (data) {
175
- _logger["default"].debug("Kafka Verify Message: Finished ".concat(JSON.stringify(data)));
176
- resolve(data.received);
148
+ }).then(function (response) {
149
+ _logger["default"].debug("Kafka Verify Message: Finished ".concat(JSON.stringify(response.data)));
150
+ resolve(response.data.received);
177
151
  })["catch"](function (err) {
178
152
  _logger["default"].error("Kafka Verify Message: Failed with error ".concat(err));
179
153
  reject("Kafka message verification failed with error ".concat(err));
@@ -181,4 +155,4 @@ var verifyKafkaStubMessage = function verifyKafkaStubMessage(stub, topic, value)
181
155
  });
182
156
  };
183
157
  exports.verifyKafkaStubMessage = verifyKafkaStubMessage;
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcnVubmVyIiwicmVxdWlyZSIsIl9sb2dnZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX25vZGVGZXRjaCIsIl9wcm9taXNlIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3JlZ2VuZXJhdG9yUnVudGltZSIsImV4cG9ydHMiLCJPcCIsIk9iamVjdCIsImhhc093biIsImhhc093blByb3BlcnR5IiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJkZXNjIiwidmFsdWUiLCIkU3ltYm9sIiwiaXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsInRvU3RyaW5nVGFnU3ltYm9sIiwidG9TdHJpbmdUYWciLCJkZWZpbmUiLCJlbnVtZXJhYmxlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJlcnIiLCJ3cmFwIiwiaW5uZXJGbiIsIm91dGVyRm4iLCJzZWxmIiwidHJ5TG9jc0xpc3QiLCJwcm90b0dlbmVyYXRvciIsIkdlbmVyYXRvciIsImdlbmVyYXRvciIsImNyZWF0ZSIsImNvbnRleHQiLCJDb250ZXh0IiwibWFrZUludm9rZU1ldGhvZCIsInRyeUNhdGNoIiwiZm4iLCJhcmciLCJ0eXBlIiwiY2FsbCIsIkNvbnRpbnVlU2VudGluZWwiLCJHZW5lcmF0b3JGdW5jdGlvbiIsIkdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlIiwiSXRlcmF0b3JQcm90b3R5cGUiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiTmF0aXZlSXRlcmF0b3JQcm90b3R5cGUiLCJ2YWx1ZXMiLCJHcCIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJtZXRob2QiLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsIlByb21pc2VJbXBsIiwiaW52b2tlIiwicmVzb2x2ZSIsInJlamVjdCIsInJlY29yZCIsInJlc3VsdCIsIl9fYXdhaXQiLCJ0aGVuIiwidW53cmFwcGVkIiwiZXJyb3IiLCJwcmV2aW91c1Byb21pc2UiLCJjYWxsSW52b2tlV2l0aE1ldGhvZEFuZEFyZyIsInN0YXRlIiwiRXJyb3IiLCJkb25lUmVzdWx0IiwiZGVsZWdhdGUiLCJkZWxlZ2F0ZVJlc3VsdCIsIm1heWJlSW52b2tlRGVsZWdhdGUiLCJzZW50IiwiX3NlbnQiLCJkaXNwYXRjaEV4Y2VwdGlvbiIsImFicnVwdCIsImRvbmUiLCJtZXRob2ROYW1lIiwidW5kZWZpbmVkIiwiVHlwZUVycm9yIiwiaW5mbyIsInJlc3VsdE5hbWUiLCJuZXh0IiwibmV4dExvYyIsInB1c2hUcnlFbnRyeSIsImxvY3MiLCJlbnRyeSIsInRyeUxvYyIsImNhdGNoTG9jIiwiZmluYWxseUxvYyIsImFmdGVyTG9jIiwidHJ5RW50cmllcyIsInB1c2giLCJyZXNldFRyeUVudHJ5IiwiY29tcGxldGlvbiIsInJlc2V0IiwiaXRlcmFibGUiLCJpdGVyYXRvck1ldGhvZCIsImlzTmFOIiwibGVuZ3RoIiwiaSIsImRpc3BsYXlOYW1lIiwiaXNHZW5lcmF0b3JGdW5jdGlvbiIsImdlbkZ1biIsImN0b3IiLCJuYW1lIiwibWFyayIsInNldFByb3RvdHlwZU9mIiwiX19wcm90b19fIiwiYXdyYXAiLCJhc3luYyIsIlByb21pc2UiLCJpdGVyIiwia2V5cyIsInZhbCIsIm9iamVjdCIsInJldmVyc2UiLCJwb3AiLCJza2lwVGVtcFJlc2V0IiwicHJldiIsImNoYXJBdCIsInNsaWNlIiwic3RvcCIsInJvb3RSZWNvcmQiLCJydmFsIiwiZXhjZXB0aW9uIiwiaGFuZGxlIiwibG9jIiwiY2F1Z2h0IiwiaGFzQ2F0Y2giLCJoYXNGaW5hbGx5IiwiZmluYWxseUVudHJ5IiwiY29tcGxldGUiLCJmaW5pc2giLCJfY2F0Y2giLCJ0aHJvd24iLCJkZWxlZ2F0ZVlpZWxkIiwiYXN5bmNHZW5lcmF0b3JTdGVwIiwiZ2VuIiwiX25leHQiLCJfdGhyb3ciLCJfYXN5bmNUb0dlbmVyYXRvciIsImFyZ3MiLCJhcmd1bWVudHMiLCJhcHBseSIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwidGFyZ2V0IiwicHJvcHMiLCJkZXNjcmlwdG9yIiwiX3RvUHJvcGVydHlLZXkiLCJfY3JlYXRlQ2xhc3MiLCJDb25zdHJ1Y3RvciIsInByb3RvUHJvcHMiLCJzdGF0aWNQcm9wcyIsIl9jbGFzc0NhbGxDaGVjayIsImluc3RhbmNlIiwiX2RlZmluZVByb3BlcnR5IiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsInRvUHJpbWl0aXZlIiwicmVzIiwiTnVtYmVyIiwiS2Fma2FTdHViIiwicG9ydCIsImFwaVBvcnQiLCJwcm9jZXNzIiwic3RhcnRLYWZrYVN0dWIiLCJjbWQiLCJjb25jYXQiLCJqb2luIiwibG9nZ2VyIiwiZGVidWciLCJqYXZhUHJvY2VzcyIsImNhbGxLYWZrYSIsIm1lc3NhZ2UiLCJpbmRleE9mIiwic3R1YkluZm8iLCJzcGxpdCIsInBhcnNlSW50IiwidHJpbSIsInN0b3BLYWZrYVN0dWIiLCJfcmVmIiwiX2NhbGxlZSIsInN0dWIiLCJfamF2YVByb2Nlc3Mkc3Rkb3V0IiwiX2phdmFQcm9jZXNzJHN0ZGVyciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzdGRvdXQiLCJyZW1vdmVBbGxMaXN0ZW5lcnMiLCJzdGRlcnIiLCJ0ZXJtaW5hdGUiLCJwaWQiLCJfeCIsInNldEthZmthU3R1YkV4cGVjdGF0aW9ucyIsImV4cGVjYXRpb25zIiwiZXhlY3RhdGlvbnNVcmwiLCJmZXRjaCIsImhlYWRlcnMiLCJBY2NlcHQiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInJlc3BvbnNlIiwic3RhdHVzIiwidGV4dCIsImRhdGEiLCJ2ZXJpZnlLYWZrYVN0dWIiLCJ2ZXJpZmljYXRpb25VcmwiLCJqc29uIiwic3VjY2VzcyIsInZlcmlmeUthZmthU3R1Yk1lc3NhZ2UiLCJ0b3BpYyIsInJlY2VpdmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2thZmthL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGxLYWZrYSB9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJztcbmltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGZldGNoIGZyb20gJ25vZGUtZmV0Y2gnO1xuaW1wb3J0IHRlcm1pbmF0ZSBmcm9tICd0ZXJtaW5hdGUvcHJvbWlzZSc7XG5cbmV4cG9ydCBjbGFzcyBLYWZrYVN0dWIge1xuICAgIHBvcnQ6IG51bWJlcjtcbiAgICBhcGlQb3J0OiBudW1iZXI7XG4gICAgcHJvY2VzczogQ2hpbGRQcm9jZXNzO1xuICAgIGNvbnN0cnVjdG9yKHBvcnQ6IG51bWJlciwgYXBpUG9ydDogbnVtYmVyLCBwcm9jZXNzOiBDaGlsZFByb2Nlc3MpIHtcbiAgICAgICAgdGhpcy5wb3J0ID0gcG9ydDtcbiAgICAgICAgdGhpcy5hcGlQb3J0ID0gYXBpUG9ydDtcbiAgICAgICAgdGhpcy5wcm9jZXNzID0gcHJvY2VzcztcbiAgICB9XG59XG5cbmNvbnN0IHN0YXJ0S2Fma2FTdHViID0gKHBvcnQ/OiBudW1iZXIsIGFyZ3M/OiAoc3RyaW5nIHwgbnVtYmVyKVtdKTogUHJvbWlzZTxLYWZrYVN0dWI+ID0+IHtcbiAgICB2YXIgY21kID0gYGA7XG4gICAgaWYgKHBvcnQpIGNtZCArPSBgIC0tcG9ydD0ke3BvcnR9YDtcbiAgICBpZiAoYXJncykgY21kICs9ICcgJyArIGFyZ3Muam9pbignICcpO1xuXG4gICAgbG9nZ2VyLmluZm8oJ0thZmthIFN0dWI6IFN0YXJ0aW5nIHNlcnZlcicpO1xuICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU3R1YjogRXhlY3V0aW5nIFwiJHtjbWR9XCJgKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBwb3J0OiBudW1iZXIsIGFwaVBvcnQ6IG51bWJlcjtcbiAgICAgICAgY29uc3QgamF2YVByb2Nlc3MgPSBjYWxsS2Fma2EoXG4gICAgICAgICAgICBjbWQsXG4gICAgICAgICAgICAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgS2Fma2EgU3R1YjogRXhpdGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChtZXNzYWdlLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaW5kZXhPZignS2Fma2Egc3RhcnRlZCBvbiBwb3J0JykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0dWJJbmZvID0gbWVzc2FnZS5zcGxpdCgnb24gcG9ydCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0dWJJbmZvLmxlbmd0aCA8IDIpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSBwb3J0IGZyb20ga2Fma2Egc3R1YiBvdXRwdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcG9ydCA9IHBhcnNlSW50KHN0dWJJbmZvWzFdLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdTdGFydGluZyBhcGkgc2VydmVyIG9uIHBvcnQnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgS2Fma2EgU3R1YjogJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3R1YkluZm8gPSBtZXNzYWdlLnNwbGl0KCc6Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3R1YkluZm8ubGVuZ3RoIDwgMikgcmVqZWN0KCdDYW5ub3QgZGV0ZXJtaW5lIGFwaSBwb3J0IGZyb20ga2Fma2Egc3R1YiBvdXRwdXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgYXBpUG9ydCA9IHBhcnNlSW50KHN0dWJJbmZvWzFdLnRyaW0oKSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdMaXN0ZW5pbmcgb24gdG9waWMnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhgS2Fma2EgU3R1YjogJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBvcnQgJiYgYXBpUG9ydCkgcmVzb2x2ZShuZXcgS2Fma2FTdHViKHBvcnQsIGFwaVBvcnQsIGphdmFQcm9jZXNzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJlamVjdCgnTm8gcG9ydCBvciBhcGkgcG9ydCBpbmZvcm1hdGlvbiBhdmFpbGFibGUgYnV0IGthZmthIHN0dWIgbGlzdGVuaW5nIG9uIHRvcGljIGFscmVhZHknKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLmluZGV4T2YoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKSA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgnQWRkcmVzcyBhbHJlYWR5IGluIHVzZScpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfSk7XG59O1xuXG5jb25zdCBzdG9wS2Fma2FTdHViID0gYXN5bmMgKHN0dWI6IEthZmthU3R1YikgPT4ge1xuICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU3R1YjogU3RvcHBpbmcgYXQgcG9ydD0ke3N0dWIucG9ydH0sIGFwaVBvcnQ9JHtzdHViLmFwaVBvcnR9YCk7XG4gICAgY29uc3QgamF2YVByb2Nlc3MgPSBzdHViLnByb2Nlc3M7XG4gICAgamF2YVByb2Nlc3Muc3Rkb3V0Py5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICBqYXZhUHJvY2Vzcy5zdGRlcnI/LnJlbW92ZUFsbExpc3RlbmVycygpO1xuICAgIGphdmFQcm9jZXNzLnJlbW92ZUFsbExpc3RlbmVycygnY2xvc2UnKTtcbiAgICBhd2FpdCB0ZXJtaW5hdGUoamF2YVByb2Nlc3MucGlkISk7XG4gICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6IFN0b3BwZWQgYXQgcG9ydD0ke3N0dWIucG9ydH0sIGFwaVBvcnQ9JHtzdHViLmFwaVBvcnR9YCk7XG59O1xuXG5jb25zdCBzZXRLYWZrYVN0dWJFeHBlY3RhdGlvbnMgPSAoc3R1YjogS2Fma2FTdHViLCBleHBlY2F0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgZXhlY3RhdGlvbnNVcmwgPSBgaHR0cDovL2xvY2FsaG9zdDoke3N0dWIuYXBpUG9ydH0vX2V4cGVjdGF0aW9uc2A7XG4gICAgbG9nZ2VyLmluZm8oYEthZmthIFNldCBFeHBlY3RhdGlvbnM6IFVybCBpcyAke2V4ZWN0YXRpb25zVXJsfWApO1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGZldGNoKGAke2V4ZWN0YXRpb25zVXJsfWAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoZXhwZWNhdGlvbnMpLFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgIT0gMjAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgJHtyZXNwb25zZS5zdGF0dXN9YCk7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdCgnU2V0IGV4cGVjdGF0aW9uIGZhaWxlZCcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBTZXQgRXhwZWN0YXRpb25zOiBGYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgICAgICByZWplY3QoYFNldCBleHBlY3RhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuY29uc3QgdmVyaWZ5S2Fma2FTdHViID0gKHN0dWI6IEthZmthU3R1Yik6IFByb21pc2U8Qm9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblVybCA9IGBodHRwOi8vbG9jYWxob3N0OiR7c3R1Yi5hcGlQb3J0fS9fZXhwZWN0YXRpb25zL3ZlcmlmaWNhdGlvbnNgO1xuICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBWZXJpZmljYXRpb246IFVybCBpcyAke3ZlcmlmaWNhdGlvblVybH1gKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBmZXRjaChgJHt2ZXJpZmljYXRpb25Vcmx9YCwge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgQWNjZXB0OiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlLnN0YXR1cyAhPSAyMDApIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZmljYXRpb246IEZhaWxlZCB3aXRoIHN0YXR1cyBjb2RlICR7cmVzcG9uc2Uuc3RhdHVzfWApO1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0thZmthIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmaWNhdGlvbjogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEuc3VjY2VzcykgbG9nZ2VyLmluZm8oYEthZmthIFZlcmlmaWNhdGlvbjogRXJyb3JzXFxuJHtKU09OLnN0cmluZ2lmeShkYXRhKX1gKTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEuc3VjY2Vzcyk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZmljYXRpb246IEZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApO1xuICAgICAgICAgICAgICAgIHJlamVjdChgS2Fma2EgdmVyaWZpY2F0aW9uIGZhaWxlZCB3aXRoIGVycm9yICR7ZXJyfWApO1xuICAgICAgICAgICAgfSk7XG4gICAgfSk7XG59O1xuXG5jb25zdCB2ZXJpZnlLYWZrYVN0dWJNZXNzYWdlID0gKHN0dWI6IEthZmthU3R1YiwgdG9waWM6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFByb21pc2U8Qm9vbGVhbj4gPT4ge1xuICAgIGNvbnN0IHZlcmlmaWNhdGlvblVybCA9IGBodHRwOi8vbG9jYWxob3N0OiR7c3R1Yi5hcGlQb3J0fS9fdmVyaWZpY2F0aW9uc2A7XG4gICAgbG9nZ2VyLmluZm8oYEthZmthIFZlcmlmeSBNZXNzYWdlOiBVcmwgaXMgJHt2ZXJpZmljYXRpb25Vcmx9YCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZmV0Y2goYCR7dmVyaWZpY2F0aW9uVXJsfWAsIHtcbiAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyB0b3BpYzogdG9waWMsIHZhbHVlOiB2YWx1ZSB9KSxcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzICE9IDIwMCkge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFZlcmlmeSBNZXNzYWdlOiBGYWlsZWQgd2l0aCBzdGF0dXMgY29kZSAke3Jlc3BvbnNlLnN0YXR1c31gKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KCdLYWZrYSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBmYWlsZWQnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihkYXRhID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmeSBNZXNzYWdlOiBGaW5pc2hlZCAke0pTT04uc3RyaW5naWZ5KGRhdGEpfWApO1xuICAgICAgICAgICAgICAgIHJlc29sdmUoZGF0YS5yZWNlaXZlZCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZnkgTWVzc2FnZTogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGBLYWZrYSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IHsgc3RhcnRLYWZrYVN0dWIsIHN0b3BLYWZrYVN0dWIsIHZlcmlmeUthZmthU3R1Yk1lc3NhZ2UsIHZlcmlmeUthZmthU3R1Yiwgc2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLFVBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUEwQyxTQUFBRSx1QkFBQUcsR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLGdCQUFBQSxHQUFBO0FBQUEsU0FBQUUsUUFBQUYsR0FBQSxzQ0FBQUUsT0FBQSx3QkFBQUMsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFKLEdBQUEsa0JBQUFBLEdBQUEsZ0JBQUFBLEdBQUEsV0FBQUEsR0FBQSx5QkFBQUcsTUFBQSxJQUFBSCxHQUFBLENBQUFLLFdBQUEsS0FBQUYsTUFBQSxJQUFBSCxHQUFBLEtBQUFHLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQU4sR0FBQSxLQUFBRSxPQUFBLENBQUFGLEdBQUE7QUFBQSxTQUFBTyxvQkFBQSxrQkFIMUMscUpBQUFBLG1CQUFBLFlBQUFBLG9CQUFBLFdBQUFDLE9BQUEsU0FBQUEsT0FBQSxPQUFBQyxFQUFBLEdBQUFDLE1BQUEsQ0FBQUosU0FBQSxFQUFBSyxNQUFBLEdBQUFGLEVBQUEsQ0FBQUcsY0FBQSxFQUFBQyxjQUFBLEdBQUFILE1BQUEsQ0FBQUcsY0FBQSxjQUFBYixHQUFBLEVBQUFjLEdBQUEsRUFBQUMsSUFBQSxJQUFBZixHQUFBLENBQUFjLEdBQUEsSUFBQUMsSUFBQSxDQUFBQyxLQUFBLEtBQUFDLE9BQUEsd0JBQUFkLE1BQUEsR0FBQUEsTUFBQSxPQUFBZSxjQUFBLEdBQUFELE9BQUEsQ0FBQWIsUUFBQSxrQkFBQWUsbUJBQUEsR0FBQUYsT0FBQSxD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
158
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcnVubmVyIiwicmVxdWlyZSIsIl9sb2dnZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2F4aW9zIiwiX3Byb21pc2UiLCJvYmoiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiY29uc3RydWN0b3IiLCJwcm90b3R5cGUiLCJfcmVnZW5lcmF0b3JSdW50aW1lIiwiZXhwb3J0cyIsIk9wIiwiT2JqZWN0IiwiaGFzT3duIiwiaGFzT3duUHJvcGVydHkiLCJkZWZpbmVQcm9wZXJ0eSIsImtleSIsImRlc2MiLCJ2YWx1ZSIsIiRTeW1ib2wiLCJpdGVyYXRvclN5bWJvbCIsImFzeW5jSXRlcmF0b3JTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwidG9TdHJpbmdUYWdTeW1ib2wiLCJ0b1N0cmluZ1RhZyIsImRlZmluZSIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImVyciIsIndyYXAiLCJpbm5lckZuIiwib3V0ZXJGbiIsInNlbGYiLCJ0cnlMb2NzTGlzdCIsInByb3RvR2VuZXJhdG9yIiwiR2VuZXJhdG9yIiwiZ2VuZXJhdG9yIiwiY3JlYXRlIiwiY29udGV4dCIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJmbiIsImFyZyIsInR5cGUiLCJjYWxsIiwiQ29udGludWVTZW50aW5lbCIsIkdlbmVyYXRvckZ1bmN0aW9uIiwiR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUiLCJJdGVyYXRvclByb3RvdHlwZSIsImdldFByb3RvIiwiZ2V0UHJvdG90eXBlT2YiLCJOYXRpdmVJdGVyYXRvclByb3RvdHlwZSIsInZhbHVlcyIsIkdwIiwiZGVmaW5lSXRlcmF0b3JNZXRob2RzIiwiZm9yRWFjaCIsIm1ldGhvZCIsIl9pbnZva2UiLCJBc3luY0l0ZXJhdG9yIiwiUHJvbWlzZUltcGwiLCJpbnZva2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicmVjb3JkIiwicmVzdWx0IiwiX19hd2FpdCIsInRoZW4iLCJ1bndyYXBwZWQiLCJlcnJvciIsInByZXZpb3VzUHJvbWlzZSIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwic3RhdGUiLCJFcnJvciIsImRvbmVSZXN1bHQiLCJkZWxlZ2F0ZSIsImRlbGVnYXRlUmVzdWx0IiwibWF5YmVJbnZva2VEZWxlZ2F0ZSIsInNlbnQiLCJfc2VudCIsImRpc3BhdGNoRXhjZXB0aW9uIiwiYWJydXB0IiwiZG9uZSIsIm1ldGhvZE5hbWUiLCJ1bmRlZmluZWQiLCJUeXBlRXJyb3IiLCJpbmZvIiwicmVzdWx0TmFtZSIsIm5leHQiLCJuZXh0TG9jIiwicHVzaFRyeUVudHJ5IiwibG9jcyIsImVudHJ5IiwidHJ5TG9jIiwiY2F0Y2hMb2MiLCJmaW5hbGx5TG9jIiwiYWZ0ZXJMb2MiLCJ0cnlFbnRyaWVzIiwicHVzaCIsInJlc2V0VHJ5RW50cnkiLCJjb21wbGV0aW9uIiwicmVzZXQiLCJpdGVyYWJsZSIsIml0ZXJhdG9yTWV0aG9kIiwiaXNOYU4iLCJsZW5ndGgiLCJpIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwiZ2VuRnVuIiwiY3RvciIsIm5hbWUiLCJtYXJrIiwic2V0UHJvdG90eXBlT2YiLCJfX3Byb3RvX18iLCJhd3JhcCIsImFzeW5jIiwiUHJvbWlzZSIsIml0ZXIiLCJrZXlzIiwidmFsIiwib2JqZWN0IiwicmV2ZXJzZSIsInBvcCIsInNraXBUZW1wUmVzZXQiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicm9vdFJlY29yZCIsInJ2YWwiLCJleGNlcHRpb24iLCJoYW5kbGUiLCJsb2MiLCJjYXVnaHQiLCJoYXNDYXRjaCIsImhhc0ZpbmFsbHkiLCJmaW5hbGx5RW50cnkiLCJjb21wbGV0ZSIsImZpbmlzaCIsIl9jYXRjaCIsInRocm93biIsImRlbGVnYXRlWWllbGQiLCJhc3luY0dlbmVyYXRvclN0ZXAiLCJnZW4iLCJfbmV4dCIsIl90aHJvdyIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJncyIsImFyZ3VtZW50cyIsImFwcGx5IiwiX2RlZmluZVByb3BlcnRpZXMiLCJ0YXJnZXQiLCJwcm9wcyIsImRlc2NyaXB0b3IiLCJfdG9Qcm9wZXJ0eUtleSIsIl9jcmVhdGVDbGFzcyIsIkNvbnN0cnVjdG9yIiwicHJvdG9Qcm9wcyIsInN0YXRpY1Byb3BzIiwiX2NsYXNzQ2FsbENoZWNrIiwiaW5zdGFuY2UiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwidG9QcmltaXRpdmUiLCJyZXMiLCJOdW1iZXIiLCJLYWZrYVN0dWIiLCJwb3J0IiwiYXBpUG9ydCIsInByb2Nlc3MiLCJzdGFydEthZmthU3R1YiIsImNtZCIsImNvbmNhdCIsImpvaW4iLCJsb2dnZXIiLCJkZWJ1ZyIsImphdmFQcm9jZXNzIiwiY2FsbEthZmthIiwibWVzc2FnZSIsImluZGV4T2YiLCJzdHViSW5mbyIsInNwbGl0IiwicGFyc2VJbnQiLCJ0cmltIiwic3RvcEthZmthU3R1YiIsIl9yZWYiLCJfY2FsbGVlIiwic3R1YiIsIl9qYXZhUHJvY2VzcyRzdGRvdXQiLCJfamF2YVByb2Nlc3Mkc3RkZXJyIiwiX2NhbGxlZSQiLCJfY29udGV4dCIsInN0ZG91dCIsInJlbW92ZUFsbExpc3RlbmVycyIsInN0ZGVyciIsInRlcm1pbmF0ZSIsInBpZCIsIl94Iiwic2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIiwiZXhwZWNhdGlvbnMiLCJleGVjdGF0aW9uc1VybCIsImF4aW9zIiwicG9zdCIsImhlYWRlcnMiLCJBY2NlcHQiLCJyZXNwb25zZSIsIkpTT04iLCJzdHJpbmdpZnkiLCJkYXRhIiwidmVyaWZ5S2Fma2FTdHViIiwidmVyaWZpY2F0aW9uVXJsIiwic3VjY2VzcyIsInZlcmlmeUthZmthU3R1Yk1lc3NhZ2UiLCJ0b3BpYyIsInJlY2VpdmVkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2thZmthL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbGxLYWZrYSB9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9jb21tb24vbG9nZ2VyJztcbmltcG9ydCB7IENoaWxkUHJvY2VzcyB9IGZyb20gJ2NoaWxkX3Byb2Nlc3MnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB0ZXJtaW5hdGUgZnJvbSAndGVybWluYXRlL3Byb21pc2UnO1xuXG5leHBvcnQgY2xhc3MgS2Fma2FTdHViIHtcbiAgICBwb3J0OiBudW1iZXI7XG4gICAgYXBpUG9ydDogbnVtYmVyO1xuICAgIHByb2Nlc3M6IENoaWxkUHJvY2VzcztcbiAgICBjb25zdHJ1Y3Rvcihwb3J0OiBudW1iZXIsIGFwaVBvcnQ6IG51bWJlciwgcHJvY2VzczogQ2hpbGRQcm9jZXNzKSB7XG4gICAgICAgIHRoaXMucG9ydCA9IHBvcnQ7XG4gICAgICAgIHRoaXMuYXBpUG9ydCA9IGFwaVBvcnQ7XG4gICAgICAgIHRoaXMucHJvY2VzcyA9IHByb2Nlc3M7XG4gICAgfVxufVxuXG5jb25zdCBzdGFydEthZmthU3R1YiA9IChwb3J0PzogbnVtYmVyLCBhcmdzPzogKHN0cmluZyB8IG51bWJlcilbXSk6IFByb21pc2U8S2Fma2FTdHViPiA9PiB7XG4gICAgdmFyIGNtZCA9IGBgO1xuICAgIGlmIChwb3J0KSBjbWQgKz0gYCAtLXBvcnQ9JHtwb3J0fWA7XG4gICAgaWYgKGFyZ3MpIGNtZCArPSAnICcgKyBhcmdzLmpvaW4oJyAnKTtcblxuICAgIGxvZ2dlci5pbmZvKCdLYWZrYSBTdHViOiBTdGFydGluZyBzZXJ2ZXInKTtcbiAgICBsb2dnZXIuZGVidWcoYEthZmthIFN0dWI6IEV4ZWN1dGluZyBcIiR7Y21kfVwiYCk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsZXQgcG9ydDogbnVtYmVyLCBhcGlQb3J0OiBudW1iZXI7XG4gICAgICAgIGNvbnN0IGphdmFQcm9jZXNzID0gY2FsbEthZmthKFxuICAgICAgICAgICAgY21kLFxuICAgICAgICAgICAgKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFN0dWI6IEV4aXRlZCB3aXRoIGVycm9yICR7ZXJyfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAobWVzc2FnZSwgZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIWVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmluZGV4T2YoJ0thZmthIHN0YXJ0ZWQgb24gcG9ydCcpID4gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHViSW5mbyA9IG1lc3NhZ2Uuc3BsaXQoJ29uIHBvcnQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHViSW5mby5sZW5ndGggPCAyKSByZWplY3QoJ0Nhbm5vdCBkZXRlcm1pbmUgcG9ydCBmcm9tIGthZmthIHN0dWIgb3V0cHV0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHBvcnQgPSBwYXJzZUludChzdHViSW5mb1sxXS50cmltKCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5kZXhPZignU3RhcnRpbmcgYXBpIHNlcnZlciBvbiBwb3J0JykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0dWJJbmZvID0gbWVzc2FnZS5zcGxpdCgnOicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0dWJJbmZvLmxlbmd0aCA8IDIpIHJlamVjdCgnQ2Fubm90IGRldGVybWluZSBhcGkgcG9ydCBmcm9tIGthZmthIHN0dWIgb3V0cHV0Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGFwaVBvcnQgPSBwYXJzZUludChzdHViSW5mb1sxXS50cmltKCkpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UuaW5kZXhPZignTGlzdGVuaW5nIG9uIHRvcGljJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oYEthZmthIFN0dWI6ICR7bWVzc2FnZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwb3J0ICYmIGFwaVBvcnQpIHJlc29sdmUobmV3IEthZmthU3R1Yihwb3J0LCBhcGlQb3J0LCBqYXZhUHJvY2VzcykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSByZWplY3QoJ05vIHBvcnQgb3IgYXBpIHBvcnQgaW5mb3JtYXRpb24gYXZhaWxhYmxlIGJ1dCBrYWZrYSBzdHViIGxpc3RlbmluZyBvbiB0b3BpYyBhbHJlYWR5Jyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS5pbmRleE9mKCdBZGRyZXNzIGFscmVhZHkgaW4gdXNlJykgPiAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoJ0FkZHJlc3MgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU3R1YjogJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBTdHViOiAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH0pO1xufTtcblxuY29uc3Qgc3RvcEthZmthU3R1YiA9IGFzeW5jIChzdHViOiBLYWZrYVN0dWIpID0+IHtcbiAgICBsb2dnZXIuZGVidWcoYEthZmthIFN0dWI6IFN0b3BwaW5nIGF0IHBvcnQ9JHtzdHViLnBvcnR9LCBhcGlQb3J0PSR7c3R1Yi5hcGlQb3J0fWApO1xuICAgIGNvbnN0IGphdmFQcm9jZXNzID0gc3R1Yi5wcm9jZXNzO1xuICAgIGphdmFQcm9jZXNzLnN0ZG91dD8ucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG4gICAgamF2YVByb2Nlc3Muc3RkZXJyPy5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICBqYXZhUHJvY2Vzcy5yZW1vdmVBbGxMaXN0ZW5lcnMoJ2Nsb3NlJyk7XG4gICAgYXdhaXQgdGVybWluYXRlKGphdmFQcm9jZXNzLnBpZCEpO1xuICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBTdHViOiBTdG9wcGVkIGF0IHBvcnQ9JHtzdHViLnBvcnR9LCBhcGlQb3J0PSR7c3R1Yi5hcGlQb3J0fWApO1xufTtcblxuY29uc3Qgc2V0S2Fma2FTdHViRXhwZWN0YXRpb25zID0gKHN0dWI6IEthZmthU3R1YiwgZXhwZWNhdGlvbnM6IGFueSk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgIGNvbnN0IGV4ZWN0YXRpb25zVXJsID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtzdHViLmFwaVBvcnR9L19leHBlY3RhdGlvbnNgO1xuICAgIGxvZ2dlci5pbmZvKGBLYWZrYSBTZXQgRXhwZWN0YXRpb25zOiBVcmwgaXMgJHtleGVjdGF0aW9uc1VybH1gKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBheGlvc1xuICAgICAgICAgICAgLnBvc3QoYCR7ZXhlY3RhdGlvbnNVcmx9YCwgZXhwZWNhdGlvbnMsIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZyhgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhKX1gKVxuICAgICAgICAgICAgICAgIHJlc29sdmUoKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcihgS2Fma2EgU2V0IEV4cGVjdGF0aW9uczogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YClcbiAgICAgICAgICAgICAgICByZWplY3QoYFNldCBleHBlY3RhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKVxuICAgICAgICAgICAgfSlcbiAgICB9KTtcbn07XG5cbmNvbnN0IHZlcmlmeUthZmthU3R1YiA9IChzdHViOiBLYWZrYVN0dWIpOiBQcm9taXNlPEJvb2xlYW4+ID0+IHtcbiAgICBjb25zdCB2ZXJpZmljYXRpb25VcmwgPSBgaHR0cDovL2xvY2FsaG9zdDoke3N0dWIuYXBpUG9ydH0vX2V4cGVjdGF0aW9ucy92ZXJpZmljYXRpb25zYDtcbiAgICBsb2dnZXIuaW5mbyhgS2Fma2EgVmVyaWZpY2F0aW9uOiBVcmwgaXMgJHt2ZXJpZmljYXRpb25Vcmx9YCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgYXhpb3MucG9zdChgJHt2ZXJpZmljYXRpb25Vcmx9YCwge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmaWNhdGlvbjogRmluaXNoZWQgJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZS5kYXRhKX1gKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNwb25zZS5kYXRhLnN1Y2Nlc3MpIGxvZ2dlci5pbmZvKGBLYWZrYSBWZXJpZmljYXRpb246IEVycm9yc1xcbiR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSl9YCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuZGF0YS5zdWNjZXNzKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZXJyb3IoYEthZmthIFZlcmlmaWNhdGlvbjogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGBLYWZrYSB2ZXJpZmljYXRpb24gZmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9KTtcbn07XG5cbmNvbnN0IHZlcmlmeUthZmthU3R1Yk1lc3NhZ2UgPSAoc3R1YjogS2Fma2FTdHViLCB0b3BpYzogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzZTxCb29sZWFuPiA9PiB7XG4gICAgY29uc3QgdmVyaWZpY2F0aW9uVXJsID0gYGh0dHA6Ly9sb2NhbGhvc3Q6JHtzdHViLmFwaVBvcnR9L192ZXJpZmljYXRpb25zYDtcbiAgICBsb2dnZXIuaW5mbyhgS2Fma2EgVmVyaWZ5IE1lc3NhZ2U6IFVybCBpcyAke3ZlcmlmaWNhdGlvblVybH1gKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBheGlvcy5wb3N0KGAke3ZlcmlmaWNhdGlvblVybH1gLCB7IHRvcGljOiB0b3BpYywgdmFsdWU6IHZhbHVlIH0sIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICBBY2NlcHQ6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoYEthZmthIFZlcmlmeSBNZXNzYWdlOiBGaW5pc2hlZCAke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlLmRhdGEpfWApO1xuICAgICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UuZGF0YS5yZWNlaXZlZCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGBLYWZrYSBWZXJpZnkgTWVzc2FnZTogRmFpbGVkIHdpdGggZXJyb3IgJHtlcnJ9YCk7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGBLYWZrYSBtZXNzYWdlIHZlcmlmaWNhdGlvbiBmYWlsZWQgd2l0aCBlcnJvciAke2Vycn1gKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH0pO1xufTtcblxuZXhwb3J0IHsgc3RhcnRLYWZrYVN0dWIsIHN0b3BLYWZrYVN0dWIsIHZlcmlmeUthZmthU3R1Yk1lc3NhZ2UsIHZlcmlmeUthZmthU3R1Yiwgc2V0S2Fma2FTdHViRXhwZWN0YXRpb25zIH07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLE1BQUEsR0FBQUQsc0JBQUEs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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "specmatic",
3
- "version": "0.73.0",
3
+ "version": "0.73.2",
4
4
  "description": "Node wrapper for Specmatic",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -34,10 +34,10 @@
34
34
  "logLevel": "debug"
35
35
  },
36
36
  "dependencies": {
37
+ "axios": "^1.4.0",
37
38
  "exec-sh": "^0.4.0",
38
39
  "express-list-endpoints": "^6.0.0",
39
40
  "fast-xml-parser": "^4.2.6",
40
- "node-fetch": "^2.6.11",
41
41
  "terminate": "^2.6.1",
42
42
  "winston": "^3.10.0"
43
43
  },
@@ -52,7 +52,6 @@
52
52
  "@types/jest": "^29.5.3",
53
53
  "@types/jest-when": "^3.5.2",
54
54
  "@types/node": "^20.4.5",
55
- "@types/node-fetch": "^2.6.4",
56
55
  "@types/supertest": "^2.0.12",
57
56
  "express": "^4.18.2",
58
57
  "jest": "^29.6.2",
@@ -1,66 +1,54 @@
1
- import fetch from 'node-fetch';
1
+ import axios from 'axios';
2
2
  import path from 'path';
3
3
  import * as specmatic from '../..';
4
4
  import mockStub from '../../../test-resources/sample-mock-stub.json';
5
+ import { mockReset } from 'jest-mock-extended';
5
6
 
6
- jest.mock('node-fetch');
7
- const fetchMock = fetch as unknown as jest.Mock;
7
+ jest.mock('axios');
8
8
 
9
9
  const STUB_PATH = 'test-resources/sample-mock-stub.json';
10
10
 
11
11
  beforeEach(() => {
12
- fetchMock.mockReset();
12
+ mockReset(axios);
13
13
  });
14
14
 
15
15
  test('setExpectations with default baseUrl', async () => {
16
- fetchMock.mockReturnValue(Promise.resolve({ status: 200 }));
16
+ axios.post.mockResolvedValue({ status: 200 });
17
17
  await expect(specmatic.setExpectations(path.resolve(STUB_PATH))).toResolve();
18
18
 
19
- expect(fetchMock).toHaveBeenCalledTimes(1);
20
- expect(fetchMock.mock.calls[0][0]).toBe('http://localhost:9000/_specmatic/expectations');
21
- expect(fetchMock.mock.calls[0][1]).toMatchObject({
22
- method: 'POST',
23
- body: JSON.stringify(mockStub),
24
- });
19
+ expect(axios.post).toHaveBeenCalledTimes(1);
20
+ expect(axios.post.mock.calls[0][0]).toBe('http://localhost:9000/_specmatic/expectations');
21
+ expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
25
22
  });
26
23
 
27
24
  test('setExpectations with a different baseUrl for the stub server', async () => {
28
- fetchMock.mockReturnValue(Promise.resolve({ status: 200 }));
25
+ axios.post.mockResolvedValue({ status: 200 });
29
26
  const stubServerBaseUrl = 'http://localhost:8000';
30
27
 
31
28
  await expect(specmatic.setExpectations(path.resolve(STUB_PATH), stubServerBaseUrl)).toResolve();
32
29
 
33
- expect(fetchMock).toHaveBeenCalledTimes(1);
34
- expect(fetchMock.mock.calls[0][0]).toBe(`${stubServerBaseUrl}/_specmatic/expectations`);
35
- expect(fetchMock.mock.calls[0][1]).toMatchObject({
36
- method: 'POST',
37
- body: JSON.stringify(mockStub),
38
- });
30
+ expect(axios.post).toHaveBeenCalledTimes(1);
31
+ expect(axios.post.mock.calls[0][0]).toBe(`${stubServerBaseUrl}/_specmatic/expectations`);
32
+ expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
39
33
  });
40
34
 
41
35
  test('setExpectations notifies when it fails', async () => {
42
- fetchMock.mockReturnValue(Promise.reject());
36
+ axios.post.mockReturnValue(Promise.reject());
43
37
 
44
38
  await expect(specmatic.setExpectations(path.resolve(STUB_PATH))).toReject();
45
39
 
46
- expect(fetchMock).toHaveBeenCalledTimes(1);
47
- expect(fetchMock.mock.calls[0][0]).toBe('http://localhost:9000/_specmatic/expectations');
48
- expect(fetchMock.mock.calls[0][1]).toMatchObject({
49
- method: 'POST',
50
- body: JSON.stringify(mockStub),
51
- });
40
+ expect(axios.post).toHaveBeenCalledTimes(1);
41
+ expect(axios.post.mock.calls[0][0]).toBe('http://localhost:9000/_specmatic/expectations');
42
+ expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
52
43
  });
53
44
 
54
45
  test('setExpectations notifies as failure when status code is not 200', async () => {
55
- fetchMock.mockReturnValue(Promise.resolve({ status: 400 }));
46
+ axios.post.mockReturnValue(Promise.reject('Cannot set expectations'));
56
47
  const stubServerBaseUrl = 'http://localhost:8000';
57
48
 
58
49
  await expect(specmatic.setExpectations(path.resolve(STUB_PATH), stubServerBaseUrl)).toReject();
59
50
 
60
- expect(fetchMock).toHaveBeenCalledTimes(1);
61
- expect(fetchMock.mock.calls[0][0]).toBe(`${stubServerBaseUrl}/_specmatic/expectations`);
62
- expect(fetchMock.mock.calls[0][1]).toMatchObject({
63
- method: 'POST',
64
- body: JSON.stringify(mockStub),
65
- });
51
+ expect(axios.post).toHaveBeenCalledTimes(1);
52
+ expect(axios.post.mock.calls[0][0]).toBe(`${stubServerBaseUrl}/_specmatic/expectations`);
53
+ expect(axios.post.mock.calls[0][1]).toMatchObject(mockStub);
66
54
  });
@@ -11,7 +11,6 @@ import * as specmatic from '../..';
11
11
  import { specmaticCoreJarName } from '../../config';
12
12
 
13
13
  jest.mock('exec-sh');
14
- jest.mock('node-fetch');
15
14
 
16
15
  const SPECMATIC_JAR_PATH = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
17
16
  const CONTRACT_FILE_PATH = './contracts';
package/src/core/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import fetch from 'node-fetch'
1
+ import axios from 'axios'
2
2
  import path from 'path'
3
3
  import { ChildProcess } from 'child_process'
4
4
  import { XMLParser } from 'fast-xml-parser'
@@ -155,20 +155,12 @@ const setExpectations = (stubPath: string, stubServerBaseUrl?: string): Promise<
155
155
  logger.info(`Set Expectations: Stub url is ${stubServerBaseUrl}`)
156
156
 
157
157
  return new Promise((resolve, reject) => {
158
- fetch(`${stubServerBaseUrl}/_specmatic/expectations`, {
159
- method: 'POST',
160
- body: JSON.stringify(stubResponse),
161
- })
162
- .then(async response => {
163
- if (response.status != 200) {
164
- logger.error(`Set Expectations: Failed with status code ${response.status}`)
165
- const body = await response.text()
166
- logger.error(body)
167
- reject(`Setting expecation failed`)
168
- } else {
169
- logger.info('Set Expectations: Finished')
170
- resolve()
171
- }
158
+ axios
159
+ .post(`${stubServerBaseUrl}/_specmatic/expectations`, stubResponse)
160
+ .then(response => {
161
+ logger.debug(`Set Expectations: ${response.data}`)
162
+ logger.info('Set Expectations: Finished')
163
+ resolve()
172
164
  })
173
165
  .catch(err => {
174
166
  logger.error(`Set Expectations: Failed with error ${err}`)
@@ -1,7 +1,7 @@
1
1
  import { callKafka } from '../common/runner';
2
2
  import logger from '../common/logger';
3
3
  import { ChildProcess } from 'child_process';
4
- import fetch from 'node-fetch';
4
+ import axios from 'axios';
5
5
  import terminate from 'terminate/promise';
6
6
 
7
7
  export class KafkaStub {
@@ -76,30 +76,21 @@ const setKafkaStubExpectations = (stub: KafkaStub, expecations: any): Promise<vo
76
76
  const exectationsUrl = `http://localhost:${stub.apiPort}/_expectations`;
77
77
  logger.info(`Kafka Set Expectations: Url is ${exectationsUrl}`);
78
78
  return new Promise((resolve, reject) => {
79
- fetch(`${exectationsUrl}`, {
80
- method: 'POST',
81
- headers: {
82
- Accept: 'application/json',
83
- 'Content-Type': 'application/json',
84
- },
85
- body: JSON.stringify(expecations),
86
- })
87
- .then(response => {
88
- if (response.status != 200) {
89
- logger.error(`Kafka Set Expectations: Failed with status code ${response.status}`);
90
- reject('Set expectation failed');
91
- } else {
92
- return response.text();
93
- }
79
+ axios
80
+ .post(`${exectationsUrl}`, expecations, {
81
+ headers: {
82
+ Accept: 'application/json',
83
+ 'Content-Type': 'application/json',
84
+ },
94
85
  })
95
- .then(data => {
96
- logger.debug(`Kafka Set Expectations: Finished ${JSON.stringify(data)}`);
97
- resolve();
86
+ .then(response => {
87
+ logger.debug(`Kafka Set Expectations: Finished ${JSON.stringify(response.data)}`)
88
+ resolve()
98
89
  })
99
90
  .catch(err => {
100
- logger.error(`Kafka Set Expectations: Failed with error ${err}`);
101
- reject(`Set expectation failed with error ${err}`);
102
- });
91
+ logger.error(`Kafka Set Expectations: Failed with error ${err}`)
92
+ reject(`Set expectation failed with error ${err}`)
93
+ })
103
94
  });
104
95
  };
105
96
 
@@ -107,25 +98,16 @@ const verifyKafkaStub = (stub: KafkaStub): Promise<Boolean> => {
107
98
  const verificationUrl = `http://localhost:${stub.apiPort}/_expectations/verifications`;
108
99
  logger.info(`Kafka Verification: Url is ${verificationUrl}`);
109
100
  return new Promise((resolve, reject) => {
110
- fetch(`${verificationUrl}`, {
111
- method: 'POST',
101
+ axios.post(`${verificationUrl}`, {
112
102
  headers: {
113
103
  Accept: 'application/json',
114
104
  'Content-Type': 'application/json',
115
105
  },
116
106
  })
117
107
  .then(response => {
118
- if (response.status != 200) {
119
- logger.error(`Kafka Verification: Failed with status code ${response.status}`);
120
- reject('Kafka verification failed');
121
- } else {
122
- return response.json();
123
- }
124
- })
125
- .then(data => {
126
- logger.debug(`Kafka Verification: Finished ${JSON.stringify(data)}`);
127
- if (!data.success) logger.info(`Kafka Verification: Errors\n${JSON.stringify(data)}`);
128
- resolve(data.success);
108
+ logger.debug(`Kafka Verification: Finished ${JSON.stringify(response.data)}`);
109
+ if (!response.data.success) logger.info(`Kafka Verification: Errors\n${JSON.stringify(response.data)}`);
110
+ resolve(response.data.success);
129
111
  })
130
112
  .catch(err => {
131
113
  logger.error(`Kafka Verification: Failed with error ${err}`);
@@ -138,25 +120,15 @@ const verifyKafkaStubMessage = (stub: KafkaStub, topic: string, value: string):
138
120
  const verificationUrl = `http://localhost:${stub.apiPort}/_verifications`;
139
121
  logger.info(`Kafka Verify Message: Url is ${verificationUrl}`);
140
122
  return new Promise((resolve, reject) => {
141
- fetch(`${verificationUrl}`, {
142
- method: 'POST',
123
+ axios.post(`${verificationUrl}`, { topic: topic, value: value }, {
143
124
  headers: {
144
125
  Accept: 'application/json',
145
126
  'Content-Type': 'application/json',
146
127
  },
147
- body: JSON.stringify({ topic: topic, value: value }),
148
128
  })
149
129
  .then(response => {
150
- if (response.status != 200) {
151
- logger.error(`Kafka Verify Message: Failed with status code ${response.status}`);
152
- reject('Kafka message verification failed');
153
- } else {
154
- return response.json();
155
- }
156
- })
157
- .then(data => {
158
- logger.debug(`Kafka Verify Message: Finished ${JSON.stringify(data)}`);
159
- resolve(data.received);
130
+ logger.debug(`Kafka Verify Message: Finished ${JSON.stringify(response.data)}`);
131
+ resolve(response.data.received);
160
132
  })
161
133
  .catch(err => {
162
134
  logger.error(`Kafka Verify Message: Failed with error ${err}`);