@cloudbase/app 3.0.3 → 3.0.5

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.
Files changed (54) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.js +36 -7
  3. package/dist/cjs/libs/adapter-node/constants.d.ts +33 -0
  4. package/dist/cjs/libs/adapter-node/constants.js +38 -0
  5. package/dist/cjs/libs/adapter-node/context.d.ts +13 -0
  6. package/dist/cjs/libs/adapter-node/context.js +162 -0
  7. package/dist/cjs/libs/adapter-node/index.d.ts +23 -0
  8. package/dist/cjs/libs/adapter-node/index.js +124 -0
  9. package/dist/cjs/libs/adapter-node/metadata.d.ts +14 -0
  10. package/dist/cjs/libs/adapter-node/metadata.js +130 -0
  11. package/dist/cjs/libs/adapter-node/request.d.ts +38 -0
  12. package/dist/cjs/libs/adapter-node/request.js +432 -0
  13. package/dist/cjs/libs/adapter-node/tool.d.ts +2 -0
  14. package/dist/cjs/libs/adapter-node/tool.js +227 -0
  15. package/dist/cjs/libs/adapter-node/types.d.ts +78 -0
  16. package/dist/cjs/libs/adapter-node/types.js +3 -0
  17. package/dist/cjs/libs/adapter-node/utils.d.ts +17 -0
  18. package/dist/cjs/libs/adapter-node/utils.js +221 -0
  19. package/dist/cjs/libs/request.d.ts +1 -0
  20. package/dist/cjs/libs/request.js +3 -2
  21. package/dist/esm/index.d.ts +1 -0
  22. package/dist/esm/index.js +36 -7
  23. package/dist/esm/libs/adapter-node/constants.d.ts +33 -0
  24. package/dist/esm/libs/adapter-node/constants.js +35 -0
  25. package/dist/esm/libs/adapter-node/context.d.ts +13 -0
  26. package/dist/esm/libs/adapter-node/context.js +156 -0
  27. package/dist/esm/libs/adapter-node/index.d.ts +23 -0
  28. package/dist/esm/libs/adapter-node/index.js +118 -0
  29. package/dist/esm/libs/adapter-node/metadata.d.ts +14 -0
  30. package/dist/esm/libs/adapter-node/metadata.js +123 -0
  31. package/dist/esm/libs/adapter-node/request.d.ts +38 -0
  32. package/dist/esm/libs/adapter-node/request.js +429 -0
  33. package/dist/esm/libs/adapter-node/tool.d.ts +2 -0
  34. package/dist/esm/libs/adapter-node/tool.js +223 -0
  35. package/dist/esm/libs/adapter-node/types.d.ts +78 -0
  36. package/dist/esm/libs/adapter-node/types.js +2 -0
  37. package/dist/esm/libs/adapter-node/utils.d.ts +17 -0
  38. package/dist/esm/libs/adapter-node/utils.js +205 -0
  39. package/dist/esm/libs/request.d.ts +1 -0
  40. package/dist/esm/libs/request.js +3 -2
  41. package/dist/miniprogram/index.js +1 -1
  42. package/package.json +20 -4
  43. package/src/index.ts +63 -7
  44. package/src/libs/adapter-node/constants.ts +42 -0
  45. package/src/libs/adapter-node/context.ts +238 -0
  46. package/src/libs/adapter-node/index.ts +166 -0
  47. package/src/libs/adapter-node/metadata.ts +69 -0
  48. package/src/libs/adapter-node/request.ts +480 -0
  49. package/src/libs/adapter-node/tool.ts +223 -0
  50. package/src/libs/adapter-node/types.ts +116 -0
  51. package/src/libs/adapter-node/utils.ts +182 -0
  52. package/src/libs/request.ts +4 -2
  53. package/webpack/web.prod.js +13 -13
  54. package/webpack/webpack.miniprogram.js +9 -3
@@ -57,6 +57,7 @@ declare class Cloudbase implements ICloudbase {
57
57
  private useDefaultAdapter;
58
58
  private formatTimeout;
59
59
  private try2InitAuth;
60
+ private dealNodeAdapterConfig;
60
61
  }
61
62
  export type { Cloudbase };
62
63
  export declare const cloudbase: ICloudbase;
package/dist/cjs/index.js CHANGED
@@ -122,26 +122,28 @@ var Cloudbase = (function () {
122
122
  configurable: true
123
123
  });
124
124
  Cloudbase.prototype.init = function (config) {
125
- var _a;
125
+ var _a, _b, _c;
126
+ config.endPointMode = config.endPointMode || 'GATEWAY';
127
+ if (!adapter_1.Platform.adapter) {
128
+ this.useDefaultAdapter();
129
+ }
130
+ config = this.dealNodeAdapterConfig(config);
126
131
  if (!config.env) {
127
132
  throw new Error(JSON.stringify({
128
133
  code: ERRORS.INVALID_PARAMS,
129
134
  msg: 'env must not be specified',
130
135
  }));
131
136
  }
132
- config.endPointMode = config.endPointMode || 'GATEWAY';
133
- if (!adapter_1.Platform.adapter) {
134
- this.useDefaultAdapter();
135
- }
136
137
  var reqConfig = {
137
138
  timeout: config.timeout || 5000,
138
139
  timeoutMsg: "[".concat((0, common_1.getSdkName)(), "][REQUEST TIMEOUT] request had been abort since didn't finished within").concat(config.timeout / 1000, "s"),
140
+ auth: config.auth,
139
141
  };
140
142
  this.requestClient = new adapter_1.Platform.adapter.reqClass(reqConfig);
141
143
  this.cloudbaseConfig = __assign(__assign(__assign({}, DEFAULT_INIT_CONFIG), config), { i18n: (0, lang_1.i18nProxy)(adapter_1.Platform, config) });
142
144
  delete this.cloudbaseConfig.lang;
143
145
  this.cloudbaseConfig.timeout = this.formatTimeout(this.cloudbaseConfig.timeout);
144
- var _b = this.cloudbaseConfig, env = _b.env, persistence = _b.persistence, debug = _b.debug, timeout = _b.timeout, oauthClient = _b.oauthClient, i18n = _b.i18n;
146
+ var _d = this.cloudbaseConfig, env = _d.env, persistence = _d.persistence, debug = _d.debug, timeout = _d.timeout, oauthClient = _d.oauthClient, i18n = _d.i18n;
145
147
  (0, cache_1.initCache)({ env: env, persistence: persistence, debug: debug, platformInfo: this.platform });
146
148
  (0, common_1.setRegionLevelEndpoint)(env, config.region || '');
147
149
  (0, common_1.setGatewayEndPointWithEnv)(env, common_1.DEFAULT_PROTOCOL, config.region || '');
@@ -154,10 +156,14 @@ var Cloudbase = (function () {
154
156
  _fromApp: app,
155
157
  i18n: i18n,
156
158
  endPointMode: config.endPointMode,
159
+ auth: config.auth,
157
160
  });
158
161
  app.requestClient = this.requestClient;
159
162
  (_a = this === null || this === void 0 ? void 0 : this.fire) === null || _a === void 0 ? void 0 : _a.call(this, 'cloudbase_init', app);
160
163
  this.try2InitAuth(app);
164
+ if ((_b = adapter_1.Platform.adapter) === null || _b === void 0 ? void 0 : _b.nodeTool) {
165
+ (_c = adapter_1.Platform.adapter) === null || _c === void 0 ? void 0 : _c.nodeTool(app, this.cloudbaseConfig);
166
+ }
161
167
  return app;
162
168
  };
163
169
  Cloudbase.prototype.updateConfig = function (config) {
@@ -258,6 +264,20 @@ var Cloudbase = (function () {
258
264
  console.log('try2InitAuth error:', error);
259
265
  }
260
266
  };
267
+ Cloudbase.prototype.dealNodeAdapterConfig = function (config) {
268
+ var _a, _b;
269
+ if (!process.env.IS_BROWSER_BUILD && ((_a = adapter_1.Platform.adapter) === null || _a === void 0 ? void 0 : _a.getSecretInfo)) {
270
+ var secretInfo = (_b = adapter_1.Platform.adapter) === null || _b === void 0 ? void 0 : _b.getSecretInfo(config);
271
+ config.auth = __assign(__assign({}, config.auth), { secretId: secretInfo.secretId, secretKey: secretInfo.secretKey, sessionToken: secretInfo.sessionToken, secretType: secretInfo.secretType });
272
+ if (!config.env) {
273
+ config.env = secretInfo.env;
274
+ }
275
+ if (!config.accessKey && secretInfo.accessKey) {
276
+ config.accessKey = secretInfo.accessKey;
277
+ }
278
+ }
279
+ return config;
280
+ };
261
281
  __decorate([
262
282
  catchErrorsDecorator({
263
283
  mode: 'sync',
@@ -291,5 +311,14 @@ var Cloudbase = (function () {
291
311
  }());
292
312
  exports.cloudbase = new Cloudbase();
293
313
  exports.cloudbase.useAdapters((0, adapter_1.getWxDefaultAdapter)());
314
+ if (!process.env.IS_BROWSER_BUILD) {
315
+ try {
316
+ var nodeAdapter = require('./libs/adapter-node').default;
317
+ exports.cloudbase.useAdapters(nodeAdapter);
318
+ }
319
+ catch (error) {
320
+ throw error;
321
+ }
322
+ }
294
323
  exports.default = exports.cloudbase;
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBMEU7QUFhMUUsOENBQWtFO0FBQ2xFLDBDQUE4RDtBQUc5RCxzQ0FBd0U7QUFFeEUsMENBQStEO0FBQy9ELDZDQVcyQjtBQUMzQixvQ0FBOEM7QUFDOUMsNkNBQW9EO0FBQTNDLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixvQ0FBbUM7QUFBMUIsNkZBQUEsS0FBSyxPQUFBO0FBQ04sSUFBQSxXQUFXLEdBQXdCLG9CQUFRLFlBQWhDLEVBQUUsaUJBQWlCLEdBQUssb0JBQVEsa0JBQWIsQ0FBYTtBQUMzQyxJQUFBLE1BQU0sR0FBeUIscUJBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxxQkFBUyxtQkFBZCxDQUFjO0FBQ3hDLElBQUEsU0FBUyxHQUFLLGlCQUFLLFVBQVYsQ0FBVTtBQUNuQixJQUFBLG9CQUFvQixHQUFLLG1CQUFPLHFCQUFaLENBQVk7QUFLeEMsSUFBTSxtQkFBbUIsR0FBOEI7SUFDckQsT0FBTyxFQUFFLEtBQUs7SUFDZCxXQUFXLEVBQUUsT0FBTztDQUNyQixDQUFBO0FBR0QsSUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFFbEMsSUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBO0FBRXZCLElBQU0sWUFBWSxHQUE0QixFQUFFLENBQUE7QUFFaEQ7SUFVRSxtQkFBWSxNQUF5QjtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1FBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxD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QUFBLFNBQVMsR0FBZSxJQUFJLFNBQVMsRUFBRSxDQUFBO0FBRXBELGlCQUFTLENBQUMsV0FBVyxDQUFDLElBQUEsNkJBQW1CLEdBQUUsQ0FBQyxDQUFBO0FBRzVDLGtCQUFlLGlCQUFTLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhZGFwdGVycywgY29uc3RhbnRzLCB1dGlscywgaGVscGVycyB9IGZyb20gJ0BjbG91ZGJhc2UvdXRpbGl0aWVzJ1xuaW1wb3J0IHsgU0RLQWRhcHRlckludGVyZmFjZSwgQ2xvdWRiYXNlQWRhcHRlciwgSVJlcXVlc3RDb25maWcgfSBmcm9tICdAY2xvdWRiYXNlL2FkYXB0ZXItaW50ZXJmYWNlJ1xuaW1wb3J0IHtcbiAgSUNsb3VkYmFzZUNvbmZpZyxcbiAgSUNsb3VkYmFzZVVwZ3JhZGVkQ29uZmlnLFxuICBJQ2xvdWRiYXNlLFxuICBJQ2xvdWRiYXNlRXh0ZW5zaW9uLFxuICBLVixcbiAgSUNsb3VkYmFzZVBsYXRmb3JtSW5mbyxcbiAgRW5kUG9pbnRLZXksXG4gIElDbG91ZGJhc2VBcGlzLFxufSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUF1dGggfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2F1dGgnXG5pbXBvcnQgeyByZWdpc3RlckNvbXBvbmVudCwgcmVnaXN0ZXJIb29rIH0gZnJvbSAnLi9saWJzL2NvbXBvbmVudCdcbmltcG9ydCB7IGdldFd4RGVmYXVsdEFkYXB0ZXIsIFBsYXRmb3JtIH0gZnJvbSAnLi9saWJzL2FkYXB0ZXInXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29tcG9uZW50LCBJQ2xvdWRiYXNlSG9vayB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY29tcG9uZW50J1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNhY2hlIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9jYWNoZSdcbmltcG9ydCB7IGluaXRDYWNoZSwgZ2V0Q2FjaGVCeUVudklkLCBnZXRMb2NhbENhY2hlIH0gZnJvbSAnLi9saWJzL2NhY2hlJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZVJlcXVlc3QgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL3JlcXVlc3QnXG5pbXBvcnQgeyBpbml0UmVxdWVzdCwgZ2V0UmVxdWVzdEJ5RW52SWQgfSBmcm9tICcuL2xpYnMvcmVxdWVzdCdcbmltcG9ydCB7XG4gIGdldFNka05hbWUsXG4gIHNldFNka1ZlcnNpb24sXG4gIHNldFJlZ2lvbkxldmVsRW5kcG9pbnQsXG4gIHNldFNka05hbWUsXG4gIHNldEdhdGV3YXlFbmRQb2ludFdpdGhFbnYsXG4gIHR5cGUgSVNldEVuZFBvaW50V2l0aEtleSxcbiAgc2V0RW5kUG9pbnRJbmZvLFxuICBnZXRFbmRQb2ludEluZm8sXG4gIGdldFNka1ZlcnNpb24sXG4gIERFRkFVTFRfUFJPVE9DT0wsXG59IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmltcG9ydCB7IGkxOG5Qcm94eSwgTEFOR1MgfSBmcm9tICcuL2xpYnMvbGFuZydcbmV4cG9ydCB7IGdldEJhc2VFbmRQb2ludCB9IGZyb20gJy4vY29uc3RhbnRzL2NvbW1vbidcbmV4cG9ydCB7IExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5jb25zdCB7IHVzZUFkYXB0ZXJzLCB1c2VEZWZhdWx0QWRhcHRlciB9ID0gYWRhcHRlcnNcbmNvbnN0IHsgRVJST1JTLCBDT01NVU5JVFlfU0lURV9VUkwgfSA9IGNvbnN0YW50c1xuY29uc3QgeyBwcmludFdhcm4gfSA9IHV0aWxzXG5jb25zdCB7IGNhdGNoRXJyb3JzRGVjb3JhdG9yIH0gPSBoZWxwZXJzXG5cbi8qKlxuICogQGNvbnN0YW50IOm7mOiupOmFjee9rlxuICovXG5jb25zdCBERUZBVUxUX0lOSVRfQ09ORklHOiBQYXJ0aWFsPElDbG91ZGJhc2VDb25maWc+ID0ge1xuICB0aW1lb3V0OiAxNTAwMCxcbiAgcGVyc2lzdGVuY2U6ICdsb2NhbCcsIC8vIOaMgeS5heWMluWtmOWCqOexu+Wei1xufVxuXG4vLyB0aW1lb3V05LiK6ZmQMTDliIbpkp9cbmNvbnN0IE1BWF9USU1FT1VUID0gMTAwMCAqIDYwICogMTBcbi8vIHRpbWVvdXTkuIvpmZAxMDBtc1xuY29uc3QgTUlOX1RJTUVPVVQgPSAxMDBcblxuY29uc3QgZXh0ZW5zaW9uTWFwOiBLVjxJQ2xvdWRiYXNlRXh0ZW5zaW9uPiA9IHt9XG5cbmNsYXNzIENsb3VkYmFzZSBpbXBsZW1lbnRzIElDbG91ZGJhc2Uge1xuICBwdWJsaWMgYXV0aEluc3RhbmNlOiBJQ2xvdWRiYXNlQXV0aFxuICBwdWJsaWMgb2F1dGhJbnN0YW5jZTogYW55XG4gIHB1YmxpYyByZXF1ZXN0Q2xpZW50OiBhbnlcbiAgcHVibGljIG9hdXRoQ2xpZW50OiBhbnlcbiAgcHVibGljIHZlcnNpb246IHN0cmluZ1xuICBwdWJsaWMgYXV0aDogSUNsb3VkYmFzZVsnYXV0aCddICYgSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIGFwaXM6IElDbG91ZGJhc2VBcGlzXG4gIHByaXZhdGUgY2xvdWRiYXNlQ29uZmlnOiBJQ2xvdWRiYXNlQ29uZmlnXG5cbiAgY29uc3RydWN0b3IoY29uZmlnPzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0gY29uZmlnID8gY29uZmlnIDogdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICB0aGlzLmF1dGhJbnN0YW5jZSA9IG51bGxcbiAgICB0aGlzLm9hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy52ZXJzaW9uID0gZ2V0U2RrVmVyc2lvbigpXG4gIH1cblxuICBnZXQgY29uZmlnKCkge1xuICAgIHJldHVybiB0aGlzLmNsb3VkYmFzZUNvbmZpZ1xuICB9XG5cbiAgZ2V0IHBsYXRmb3JtKCk6IElDbG91ZGJhc2VQbGF0Zm9ybUluZm8ge1xuICAgIHJldHVybiBQbGF0Zm9ybVxuICB9XG5cbiAgZ2V0IGNhY2hlKCk6IElDbG91ZGJhc2VDYWNoZSB7XG4gICAgcmV0dXJuIGdldENhY2hlQnlFbnZJZCh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgbG9jYWxDYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRMb2NhbENhY2hlKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIGdldCByZXF1ZXN0KCk6IElDbG91ZGJhc2VSZXF1ZXN0IHtcbiAgICByZXR1cm4gZ2V0UmVxdWVzdEJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICBtb2RlOiAnc3luYycsXG4gICAgdGl0bGU6ICdDbG91ZGJhc2Ug5Yid5aeL5YyW5aSx6LSlJyxcbiAgICBtZXNzYWdlczogW1xuICAgICAgJ+ivt+ehruiupOS7peS4i+WQhOmhue+8micsXG4gICAgICAnICAxIC0g6LCD55SoIGNsb3VkYmFzZS5pbml0KCkg55qE6K+t5rOV5oiW5Y+C5pWw5piv5ZCm5q2j56GuJyxcbiAgICAgICcgIDIgLSDlpoLmnpzmmK/pnZ7mtY/op4jlmajnjq/looPvvIzmmK/lkKbphY3nva7kuoblronlhajlupTnlKjmnaXmupDvvIhodHRwczovL2RvY3MuY2xvdWRiYXNlLm5ldC9hcGktcmVmZXJlbmNlL3dlYnYzL2FkYXB0ZXIjJUU3JUFDJUFDLTItJUU2JUFEJUE1JUU5JTg1JThEJUU3JUJEJUFFJUU1JUFFJTg5JUU1JTg1JUE4JUU1JUJBJTk0JUU3JTk0JUE4JUU2JTlEJUE1JUU2JUJBJTkw77yJJyxcbiAgICAgIGDlpoLmnpzpl67popjkvp3nhLblrZjlnKjvvIzlu7rorq7liLDlrpjmlrnpl67nrZTnpL7ljLrmj5Dpl67miJblr7vmib7luK7liqnvvJoke0NPTU1VTklUWV9TSVRFX1VSTH1gLFxuICAgIF0sXG4gIH0pXG4gIHB1YmxpYyBpbml0KGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZyAmIHsgbGFuZz86IExBTkdTIH0pOiBDbG91ZGJhc2Uge1xuICAgIGlmICghY29uZmlnLmVudikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgY29kZTogRVJST1JTLklOVkFMSURfUEFSQU1TLFxuICAgICAgICBtc2c6ICdlbnYgbXVzdCBub3QgYmUgc3BlY2lmaWVkJyxcbiAgICAgIH0pLClcbiAgICB9XG4gICAgY29uZmlnLmVuZFBvaW50TW9kZSA9IGNvbmZpZy5lbmRQb2ludE1vZGUgfHwgJ0dBVEVXQVknXG5cbiAgICAvLyDliJ3lp4vljJbml7boi6XmnKrlhbzlrrnlubPlj7DvvIzliJnkvb/nlKjpu5jorqRhZGFwdGVyXG4gICAgaWYgKCFQbGF0Zm9ybS5hZGFwdGVyKSB7XG4gICAgICB0aGlzLnVzZURlZmF1bHRBZGFwdGVyKClcbiAgICB9XG5cbiAgICBjb25zdCByZXFDb25maWc6IElSZXF1ZXN0Q29uZmlnID0ge1xuICAgICAgdGltZW91dDogY29uZmlnLnRpbWVvdXQgfHwgNTAwMCxcbiAgICAgIHRpbWVvdXRNc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVtSRVFVRVNUIFRJTUVPVVRdIHJlcXVlc3QgaGFkIGJlZW4gYWJvcnQgc2luY2UgZGlkbid0IGZpbmlzaGVkIHdpdGhpbiR7XG4gICAgICAgIGNvbmZpZy50aW1lb3V0IC8gMTAwMFxuICAgICAgfXNgLFxuICAgIH1cblxuICAgIHRoaXMucmVxdWVzdENsaWVudCA9IG5ldyBQbGF0Zm9ybS5hZGFwdGVyLnJlcUNsYXNzKHJlcUNvbmZpZylcblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnID0ge1xuICAgICAgLi4uREVGQVVMVF9JTklUX0NPTkZJRyxcbiAgICAgIC4uLmNvbmZpZyxcbiAgICAgIGkxOG46IGkxOG5Qcm94eShQbGF0Zm9ybSwgY29uZmlnKSxcbiAgICB9XG5cbiAgICBkZWxldGUgKHRoaXMuY2xvdWRiYXNlQ29uZmlnIGFzIGFueSkubGFuZ1xuICAgIC8vIOS/ruato3RpbWVvdXTlj5blgLxcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZy50aW1lb3V0ID0gdGhpcy5mb3JtYXRUaW1lb3V0KHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQpXG4gICAgLy8g5Yid5aeL5YyWY2FjaGXlkoxyZXF1ZXN0XG4gICAgY29uc3QgeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgdGltZW91dCwgb2F1dGhDbGllbnQsIGkxOG4gfSA9IHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gICAgaW5pdENhY2hlKHsgZW52LCBwZXJzaXN0ZW5jZSwgZGVidWcsIHBsYXRmb3JtSW5mbzogdGhpcy5wbGF0Zm9ybSB9KVxuXG4gICAgc2V0UmVnaW9uTGV2ZWxFbmRwb2ludChlbnYsIGNvbmZpZy5yZWdpb24gfHwgJycpXG4gICAgc2V0R2F0ZXdheUVuZFBvaW50V2l0aEVudihlbnYsIERFRkFVTFRfUFJPVE9DT0wsIGNvbmZpZy5yZWdpb24gfHwgJycpXG5cbiAgICBjb25zdCBhcHAgPSBuZXcgQ2xvdWRiYXNlKHRoaXMuY2xvdWRiYXNlQ29uZmlnKVxuICAgIGluaXRSZXF1ZXN0KHtcbiAgICAgIGVudixcbiAgICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbiB8fCAnJyxcbiAgICAgIHRpbWVvdXQsXG4gICAgICBvYXV0aENsaWVudCxcbiAgICAgIF9mcm9tQXBwOiBhcHAsXG4gICAgICBpMThuLFxuICAgICAgZW5kUG9pbnRNb2RlOiBjb25maWcuZW5kUG9pbnRNb2RlLFxuICAgIH0pXG4gICAgYXBwLnJlcXVlc3RDbGllbnQgPSB0aGlzLnJlcXVlc3RDbGllbnRcbiAgICA7KHRoaXMgYXMgYW55KT8uZmlyZT8uKCdjbG91ZGJhc2VfaW5pdCcsIGFwcClcblxuICAgIHRoaXMudHJ5MkluaXRBdXRoKGFwcClcblxuICAgIHJldHVybiBhcHBcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb25maWcoY29uZmlnOiBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcpIHtcbiAgICBjb25zdCB7IHBlcnNpc3RlbmNlLCBkZWJ1ZyB9ID0gY29uZmlnXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcucGVyc2lzdGVuY2UgPSBwZXJzaXN0ZW5jZVxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmRlYnVnID0gZGVidWdcbiAgICAvLyBwZXJzaXN0ZW5jZeaUueWKqOW9seWTjWNhY2hlXG4gICAgaW5pdENhY2hlKHsgZW52OiB0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGFuZyhsYW5nOiBMQU5HUykge1xuICAgIGlmICghbGFuZyB8fCBsYW5nID09PSB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuPy5sYW5nKSByZXR1cm5cblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4ubGFuZyA9IGxhbmdcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckV4dGVuc2lvbihleHQ6IElDbG91ZGJhc2VFeHRlbnNpb24pIHtcbiAgICBleHRlbnNpb25NYXBbZXh0Lm5hbWVdID0gZXh0XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iwg+eUqOaJqeWxleiDveWKm+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBpbnZva2VFeHRlbnNpb24oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOiiq+iwg+eUqOeahOaJqeWxleiDveWKm+aYr+WQpuW3sue7j+WuieijheW5tumAmui/hyByZWdpc3RlckV4dGVuc2lvbigpIOazqOWGjCcsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgaW52b2tlRXh0ZW5zaW9uKG5hbWU6IHN0cmluZywgb3B0czogYW55KSB7XG4gICAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uTWFwW25hbWVdXG4gICAgaWYgKCFleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgZXh0ZW5zaW9uOiR7bmFtZX0gbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBpbnZva2VgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBleHQuaW52b2tlKG9wdHMsIHRoaXMpXG4gIH1cblxuICBwdWJsaWMgdXNlQWRhcHRlcnMoYWRhcHRlcnM6IENsb3VkYmFzZUFkYXB0ZXIgfCBDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZUFkYXB0ZXJzKGFkYXB0ZXJzLCBvcHRpb25zKSB8fCB7fVxuICAgIGFkYXB0ZXIgJiYgKFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2UpXG4gICAgcnVudGltZSAmJiAoUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySG9vayhob29rOiBJQ2xvdWRiYXNlSG9vaykge1xuICAgIHJlZ2lzdGVySG9vayhDbG91ZGJhc2UsIGhvb2spXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50KSB7XG4gICAgcmVnaXN0ZXJDb21wb25lbnQoQ2xvdWRiYXNlLCBjb21wb25lbnQpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHNldFNka1ZlcnNpb24odmVyc2lvbilcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHNldFNka05hbWUobmFtZSlcbiAgfVxuXG4gIC8qKiDorr7nva4gdGNiIGFwaSDnmoQgZW5kcG9pbnQgKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnQodXJsOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICAgIHNldEVuZFBvaW50SW5mbyh7IGJhc2VVcmw6IHVybCwgcHJvdG9jb2wsIGVudjogdGhpcy5jb25maWcuZW52LCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbiAgfVxuXG4gIC8qKiDorr7nva7nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50V2l0aEtleShwcm9wczogSVNldEVuZFBvaW50V2l0aEtleSkge1xuICAgIHNldEVuZFBvaW50SW5mbyh7XG4gICAgICBlbnY6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIGVuZFBvaW50S2V5OiBwcm9wcy5rZXksXG4gICAgICBiYXNlVXJsOiBwcm9wcy51cmwsXG4gICAgICBwcm90b2NvbDogcHJvcHMucHJvdG9jb2wsXG4gICAgfSlcbiAgfVxuXG4gIC8qKiDmi7/nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyBnZXRFbmRQb2ludFdpdGhLZXkoa2V5OiBFbmRQb2ludEtleSkge1xuICAgIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8odGhpcy5jb25maWcuZW52LCBrZXkpXG4gICAgcmV0dXJuIHtcbiAgICAgIEJBU0VfVVJMOiBpbmZvLmJhc2VVcmwsXG4gICAgICBQUk9UT0NPTDogaW5mby5wcm90b2NvbCxcbiAgICB9XG4gIH1cblxuICAvLyDop6PmnpBVUkzlj4LmlbBcbiAgcHVibGljIHBhcnNlQ2FwdGNoYSh1cmwpIHtcbiAgICByZXR1cm4gdXRpbHMucGFyc2VDYXB0Y2hhKHVybClcbiAgfVxuXG4gIHByaXZhdGUgdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VEZWZhdWx0QWRhcHRlci5iaW5kKHRoaXMpKClcbiAgICBQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlXG4gICAgUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nXG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFRpbWVvdXQodGltZW91dDogbnVtYmVyKSB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRpbWVvdXQgPiBNQVhfVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gdmFsdWVbMTBtaW5dJylcbiAgICAgICAgcmV0dXJuIE1BWF9USU1FT1VUXG4gICAgICBjYXNlIHRpbWVvdXQgPCBNSU5fVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgbGVzcyB0aGFuIG1heGltdW0gdmFsdWVbMTAwbXNdJylcbiAgICAgICAgcmV0dXJuIE1JTl9USU1FT1VUXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGltZW91dFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJ5MkluaXRBdXRoKGFwcCkge1xuICAgIHRyeSB7XG4gICAgICBhcHAuYXV0aCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0cnkySW5pdEF1dGggZXJyb3I6JywgZXJyb3IpXG4gICAgfVxuICB9XG59XG5cbi8vIOexu+Wei+WvvOWHulxuZXhwb3J0IHR5cGUgeyBDbG91ZGJhc2UgfVxuXG4vLyDlgLzlr7zlh7pcbmV4cG9ydCBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2UgPSBuZXcgQ2xvdWRiYXNlKClcblxuY2xvdWRiYXNlLnVzZUFkYXB0ZXJzKGdldFd4RGVmYXVsdEFkYXB0ZXIoKSlcblxuLy8g6buY6K6k5a+85Ye65a6e5L6LXG5leHBvcnQgZGVmYXVsdCBjbG91ZGJhc2VcbiJdfQ==
324
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBMEU7QUFhMUUsOENBQWtFO0FBQ2xFLDBDQUE4RDtBQUc5RCxzQ0FBd0U7QUFFeEUsMENBQStEO0FBQy9ELDZDQVcyQjtBQUMzQixvQ0FBOEM7QUFDOUMsNkNBQW9EO0FBQTNDLHlHQUFBLGVBQWUsT0FBQTtBQUN4QixvQ0FBbUM7QUFBMUIsNkZBQUEsS0FBSyxPQUFBO0FBQ04sSUFBQSxXQUFXLEdBQXdCLG9CQUFRLFlBQWhDLEVBQUUsaUJBQWlCLEdBQUssb0JBQVEsa0JBQWIsQ0FBYTtBQUMzQyxJQUFBLE1BQU0sR0FBeUIscUJBQVMsT0FBbEMsRUFBRSxrQkFBa0IsR0FBSyxxQkFBUyxtQkFBZCxDQUFjO0FBQ3hDLElBQUEsU0FBUyxHQUFLLGlCQUFLLFVBQVYsQ0FBVTtBQUNuQixJQUFBLG9CQUFvQixHQUFLLG1CQUFPLHFCQUFaLENBQVk7QUFLeEMsSUFBTSxtQkFBbUIsR0FBOEI7SUFDckQsT0FBTyxFQUFFLEtBQUs7SUFDZCxXQUFXLEVBQUUsT0FBTztDQUNyQixDQUFBO0FBR0QsSUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUE7QUFFbEMsSUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFBO0FBRXZCLElBQU0sWUFBWSxHQUE0QixFQUFFLENBQUE7QUFFaEQ7SUFVRSxtQkFBWSxNQUF5QjtRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFBO1FBQzdELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxD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QVcsQ0FBQyxJQUFBLDZCQUFtQixHQUFFLENBQUMsQ0FBQTtBQUc1QyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRTtJQUNqQyxJQUFJO1FBRUYsSUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFBO1FBQzFELGlCQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0tBQ25DO0lBQUMsT0FBTyxLQUFLLEVBQUU7UUFDZCxNQUFNLEtBQUssQ0FBQTtLQUNaO0NBQ0Y7QUFHRCxrQkFBZSxpQkFBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWRhcHRlcnMsIGNvbnN0YW50cywgdXRpbHMsIGhlbHBlcnMgfSBmcm9tICdAY2xvdWRiYXNlL3V0aWxpdGllcydcbmltcG9ydCB7IFNES0FkYXB0ZXJJbnRlcmZhY2UsIENsb3VkYmFzZUFkYXB0ZXIsIElSZXF1ZXN0Q29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS9hZGFwdGVyLWludGVyZmFjZSdcbmltcG9ydCB7XG4gIElDbG91ZGJhc2VDb25maWcsXG4gIElDbG91ZGJhc2VVcGdyYWRlZENvbmZpZyxcbiAgSUNsb3VkYmFzZSxcbiAgSUNsb3VkYmFzZUV4dGVuc2lvbixcbiAgS1YsXG4gIElDbG91ZGJhc2VQbGF0Zm9ybUluZm8sXG4gIEVuZFBvaW50S2V5LFxuICBJQ2xvdWRiYXNlQXBpcyxcbn0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcbmltcG9ydCB7IElDbG91ZGJhc2VBdXRoIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9hdXRoJ1xuaW1wb3J0IHsgcmVnaXN0ZXJDb21wb25lbnQsIHJlZ2lzdGVySG9vayB9IGZyb20gJy4vbGlicy9jb21wb25lbnQnXG5pbXBvcnQgeyBnZXRXeERlZmF1bHRBZGFwdGVyLCBQbGF0Zm9ybSB9IGZyb20gJy4vbGlicy9hZGFwdGVyJ1xuaW1wb3J0IHsgSUNsb3VkYmFzZUNvbXBvbmVudCwgSUNsb3VkYmFzZUhvb2sgfSBmcm9tICdAY2xvdWRiYXNlL3R5cGVzL2NvbXBvbmVudCdcbmltcG9ydCB7IElDbG91ZGJhc2VDYWNoZSB9IGZyb20gJ0BjbG91ZGJhc2UvdHlwZXMvY2FjaGUnXG5pbXBvcnQgeyBpbml0Q2FjaGUsIGdldENhY2hlQnlFbnZJZCwgZ2V0TG9jYWxDYWNoZSB9IGZyb20gJy4vbGlicy9jYWNoZSdcbmltcG9ydCB7IElDbG91ZGJhc2VSZXF1ZXN0IH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcy9yZXF1ZXN0J1xuaW1wb3J0IHsgaW5pdFJlcXVlc3QsIGdldFJlcXVlc3RCeUVudklkIH0gZnJvbSAnLi9saWJzL3JlcXVlc3QnXG5pbXBvcnQge1xuICBnZXRTZGtOYW1lLFxuICBzZXRTZGtWZXJzaW9uLFxuICBzZXRSZWdpb25MZXZlbEVuZHBvaW50LFxuICBzZXRTZGtOYW1lLFxuICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52LFxuICB0eXBlIElTZXRFbmRQb2ludFdpdGhLZXksXG4gIHNldEVuZFBvaW50SW5mbyxcbiAgZ2V0RW5kUG9pbnRJbmZvLFxuICBnZXRTZGtWZXJzaW9uLFxuICBERUZBVUxUX1BST1RPQ09MLFxufSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5pbXBvcnQgeyBpMThuUHJveHksIExBTkdTIH0gZnJvbSAnLi9saWJzL2xhbmcnXG5leHBvcnQgeyBnZXRCYXNlRW5kUG9pbnQgfSBmcm9tICcuL2NvbnN0YW50cy9jb21tb24nXG5leHBvcnQgeyBMQU5HUyB9IGZyb20gJy4vbGlicy9sYW5nJ1xuY29uc3QgeyB1c2VBZGFwdGVycywgdXNlRGVmYXVsdEFkYXB0ZXIgfSA9IGFkYXB0ZXJzXG5jb25zdCB7IEVSUk9SUywgQ09NTVVOSVRZX1NJVEVfVVJMIH0gPSBjb25zdGFudHNcbmNvbnN0IHsgcHJpbnRXYXJuIH0gPSB1dGlsc1xuY29uc3QgeyBjYXRjaEVycm9yc0RlY29yYXRvciB9ID0gaGVscGVyc1xuXG4vKipcbiAqIEBjb25zdGFudCDpu5jorqTphY3nva5cbiAqL1xuY29uc3QgREVGQVVMVF9JTklUX0NPTkZJRzogUGFydGlhbDxJQ2xvdWRiYXNlQ29uZmlnPiA9IHtcbiAgdGltZW91dDogMTUwMDAsXG4gIHBlcnNpc3RlbmNlOiAnbG9jYWwnLCAvLyDmjIHkuYXljJblrZjlgqjnsbvlnotcbn1cblxuLy8gdGltZW91dOS4iumZkDEw5YiG6ZKfXG5jb25zdCBNQVhfVElNRU9VVCA9IDEwMDAgKiA2MCAqIDEwXG4vLyB0aW1lb3V05LiL6ZmQMTAwbXNcbmNvbnN0IE1JTl9USU1FT1VUID0gMTAwXG5cbmNvbnN0IGV4dGVuc2lvbk1hcDogS1Y8SUNsb3VkYmFzZUV4dGVuc2lvbj4gPSB7fVxuXG5jbGFzcyBDbG91ZGJhc2UgaW1wbGVtZW50cyBJQ2xvdWRiYXNlIHtcbiAgcHVibGljIGF1dGhJbnN0YW5jZTogSUNsb3VkYmFzZUF1dGhcbiAgcHVibGljIG9hdXRoSW5zdGFuY2U6IGFueVxuICBwdWJsaWMgcmVxdWVzdENsaWVudDogYW55XG4gIHB1YmxpYyBvYXV0aENsaWVudDogYW55XG4gIHB1YmxpYyB2ZXJzaW9uOiBzdHJpbmdcbiAgcHVibGljIGF1dGg6IElDbG91ZGJhc2VbJ2F1dGgnXSAmIElDbG91ZGJhc2VBdXRoXG4gIHB1YmxpYyBhcGlzOiBJQ2xvdWRiYXNlQXBpc1xuICBwcml2YXRlIGNsb3VkYmFzZUNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZ1xuXG4gIGNvbnN0cnVjdG9yKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpIHtcbiAgICB0aGlzLmNsb3VkYmFzZUNvbmZpZyA9IGNvbmZpZyA/IGNvbmZpZyA6IHRoaXMuY2xvdWRiYXNlQ29uZmlnXG4gICAgdGhpcy5hdXRoSW5zdGFuY2UgPSBudWxsXG4gICAgdGhpcy5vYXV0aEluc3RhbmNlID0gbnVsbFxuICAgIHRoaXMudmVyc2lvbiA9IGdldFNka1ZlcnNpb24oKVxuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgfVxuXG4gIGdldCBwbGF0Zm9ybSgpOiBJQ2xvdWRiYXNlUGxhdGZvcm1JbmZvIHtcbiAgICByZXR1cm4gUGxhdGZvcm1cbiAgfVxuXG4gIGdldCBjYWNoZSgpOiBJQ2xvdWRiYXNlQ2FjaGUge1xuICAgIHJldHVybiBnZXRDYWNoZUJ5RW52SWQodGhpcy5jbG91ZGJhc2VDb25maWcuZW52KVxuICB9XG5cbiAgZ2V0IGxvY2FsQ2FjaGUoKTogSUNsb3VkYmFzZUNhY2hlIHtcbiAgICByZXR1cm4gZ2V0TG9jYWxDYWNoZSh0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYpXG4gIH1cblxuICBnZXQgcmVxdWVzdCgpOiBJQ2xvdWRiYXNlUmVxdWVzdCB7XG4gICAgcmV0dXJuIGdldFJlcXVlc3RCeUVudklkKHRoaXMuY2xvdWRiYXNlQ29uZmlnLmVudilcbiAgfVxuXG4gIEBjYXRjaEVycm9yc0RlY29yYXRvcih7XG4gICAgbW9kZTogJ3N5bmMnLFxuICAgIHRpdGxlOiAnQ2xvdWRiYXNlIOWIneWni+WMluWksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBjbG91ZGJhc2UuaW5pdCgpIOeahOivreazleaIluWPguaVsOaYr+WQpuato+ehricsXG4gICAgICAnICAyIC0g5aaC5p6c5piv6Z2e5rWP6KeI5Zmo546v5aKD77yM5piv5ZCm6YWN572u5LqG5a6J5YWo5bqU55So5p2l5rqQ77yIaHR0cHM6Ly9kb2NzLmNsb3VkYmFzZS5uZXQvYXBpLXJlZmVyZW5jZS93ZWJ2My9hZGFwdGVyIyVFNyVBQyVBQy0yLSVFNiVBRCVBNSVFOSU4NSU4RCVFNyVCRCVBRSVFNSVBRSU4OSVFNSU4NSVBOCVFNSVCQSU5NCVFNyU5NCVBOCVFNiU5RCVBNSVFNiVCQSU5MO+8iScsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgaW5pdChjb25maWc6IElDbG91ZGJhc2VDb25maWcgJiB7IGxhbmc/OiBMQU5HUyB9KTogQ2xvdWRiYXNlIHtcbiAgICBjb25maWcuZW5kUG9pbnRNb2RlID0gY29uZmlnLmVuZFBvaW50TW9kZSB8fCAnR0FURVdBWSdcblxuICAgIC8vIOWIneWni+WMluaXtuiLpeacquWFvOWuueW5s+WPsO+8jOWImeS9v+eUqOm7mOiupGFkYXB0ZXJcbiAgICBpZiAoIVBsYXRmb3JtLmFkYXB0ZXIpIHtcbiAgICAgIHRoaXMudXNlRGVmYXVsdEFkYXB0ZXIoKVxuICAgIH1cblxuICAgIC8vIOWcqOWIpOaWrWNvbmZpZy5lbnbkuYvliY3vvIzlhYjlpITnkIZub2Rl546v5aKD55qE6YWN572uXG4gICAgY29uZmlnID0gdGhpcy5kZWFsTm9kZUFkYXB0ZXJDb25maWcoY29uZmlnKVxuXG4gICAgaWYgKCFjb25maWcuZW52KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBjb2RlOiBFUlJPUlMuSU5WQUxJRF9QQVJBTVMsXG4gICAgICAgIG1zZzogJ2VudiBtdXN0IG5vdCBiZSBzcGVjaWZpZWQnLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcUNvbmZpZzogSVJlcXVlc3RDb25maWcgJiB7IGF1dGg6IElDbG91ZGJhc2VDb25maWdbJ2F1dGgnXSB9ID0ge1xuICAgICAgdGltZW91dDogY29uZmlnLnRpbWVvdXQgfHwgNTAwMCxcbiAgICAgIHRpbWVvdXRNc2c6IGBbJHtnZXRTZGtOYW1lKCl9XVtSRVFVRVNUIFRJTUVPVVRdIHJlcXVlc3QgaGFkIGJlZW4gYWJvcnQgc2luY2UgZGlkbid0IGZpbmlzaGVkIHdpdGhpbiR7XG4gICAgICAgIGNvbmZpZy50aW1lb3V0IC8gMTAwMFxuICAgICAgfXNgLFxuICAgICAgYXV0aDogY29uZmlnLmF1dGgsXG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0Q2xpZW50ID0gbmV3IFBsYXRmb3JtLmFkYXB0ZXIucmVxQ2xhc3MocmVxQ29uZmlnKVxuXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcgPSB7XG4gICAgICAuLi5ERUZBVUxUX0lOSVRfQ09ORklHLFxuICAgICAgLi4uY29uZmlnLFxuICAgICAgaTE4bjogaTE4blByb3h5KFBsYXRmb3JtLCBjb25maWcpLFxuICAgIH1cblxuICAgIGRlbGV0ZSAodGhpcy5jbG91ZGJhc2VDb25maWcgYXMgYW55KS5sYW5nXG4gICAgLy8g5L+u5q2jdGltZW91dOWPluWAvFxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLnRpbWVvdXQgPSB0aGlzLmZvcm1hdFRpbWVvdXQodGhpcy5jbG91ZGJhc2VDb25maWcudGltZW91dClcbiAgICAvLyDliJ3lp4vljJZjYWNoZeWSjHJlcXVlc3RcbiAgICBjb25zdCB7IGVudiwgcGVyc2lzdGVuY2UsIGRlYnVnLCB0aW1lb3V0LCBvYXV0aENsaWVudCwgaTE4biB9ID0gdGhpcy5jbG91ZGJhc2VDb25maWdcbiAgICBpbml0Q2FjaGUoeyBlbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG5cbiAgICBzZXRSZWdpb25MZXZlbEVuZHBvaW50KGVudiwgY29uZmlnLnJlZ2lvbiB8fCAnJylcbiAgICBzZXRHYXRld2F5RW5kUG9pbnRXaXRoRW52KGVudiwgREVGQVVMVF9QUk9UT0NPTCwgY29uZmlnLnJlZ2lvbiB8fCAnJylcblxuICAgIGNvbnN0IGFwcCA9IG5ldyBDbG91ZGJhc2UodGhpcy5jbG91ZGJhc2VDb25maWcpXG4gICAgaW5pdFJlcXVlc3Qoe1xuICAgICAgZW52LFxuICAgICAgcmVnaW9uOiBjb25maWcucmVnaW9uIHx8ICcnLFxuICAgICAgdGltZW91dCxcbiAgICAgIG9hdXRoQ2xpZW50LFxuICAgICAgX2Zyb21BcHA6IGFwcCxcbiAgICAgIGkxOG4sXG4gICAgICBlbmRQb2ludE1vZGU6IGNvbmZpZy5lbmRQb2ludE1vZGUsXG4gICAgICBhdXRoOiBjb25maWcuYXV0aCxcbiAgICB9KVxuICAgIGFwcC5yZXF1ZXN0Q2xpZW50ID0gdGhpcy5yZXF1ZXN0Q2xpZW50XG4gICAgOyh0aGlzIGFzIGFueSk/LmZpcmU/LignY2xvdWRiYXNlX2luaXQnLCBhcHApXG5cbiAgICB0aGlzLnRyeTJJbml0QXV0aChhcHApXG5cbiAgICAvLyBub2Rl546v5aKD5Y+v5Lul5LuOYWRhcHRlcuiOt+WPlm5vZGVUb29s55qE5pa55rOVXG4gICAgaWYgKFBsYXRmb3JtLmFkYXB0ZXI/Lm5vZGVUb29sKSB7XG4gICAgICBQbGF0Zm9ybS5hZGFwdGVyPy5ub2RlVG9vbChhcHAsIHRoaXMuY2xvdWRiYXNlQ29uZmlnKVxuICAgIH1cblxuICAgIHJldHVybiBhcHBcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVDb25maWcoY29uZmlnOiBJQ2xvdWRiYXNlVXBncmFkZWRDb25maWcpIHtcbiAgICBjb25zdCB7IHBlcnNpc3RlbmNlLCBkZWJ1ZyB9ID0gY29uZmlnXG4gICAgdGhpcy5jbG91ZGJhc2VDb25maWcucGVyc2lzdGVuY2UgPSBwZXJzaXN0ZW5jZVxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmRlYnVnID0gZGVidWdcbiAgICAvLyBwZXJzaXN0ZW5jZeaUueWKqOW9seWTjWNhY2hlXG4gICAgaW5pdENhY2hlKHsgZW52OiB0aGlzLmNsb3VkYmFzZUNvbmZpZy5lbnYsIHBlcnNpc3RlbmNlLCBkZWJ1ZywgcGxhdGZvcm1JbmZvOiB0aGlzLnBsYXRmb3JtIH0pXG4gIH1cblxuICBwdWJsaWMgdXBkYXRlTGFuZyhsYW5nOiBMQU5HUykge1xuICAgIGlmICghbGFuZyB8fCBsYW5nID09PSB0aGlzLmNsb3VkYmFzZUNvbmZpZy5pMThuPy5sYW5nKSByZXR1cm5cblxuICAgIHRoaXMuY2xvdWRiYXNlQ29uZmlnLmkxOG4ubGFuZyA9IGxhbmdcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckV4dGVuc2lvbihleHQ6IElDbG91ZGJhc2VFeHRlbnNpb24pIHtcbiAgICBleHRlbnNpb25NYXBbZXh0Lm5hbWVdID0gZXh0XG4gIH1cbiAgQGNhdGNoRXJyb3JzRGVjb3JhdG9yKHtcbiAgICB0aXRsZTogJ+iwg+eUqOaJqeWxleiDveWKm+Wksei0pScsXG4gICAgbWVzc2FnZXM6IFtcbiAgICAgICfor7fnoa7orqTku6XkuIvlkITpobnvvJonLFxuICAgICAgJyAgMSAtIOiwg+eUqCBpbnZva2VFeHRlbnNpb24oKSDnmoTor63ms5XmiJblj4LmlbDmmK/lkKbmraPnoa4nLFxuICAgICAgJyAgMiAtIOiiq+iwg+eUqOeahOaJqeWxleiDveWKm+aYr+WQpuW3sue7j+WuieijheW5tumAmui/hyByZWdpc3RlckV4dGVuc2lvbigpIOazqOWGjCcsXG4gICAgICBg5aaC5p6c6Zeu6aKY5L6d54S25a2Y5Zyo77yM5bu66K6u5Yiw5a6Y5pa56Zeu562U56S+5Yy65o+Q6Zeu5oiW5a+75om+5biu5Yqp77yaJHtDT01NVU5JVFlfU0lURV9VUkx9YCxcbiAgICBdLFxuICB9KVxuICBwdWJsaWMgYXN5bmMgaW52b2tlRXh0ZW5zaW9uKG5hbWU6IHN0cmluZywgb3B0czogYW55KSB7XG4gICAgY29uc3QgZXh0ID0gZXh0ZW5zaW9uTWFwW25hbWVdXG4gICAgaWYgKCFleHQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGNvZGU6IEVSUk9SUy5JTlZBTElEX1BBUkFNUyxcbiAgICAgICAgbXNnOiBgZXh0ZW5zaW9uOiR7bmFtZX0gbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBpbnZva2VgLFxuICAgICAgfSksKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCBleHQuaW52b2tlKG9wdHMsIHRoaXMpXG4gIH1cblxuICBwdWJsaWMgdXNlQWRhcHRlcnMoYWRhcHRlcnM6IENsb3VkYmFzZUFkYXB0ZXIgfCBDbG91ZGJhc2VBZGFwdGVyW10sIG9wdGlvbnM/OiBhbnkpIHtcbiAgICBjb25zdCB7IGFkYXB0ZXIsIHJ1bnRpbWUgfSA9IHVzZUFkYXB0ZXJzKGFkYXB0ZXJzLCBvcHRpb25zKSB8fCB7fVxuICAgIGFkYXB0ZXIgJiYgKFBsYXRmb3JtLmFkYXB0ZXIgPSBhZGFwdGVyIGFzIFNES0FkYXB0ZXJJbnRlcmZhY2UpXG4gICAgcnVudGltZSAmJiAoUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nKVxuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVySG9vayhob29rOiBJQ2xvdWRiYXNlSG9vaykge1xuICAgIHJlZ2lzdGVySG9vayhDbG91ZGJhc2UsIGhvb2spXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJDb21wb25lbnQoY29tcG9uZW50OiBJQ2xvdWRiYXNlQ29tcG9uZW50KSB7XG4gICAgcmVnaXN0ZXJDb21wb25lbnQoQ2xvdWRiYXNlLCBjb21wb25lbnQpXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJWZXJzaW9uKHZlcnNpb246IHN0cmluZykge1xuICAgIHNldFNka1ZlcnNpb24odmVyc2lvbilcbiAgICB0aGlzLnZlcnNpb24gPSB2ZXJzaW9uXG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJTZGtOYW1lKG5hbWU6IHN0cmluZykge1xuICAgIHNldFNka05hbWUobmFtZSlcbiAgfVxuXG4gIC8qKiDorr7nva4gdGNiIGFwaSDnmoQgZW5kcG9pbnQgKi9cbiAgcHVibGljIHJlZ2lzdGVyRW5kUG9pbnQodXJsOiBzdHJpbmcsIHByb3RvY29sPzogJ2h0dHAnIHwgJ2h0dHBzJykge1xuICAgIHNldEVuZFBvaW50SW5mbyh7IGJhc2VVcmw6IHVybCwgcHJvdG9jb2wsIGVudjogdGhpcy5jb25maWcuZW52LCBlbmRQb2ludEtleTogJ0NMT1VEX0FQSScgfSlcbiAgfVxuXG4gIC8qKiDorr7nva7nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyByZWdpc3RlckVuZFBvaW50V2l0aEtleShwcm9wczogSVNldEVuZFBvaW50V2l0aEtleSkge1xuICAgIHNldEVuZFBvaW50SW5mbyh7XG4gICAgICBlbnY6IHRoaXMuY29uZmlnLmVudixcbiAgICAgIGVuZFBvaW50S2V5OiBwcm9wcy5rZXksXG4gICAgICBiYXNlVXJsOiBwcm9wcy51cmwsXG4gICAgICBwcm90b2NvbDogcHJvcHMucHJvdG9jb2wsXG4gICAgfSlcbiAgfVxuXG4gIC8qKiDmi7/nvZHlhbMvdGNiIGFwaeeahCBlbmRQb2ludO+8jOmAmui/hyBrZXkg5oyH5a6aICovXG4gIHB1YmxpYyBnZXRFbmRQb2ludFdpdGhLZXkoa2V5OiBFbmRQb2ludEtleSkge1xuICAgIGNvbnN0IGluZm8gPSBnZXRFbmRQb2ludEluZm8odGhpcy5jb25maWcuZW52LCBrZXkpXG4gICAgcmV0dXJuIHtcbiAgICAgIEJBU0VfVVJMOiBpbmZvLmJhc2VVcmwsXG4gICAgICBQUk9UT0NPTDogaW5mby5wcm90b2NvbCxcbiAgICB9XG4gIH1cblxuICAvLyDop6PmnpBVUkzlj4LmlbBcbiAgcHVibGljIHBhcnNlQ2FwdGNoYSh1cmwpIHtcbiAgICByZXR1cm4gdXRpbHMucGFyc2VDYXB0Y2hhKHVybClcbiAgfVxuXG4gIHByaXZhdGUgdXNlRGVmYXVsdEFkYXB0ZXIoKSB7XG4gICAgY29uc3QgeyBhZGFwdGVyLCBydW50aW1lIH0gPSB1c2VEZWZhdWx0QWRhcHRlci5iaW5kKHRoaXMpKClcbiAgICBQbGF0Zm9ybS5hZGFwdGVyID0gYWRhcHRlciBhcyBTREtBZGFwdGVySW50ZXJmYWNlXG4gICAgUGxhdGZvcm0ucnVudGltZSA9IHJ1bnRpbWUgYXMgc3RyaW5nXG4gIH1cblxuICBwcml2YXRlIGZvcm1hdFRpbWVvdXQodGltZW91dDogbnVtYmVyKSB7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICBjYXNlIHRpbWVvdXQgPiBNQVhfVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgZ3JlYXRlciB0aGFuIG1heGltdW0gdmFsdWVbMTBtaW5dJylcbiAgICAgICAgcmV0dXJuIE1BWF9USU1FT1VUXG4gICAgICBjYXNlIHRpbWVvdXQgPCBNSU5fVElNRU9VVDpcbiAgICAgICAgcHJpbnRXYXJuKEVSUk9SUy5JTlZBTElEX1BBUkFNUywgJ3RpbWVvdXQgaXMgbGVzcyB0aGFuIG1heGltdW0gdmFsdWVbMTAwbXNdJylcbiAgICAgICAgcmV0dXJuIE1JTl9USU1FT1VUXG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGltZW91dFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdHJ5MkluaXRBdXRoKGFwcCkge1xuICAgIHRyeSB7XG4gICAgICBhcHAuYXV0aCgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKCd0cnkySW5pdEF1dGggZXJyb3I6JywgZXJyb3IpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOWkhOeQhiBOb2RlIOeOr+Wig+S4iyBhZGFwdGVyIOeahOmFjee9ruS/oeaBr1xuICAgKiDlnKggTm9kZSDnjq/looPkuK3vvIzpgJrov4cgYWRhcHRlciDoh6rliqjojrflj5blr4bpkqXjgIHnjq/looNJROOAgWFjY2Vzc0tleSDnrYnphY3nva7vvIxcbiAgICog5YeP5bCR55So5oi35omL5Yqo5Lyg5YWl6YWN572u55qE6LSf5ouFXG4gICAqIEBwYXJhbSBjb25maWcgLSDkupHlvIDlj5HliJ3lp4vljJbphY3nva7lr7nosaFcbiAgICogQHJldHVybnMg6KGl5YWF5LqGIE5vZGUgYWRhcHRlciDkv6Hmga/lkI7nmoTphY3nva7lr7nosaFcbiAgICovXG4gIHByaXZhdGUgZGVhbE5vZGVBZGFwdGVyQ29uZmlnKGNvbmZpZzogSUNsb3VkYmFzZUNvbmZpZykge1xuICAgIC8vIG5vZGXnjq/looPlj6/ku6Xku45hZGFwdGVy6I635Y+W6buY6K6k55qEc2VjcmV0SWTlkoxzZWNyZXRLZXlcbiAgICBpZiAoIXByb2Nlc3MuZW52LklTX0JST1dTRVJfQlVJTEQgJiYgUGxhdGZvcm0uYWRhcHRlcj8uZ2V0U2VjcmV0SW5mbykge1xuICAgICAgY29uc3Qgc2VjcmV0SW5mbyA9IFBsYXRmb3JtLmFkYXB0ZXI/LmdldFNlY3JldEluZm8oY29uZmlnKVxuICAgICAgLy8g5bCGIGFkYXB0ZXIg5o+Q5L6b55qE5a+G6ZKl5L+h5oGv5YaZ5YWlIGNvbmZpZy5hdXRoXG4gICAgICBjb25maWcuYXV0aCA9IHtcbiAgICAgICAgLi4uY29uZmlnLmF1dGgsXG4gICAgICAgIHNlY3JldElkOiBzZWNyZXRJbmZvLnNlY3JldElkLFxuICAgICAgICBzZWNyZXRLZXk6IHNlY3JldEluZm8uc2VjcmV0S2V5LFxuICAgICAgICBzZXNzaW9uVG9rZW46IHNlY3JldEluZm8uc2Vzc2lvblRva2VuLFxuICAgICAgICBzZWNyZXRUeXBlOiBzZWNyZXRJbmZvLnNlY3JldFR5cGUgYXMgYW55LFxuICAgICAgfVxuXG4gICAgICAvLyBub2RlIOeOr+Wig+WPr+iDveWPr+S7peS7juS4iuS4i+aWh+iOt+WPlmVudu+8jOeUqOaIt+acquaYvuW8j+aMh+WumuaXtuiHquWKqOWhq+WFhVxuICAgICAgaWYgKCFjb25maWcuZW52KSB7XG4gICAgICAgIGNvbmZpZy5lbnYgPSBzZWNyZXRJbmZvLmVudlxuICAgICAgfVxuXG4gICAgICAvLyBub2RlIGFkYXB0ZXLnjq/looPog73or7vlj5bliLAgcHJvY2Vzcy5lbnYuQ0xPVURCQVNFX0FQSUtFWSDml7bvvIzlnKjmsqHmnInkvKDlhaVhY2Nlc3NLZXnml7bvvIzkvb/nlKggbm9kZSBhZGFwdGVyIOaPkOS+m+eahCBhY2Nlc3NLZXnvvIhwcm9jZXNzLmVudi5DTE9VREJBU0VfQVBJS0VZ77yJXG4gICAgICBpZiAoIWNvbmZpZy5hY2Nlc3NLZXkgJiYgc2VjcmV0SW5mby5hY2Nlc3NLZXkpIHtcbiAgICAgICAgY29uZmlnLmFjY2Vzc0tleSA9IHNlY3JldEluZm8uYWNjZXNzS2V5XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZ1xuICB9XG59XG5cbi8vIOexu+Wei+WvvOWHulxuZXhwb3J0IHR5cGUgeyBDbG91ZGJhc2UgfVxuXG4vLyDlgLzlr7zlh7pcbmV4cG9ydCBjb25zdCBjbG91ZGJhc2U6IElDbG91ZGJhc2UgPSBuZXcgQ2xvdWRiYXNlKClcblxuY2xvdWRiYXNlLnVzZUFkYXB0ZXJzKGdldFd4RGVmYXVsdEFkYXB0ZXIoKSlcblxuLy8gTm9kZSDnjq/looPkuIvliqjmgIHlvJXlhaUgYWRhcHRlcu+8jOa1j+iniOWZqC/lsI/nqIvluo/miZPljIXml7YgSVNfQlJPV1NFUl9CVUlMRD10cnVl77yM5q2k5YiG5pSv5Lya6KKrIHRyZWUtc2hha2luZyDnp7vpmaRcbmlmICghcHJvY2Vzcy5lbnYuSVNfQlJPV1NFUl9CVUlMRCkge1xuICB0cnkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdmFyLXJlcXVpcmVzLCBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG4gICAgY29uc3Qgbm9kZUFkYXB0ZXIgPSByZXF1aXJlKCcuL2xpYnMvYWRhcHRlci1ub2RlJykuZGVmYXVsdFxuICAgIGNsb3VkYmFzZS51c2VBZGFwdGVycyhub2RlQWRhcHRlcilcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICB0aHJvdyBlcnJvclxuICB9XG59XG5cbi8vIOm7mOiupOWvvOWHuuWunuS+i1xuZXhwb3J0IGRlZmF1bHQgY2xvdWRiYXNlXG4iXX0=
@@ -0,0 +1,33 @@
1
+ export declare const ERROR: {
2
+ INVALID_PARAM: {
3
+ code: string;
4
+ message: string;
5
+ };
6
+ SYS_ERR: {
7
+ code: string;
8
+ message: string;
9
+ };
10
+ STORAGE_REQUEST_FAIL: {
11
+ code: string;
12
+ message: string;
13
+ };
14
+ STORAGE_FILE_NONEXIST: {
15
+ code: string;
16
+ message: string;
17
+ };
18
+ TCB_CLS_UNOPEN: {
19
+ code: string;
20
+ message: string;
21
+ };
22
+ INVALID_CONTEXT: {
23
+ code: string;
24
+ message: string;
25
+ };
26
+ };
27
+ export declare const ADMIN_PATH = "/admin";
28
+ export declare const CLIENT_AUTH_PATH = "/auth/v1/token/clientCredential";
29
+ export declare const checkCustomUserIdRegex: RegExp;
30
+ export declare enum SECRET_TYPE {
31
+ 'SECRET' = "SECRET",
32
+ 'SESSION_SECRET' = "SESSION_SECRET"
33
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SECRET_TYPE = exports.checkCustomUserIdRegex = exports.CLIENT_AUTH_PATH = exports.ADMIN_PATH = exports.ERROR = void 0;
4
+ exports.ERROR = {
5
+ INVALID_PARAM: {
6
+ code: 'INVALID_PARAM',
7
+ message: 'invalid param',
8
+ },
9
+ SYS_ERR: {
10
+ code: 'SYS_ERR',
11
+ message: 'system error',
12
+ },
13
+ STORAGE_REQUEST_FAIL: {
14
+ code: 'STORAGE_REQUEST_FAIL',
15
+ message: 'storage request fail',
16
+ },
17
+ STORAGE_FILE_NONEXIST: {
18
+ code: 'STORAGE_FILE_NONEXIST',
19
+ message: 'storage file not exist',
20
+ },
21
+ TCB_CLS_UNOPEN: {
22
+ code: 'TCB_CLS_UNOPEN',
23
+ message: '需要先开通日志检索功能',
24
+ },
25
+ INVALID_CONTEXT: {
26
+ code: 'INVALID_CONTEXT',
27
+ message: '无效的context对象,请使用 云函数入口的context参数',
28
+ },
29
+ };
30
+ exports.ADMIN_PATH = '/admin';
31
+ exports.CLIENT_AUTH_PATH = '/auth/v1/token/clientCredential';
32
+ exports.checkCustomUserIdRegex = /^[a-zA-Z0-9_\-#@~=*(){}[\]:.,<>+]{4,32}$/;
33
+ var SECRET_TYPE;
34
+ (function (SECRET_TYPE) {
35
+ SECRET_TYPE["SECRET"] = "SECRET";
36
+ SECRET_TYPE["SESSION_SECRET"] = "SESSION_SECRET";
37
+ })(SECRET_TYPE = exports.SECRET_TYPE || (exports.SECRET_TYPE = {}));
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYnMvYWRhcHRlci1ub2RlL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFYSxRQUFBLEtBQUssR0FBRztJQUNuQixhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsZUFBZTtRQUNyQixPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLGNBQWM7S0FDeEI7SUFDRCxvQkFBb0IsRUFBRTtRQUNwQixJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLE9BQU8sRUFBRSxzQkFBc0I7S0FDaEM7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixJQUFJLEVBQUUsdUJBQXVCO1FBQzdCLE9BQU8sRUFBRSx3QkFBd0I7S0FDbEM7SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsZ0JBQWdCO1FBQ3RCLE9BQU8sRUFBRSxhQUFhO0tBQ3ZCO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsSUFBSSxFQUFFLGlCQUFpQjtRQUN2QixPQUFPLEVBQUUsa0NBQWtDO0tBQzVDO0NBQ0YsQ0FBQTtBQUdZLFFBQUEsVUFBVSxHQUFHLFFBQVEsQ0FBQTtBQUdyQixRQUFBLGdCQUFnQixHQUFHLGlDQUFpQyxDQUFBO0FBR3BELFFBQUEsc0JBQXNCLEdBQUcsMENBQTBDLENBQUE7QUFFaEYsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLGdDQUFtQixDQUFBO0lBQ25CLGdEQUFtQyxDQUFBO0FBQ3JDLENBQUMsRUFIVyxXQUFXLEdBQVgsbUJBQVcsS0FBWCxtQkFBVyxRQUd0QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvbiAqL1xuLyoqIOe7n+S4gOmUmeivr+eggeWumuS5iSAqL1xuZXhwb3J0IGNvbnN0IEVSUk9SID0ge1xuICBJTlZBTElEX1BBUkFNOiB7XG4gICAgY29kZTogJ0lOVkFMSURfUEFSQU0nLFxuICAgIG1lc3NhZ2U6ICdpbnZhbGlkIHBhcmFtJyxcbiAgfSxcbiAgU1lTX0VSUjoge1xuICAgIGNvZGU6ICdTWVNfRVJSJyxcbiAgICBtZXNzYWdlOiAnc3lzdGVtIGVycm9yJyxcbiAgfSxcbiAgU1RPUkFHRV9SRVFVRVNUX0ZBSUw6IHtcbiAgICBjb2RlOiAnU1RPUkFHRV9SRVFVRVNUX0ZBSUwnLFxuICAgIG1lc3NhZ2U6ICdzdG9yYWdlIHJlcXVlc3QgZmFpbCcsXG4gIH0sXG4gIFNUT1JBR0VfRklMRV9OT05FWElTVDoge1xuICAgIGNvZGU6ICdTVE9SQUdFX0ZJTEVfTk9ORVhJU1QnLFxuICAgIG1lc3NhZ2U6ICdzdG9yYWdlIGZpbGUgbm90IGV4aXN0JyxcbiAgfSxcbiAgVENCX0NMU19VTk9QRU46IHtcbiAgICBjb2RlOiAnVENCX0NMU19VTk9QRU4nLFxuICAgIG1lc3NhZ2U6ICfpnIDopoHlhYjlvIDpgJrml6Xlv5fmo4DntKLlip/og70nLFxuICB9LFxuICBJTlZBTElEX0NPTlRFWFQ6IHtcbiAgICBjb2RlOiAnSU5WQUxJRF9DT05URVhUJyxcbiAgICBtZXNzYWdlOiAn5peg5pWI55qEY29udGV4dOWvueixoe+8jOivt+S9v+eUqCDkupHlh73mlbDlhaXlj6PnmoRjb250ZXh05Y+C5pWwJyxcbiAgfSxcbn1cblxuLyoqIOeuoeeQhuerryBBUEkg6Lev5b6E77yM55So5LqO5pu/5o2iIC93ZWIg6Lev5b6E77yI6ZyA6KaB5a+G6ZKl562+5ZCN5pe277yJICovXG5leHBvcnQgY29uc3QgQURNSU5fUEFUSCA9ICcvYWRtaW4nXG5cbi8qKiDnrqHnkIbnq6/ojrflj5blrqLmiLfnq6/lh63or4EgYWNjZXNzX3Rva2Vu77yM5Li6566h55CG5ZGY5p2D6ZmQICovXG5leHBvcnQgY29uc3QgQ0xJRU5UX0FVVEhfUEFUSCA9ICcvYXV0aC92MS90b2tlbi9jbGllbnRDcmVkZW50aWFsJ1xuXG4vKiog6Ieq5a6a5LmJ55So5oi3IElEIOagoemqjOinhOWIme+8mjR+MzIg5L2N77yM5YWB6K645a2X5q+N44CB5pWw5a2X5Y+K6YOo5YiG54m55q6K5a2X56ymICovXG5leHBvcnQgY29uc3QgY2hlY2tDdXN0b21Vc2VySWRSZWdleCA9IC9eW2EtekEtWjAtOV9cXC0jQH49Kigpe31bXFxdOi4sPD4rXXs0LDMyfSQvXG5cbmV4cG9ydCBlbnVtIFNFQ1JFVF9UWVBFIHtcbiAgJ1NFQ1JFVCcgPSAnU0VDUkVUJyxcbiAgJ1NFU1NJT05fU0VDUkVUJyA9ICdTRVNTSU9OX1NFQ1JFVCcsXG59XG4iXX0=
@@ -0,0 +1,13 @@
1
+ import type { IContextParam, ICompleteCloudbaseContext } from './types';
2
+ import { ICloudbaseConfig } from '@cloudbase/types';
3
+ export declare function parseContext(context: IContextParam): any;
4
+ export declare const getCloudbaseContext: (context?: IContextParam) => ICompleteCloudbaseContext;
5
+ export declare let INIT_CONFIG: ICloudbaseConfig;
6
+ export declare const getSecretInfo: (config?: ICloudbaseConfig) => {
7
+ env: string;
8
+ secretId: string;
9
+ secretKey: string;
10
+ sessionToken: string;
11
+ accessKey: string;
12
+ secretType: string;
13
+ };
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.getSecretInfo = exports.INIT_CONFIG = exports.getCloudbaseContext = exports.parseContext = void 0;
15
+ var constants_1 = require("./constants");
16
+ var utils_1 = require("./utils");
17
+ function parseContext(context) {
18
+ if (typeof context !== 'object') {
19
+ throw __assign(__assign({}, constants_1.ERROR.INVALID_CONTEXT), { message: 'context 必须为对象类型' });
20
+ }
21
+ var parseResult = {};
22
+ var memory_limit_in_mb = context.memory_limit_in_mb, time_limit_in_ms = context.time_limit_in_ms, request_id = context.request_id, function_version = context.function_version, namespace = context.namespace, function_name = context.function_name, environ = context.environ, environment = context.environment;
23
+ try {
24
+ parseResult.memoryLimitInMb = memory_limit_in_mb;
25
+ parseResult.timeLimitIns = time_limit_in_ms;
26
+ parseResult.requestId = request_id;
27
+ parseResult.functionVersion = function_version;
28
+ parseResult.namespace = namespace;
29
+ parseResult.functionName = function_name;
30
+ if (environment) {
31
+ parseResult.environment = JSON.parse(environment);
32
+ }
33
+ else {
34
+ var parseEnviron = environ === null || environ === void 0 ? void 0 : environ.split(';');
35
+ var parseEnvironObj = {};
36
+ for (var i in parseEnviron) {
37
+ if (parseEnviron[i].includes('=')) {
38
+ var equalIndex = parseEnviron[i].indexOf('=');
39
+ var key = parseEnviron[i].slice(0, equalIndex);
40
+ var value = parseEnviron[i].slice(equalIndex + 1);
41
+ if (value.indexOf(',') >= 0) {
42
+ value = value.split(',');
43
+ }
44
+ parseEnvironObj[key] = value;
45
+ }
46
+ }
47
+ parseResult.environ = parseEnvironObj;
48
+ }
49
+ }
50
+ catch (_err) {
51
+ throw __assign({}, constants_1.ERROR.INVALID_CONTEXT);
52
+ }
53
+ return parseResult;
54
+ }
55
+ exports.parseContext = parseContext;
56
+ var getCloudbaseContext = function (context) {
57
+ if ((0, utils_1.checkIsInScf)()) {
58
+ if (!(0, utils_1.getEnv)('TENCENTCLOUD_REGION')) {
59
+ console.error('[TCB][ERROR] missing `TENCENTCLOUD_REGION` environment');
60
+ }
61
+ if (!(0, utils_1.getEnv)('SCF_NAMESPACE')) {
62
+ console.error('[TCB][ERROR] missing `SCF_NAMESPACE` environment');
63
+ }
64
+ }
65
+ var envObj = (0, utils_1.getEnv)();
66
+ var envFromProcessEnv = {
67
+ TRIGGER_SRC: envObj.TRIGGER_SRC,
68
+ _SCF_TCB_LOG: envObj._SCF_TCB_LOG,
69
+ SCF_NAMESPACE: envObj.SCF_NAMESPACE,
70
+ TENCENTCLOUD_RUNENV: envObj.TENCENTCLOUD_RUNENV,
71
+ TENCENTCLOUD_SECRETID: envObj.TENCENTCLOUD_SECRETID,
72
+ TENCENTCLOUD_SECRETKEY: envObj.TENCENTCLOUD_SECRETKEY,
73
+ TENCENTCLOUD_SESSIONTOKEN: envObj.TENCENTCLOUD_SESSIONTOKEN,
74
+ WX_CONTEXT_KEYS: envObj.WX_CONTEXT_KEYS,
75
+ WX_TRIGGER_API_TOKEN_V0: envObj.WX_TRIGGER_API_TOKEN_V0,
76
+ WX_CLIENTIP: envObj.WX_CLIENTIP,
77
+ WX_CLIENTIPV6: envObj.WX_CLIENTIPV6,
78
+ TCB_CONTEXT_KEYS: envObj.TCB_CONTEXT_KEYS,
79
+ TCB_CONTEXT_CNFG: envObj.TCB_CONTEXT_CNFG,
80
+ LOGINTYPE: envObj.LOGINTYPE,
81
+ };
82
+ var envFromContext = {};
83
+ if (context) {
84
+ var _a = parseContext(context), environment = _a.environment, environ = _a.environ;
85
+ envFromContext = environment || environ || {};
86
+ }
87
+ var tcbContextKeys = envFromContext.TCB_CONTEXT_KEYS || envObj.TCB_CONTEXT_KEYS;
88
+ var wxContextKeys = envFromContext.WX_CONTEXT_KEYS || envObj.WX_CONTEXT_KEYS;
89
+ if (tcbContextKeys) {
90
+ try {
91
+ var tcbKeysList = tcbContextKeys.split(',');
92
+ for (var _i = 0, tcbKeysList_1 = tcbKeysList; _i < tcbKeysList_1.length; _i++) {
93
+ var item = tcbKeysList_1[_i];
94
+ envFromProcessEnv[item] = envFromContext[item] || (0, utils_1.getEnv)(item);
95
+ }
96
+ }
97
+ catch (_e) {
98
+ }
99
+ }
100
+ if (wxContextKeys) {
101
+ try {
102
+ var wxKeysList = wxContextKeys.split(',');
103
+ for (var _b = 0, wxKeysList_1 = wxKeysList; _b < wxKeysList_1.length; _b++) {
104
+ var item = wxKeysList_1[_b];
105
+ envFromProcessEnv[item] = envFromContext[item] || (0, utils_1.getEnv)(item);
106
+ }
107
+ }
108
+ catch (_e) {
109
+ }
110
+ }
111
+ var allContext = __assign(__assign({}, envFromProcessEnv), envFromContext);
112
+ var finalContext = {};
113
+ for (var key in allContext) {
114
+ if (allContext[key] !== undefined) {
115
+ finalContext[key] = allContext[key];
116
+ }
117
+ }
118
+ return finalContext;
119
+ };
120
+ exports.getCloudbaseContext = getCloudbaseContext;
121
+ exports.INIT_CONFIG = {};
122
+ var getSecretInfo = function (config) {
123
+ var _a, _b, _c, _d, _f, _g;
124
+ exports.INIT_CONFIG = JSON.parse(JSON.stringify(config || {}));
125
+ var _h = (0, exports.getCloudbaseContext)(), TCB_ENV = _h.TCB_ENV, SCF_NAMESPACE = _h.SCF_NAMESPACE;
126
+ var env = (config === null || config === void 0 ? void 0 : config.env) || TCB_ENV || SCF_NAMESPACE || '';
127
+ var defaultInfo = {
128
+ env: env,
129
+ secretId: '',
130
+ secretKey: '',
131
+ sessionToken: '',
132
+ accessKey: '',
133
+ secretType: '',
134
+ };
135
+ if (config === null || config === void 0 ? void 0 : config.accessKey) {
136
+ return defaultInfo;
137
+ }
138
+ if (((_a = config === null || config === void 0 ? void 0 : config.auth) === null || _a === void 0 ? void 0 : _a.secretId) && ((_b = config === null || config === void 0 ? void 0 : config.auth) === null || _b === void 0 ? void 0 : _b.secretKey)) {
139
+ return __assign(__assign({}, defaultInfo), { secretId: config.auth.secretId, secretKey: config.auth.secretKey, secretType: constants_1.SECRET_TYPE.SECRET });
140
+ }
141
+ var secretEnv = (0, utils_1.getEnv)();
142
+ var TENCENTCLOUD_SECRETID = secretEnv.TENCENTCLOUD_SECRETID;
143
+ var TENCENTCLOUD_SECRETKEY = secretEnv.TENCENTCLOUD_SECRETKEY;
144
+ var TENCENTCLOUD_SESSIONTOKEN = secretEnv.TENCENTCLOUD_SESSIONTOKEN;
145
+ var CLOUDBASE_APIKEY = secretEnv.CLOUDBASE_APIKEY;
146
+ if (CLOUDBASE_APIKEY) {
147
+ return __assign(__assign({}, defaultInfo), { accessKey: CLOUDBASE_APIKEY });
148
+ }
149
+ if (TENCENTCLOUD_SECRETID && TENCENTCLOUD_SECRETKEY) {
150
+ return __assign(__assign({}, defaultInfo), { secretId: TENCENTCLOUD_SECRETID, secretKey: TENCENTCLOUD_SECRETKEY, sessionToken: TENCENTCLOUD_SESSIONTOKEN || '', secretType: constants_1.SECRET_TYPE.SESSION_SECRET });
151
+ }
152
+ if ((_c = config === null || config === void 0 ? void 0 : config.context) === null || _c === void 0 ? void 0 : _c.extendedContext) {
153
+ var extendedContext = config.context.extendedContext;
154
+ if (!env) {
155
+ env = extendedContext.envId || '';
156
+ }
157
+ return __assign(__assign({}, defaultInfo), { secretId: ((_d = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _d === void 0 ? void 0 : _d.secretId) || '', secretKey: ((_f = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _f === void 0 ? void 0 : _f.secretKey) || '', sessionToken: ((_g = extendedContext === null || extendedContext === void 0 ? void 0 : extendedContext.tmpSecret) === null || _g === void 0 ? void 0 : _g.token) || '' });
158
+ }
159
+ return __assign({}, defaultInfo);
160
+ };
161
+ exports.getSecretInfo = getSecretInfo;
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWJzL2FkYXB0ZXItbm9kZS9jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR0EseUNBQWdEO0FBQ2hELGlDQUE4QztBQVk5QyxTQUFnQixZQUFZLENBQUMsT0FBc0I7SUFDakQsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRLEVBQUU7UUFDL0IsNEJBQVcsaUJBQUssQ0FBQyxlQUFlLEtBQUUsT0FBTyxFQUFFLGlCQUFpQixJQUFFO0tBQy9EO0lBRUQsSUFBTSxXQUFXLEdBQVEsRUFBRSxDQUFBO0lBR3pCLElBQUEsa0JBQWtCLEdBU2hCLE9BQU8sbUJBVFMsRUFDbEIsZ0JBQWdCLEdBUWQsT0FBTyxpQkFSTyxFQUNoQixVQUFVLEdBT1IsT0FBTyxXQVBDLEVBQ1YsZ0JBQWdCLEdBTWQsT0FBTyxpQkFOTyxFQUNoQixTQUFTLEdBS1AsT0FBTyxVQUxBLEVBQ1QsYUFBYSxHQUlYLE9BQU8sY0FKSSxFQUViLE9BQU8sR0FFTCxPQUFPLFFBRkYsRUFDUCxXQUFXLEdBQ1QsT0FBTyxZQURFLENBQ0Y7SUFFWCxJQUFJO1FBQ0YsV0FBVyxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQTtRQUNoRCxXQUFXLENBQUMsWUFBWSxHQUFHLGdCQUFnQixDQUFBO1FBQzNDLFdBQVcsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFBO1FBQ2xDLFdBQVcsQ0FBQyxlQUFlLEdBQUcsZ0JBQWdCLENBQUE7UUFDOUMsV0FBVyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7UUFDakMsV0FBVyxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUE7UUFFeEMsSUFBSSxXQUFXLEVBQUU7WUFFZixXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7U0FDbEQ7YUFBTTtZQUlMLElBQU0sWUFBWSxHQUFRLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDN0MsSUFBTSxlQUFlLEdBQVEsRUFBRSxDQUFBO1lBRy9CLEtBQUssSUFBTSxDQUFDLElBQUksWUFBWSxFQUFFO2dCQUM1QixJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7b0JBRWpDLElBQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7b0JBQy9DLElBQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFBO29CQUNoRCxJQUFJLEtBQUssR0FBUSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQTtvQkFHdEQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDM0IsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7cUJBQ3pCO29CQUNELGVBQWUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUE7aUJBQzdCO2FBQ0Y7WUFFRCxXQUFXLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQTtTQUN0QztLQUNGO0lBQUMsT0FBTyxJQUFTLEVBQUU7UUFDbEIsbUJBQVcsaUJBQUssQ0FBQyxlQUFlLEVBQUU7S0FDbkM7SUFFRCxPQUFPLFdBQVcsQ0FBQTtBQUNwQixDQUFDO0FBNURELG9DQTREQztBQVlNLElBQU0sbUJBQW1CLEdBQUcsVUFBQyxPQUF1QjtJQUV6RCxJQUFJLElBQUEsb0JBQVksR0FBRSxFQUFFO1FBQ2xCLElBQUksQ0FBQyxJQUFBLGNBQU0sRUFBQyxxQkFBcUIsQ0FBQyxFQUFFO1lBQ2xDLE9BQU8sQ0FBQyxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQTtTQUN4RTtRQUNELElBQUksQ0FBQyxJQUFBLGNBQU0sRUFBQyxlQUFlLENBQUMsRUFBRTtZQUM1QixPQUFPLENBQUMsS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUE7U0FDbEU7S0FDRjtJQUdELElBQU0sTUFBTSxHQUFHLElBQUEsY0FBTSxHQUFFLENBQUE7SUFDdkIsSUFBTSxpQkFBaUIsR0FBUTtRQUM3QixXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7UUFDL0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZO1FBQ2pDLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtRQUNuQyxtQkFBbUIsRUFBRSxNQUFNLENBQUMsbUJBQW1CO1FBQy9DLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxxQkFBcUI7UUFDbkQsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLHNCQUFzQjtRQUNyRCx5QkFBeUIsRUFBRSxNQUFNLENBQUMseUJBQXlCO1FBQzNELGVBQWUsRUFBRSxNQUFNLENBQUMsZUFBZTtRQUN2Qyx1QkFBdUIsRUFBRSxNQUFNLENBQUMsdUJBQXVCO1FBQ3ZELFdBQVcsRUFBRSxNQUFNLENBQUMsV0FBVztRQUMvQixhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWE7UUFDbkMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtRQUN6QyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO1FBQ3pDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztLQUM1QixDQUFBO0lBR0QsSUFBSSxjQUFjLEdBQVEsRUFBRSxDQUFBO0lBQzVCLElBQUksT0FBTyxFQUFFO1FBQ0wsSUFBQSxLQUEyQixZQUFZLENBQUMsT0FBTyxDQUFDLEVBQTlDLFdBQVcsaUJBQUEsRUFBRSxPQUFPLGFBQTBCLENBQUE7UUFDdEQsY0FBYyxHQUFHLFdBQVcsSUFBSSxPQUFPLElBQUksRUFBRSxDQUFBO0tBQzlDO0lBR0QsSUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQTtJQUNqRixJQUFNLGFBQWEsR0FBRyxjQUFjLENBQUMsZUFBZSxJQUFJLE1BQU0sQ0FBQyxlQUFlLENBQUE7SUFFOUUsSUFBSSxjQUFjLEVBQUU7UUFDbEIsSUFBSTtZQUNGLElBQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDN0MsS0FBbUIsVUFBVyxFQUFYLDJCQUFXLEVBQVgseUJBQVcsRUFBWCxJQUFXLEVBQUU7Z0JBQTNCLElBQU0sSUFBSSxvQkFBQTtnQkFDYixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksSUFBQSxjQUFNLEVBQUMsSUFBSSxDQUFDLENBQUE7YUFDL0Q7U0FDRjtRQUFDLE9BQU8sRUFBRSxFQUFFO1NBRVo7S0FDRjtJQUVELElBQUksYUFBYSxFQUFFO1FBQ2pCLElBQUk7WUFDRixJQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzNDLEtBQW1CLFVBQVUsRUFBVix5QkFBVSxFQUFWLHdCQUFVLEVBQVYsSUFBVSxFQUFFO2dCQUExQixJQUFNLElBQUksbUJBQUE7Z0JBQ2IsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUEsY0FBTSxFQUFDLElBQUksQ0FBQyxDQUFBO2FBQy9EO1NBQ0Y7UUFBQyxPQUFPLEVBQUUsRUFBRTtTQUVaO0tBQ0Y7SUFHRCxJQUFNLFVBQVUseUJBQVEsaUJBQWlCLEdBQUssY0FBYyxDQUFFLENBQUE7SUFFOUQsSUFBTSxZQUFZLEdBQVEsRUFBRSxDQUFBO0lBQzVCLEtBQUssSUFBTSxHQUFHLElBQUksVUFBVSxFQUFFO1FBQzVCLElBQUksVUFBVSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUNqQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQ3BDO0tBQ0Y7SUFFRCxPQUFPLFlBQVksQ0FBQTtBQUNyQixDQUFDLENBQUE7QUExRVksUUFBQSxtQkFBbUIsdUJBMEUvQjtBQUdVLFFBQUEsV0FBVyxHQUFxQixFQUFpQyxDQUFBO0FBTXJFLElBQU0sYUFBYSxHQUFHLFVBQUMsTUFBeUI7O0lBQ3JELG1CQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBRWhELElBQUEsS0FBNkIsSUFBQSwyQkFBbUIsR0FBRSxFQUFoRCxPQUFPLGFBQUEsRUFBRSxhQUFhLG1CQUEwQixDQUFBO0lBRXhELElBQUksR0FBRyxHQUFHLENBQUEsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLEdBQUcsS0FBSSxPQUFPLElBQUksYUFBYSxJQUFJLEVBQUUsQ0FBQTtJQUN2RCxJQUFNLFdBQVcsR0FBRztRQUNsQixHQUFHLEtBQUE7UUFDSCxRQUFRLEVBQUUsRUFBRTtRQUNaLFNBQVMsRUFBRSxFQUFFO1FBQ2IsWUFBWSxFQUFFLEVBQUU7UUFDaEIsU0FBUyxFQUFFLEVBQUU7UUFDYixVQUFVLEVBQUUsRUFBRTtLQUNmLENBQUE7SUFFRCxJQUFJLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxTQUFTLEVBQUU7UUFDckIsT0FBTyxXQUFXLENBQUE7S0FDbkI7SUFFRCxJQUFJLENBQUEsTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSwwQ0FBRSxRQUFRLE1BQUksTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsSUFBSSwwQ0FBRSxTQUFTLENBQUEsRUFBRTtRQUNyRCw2QkFDSyxXQUFXLEtBQ2QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUM5QixTQUFTLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQ2hDLFVBQVUsRUFBRSx1QkFBVyxDQUFDLE1BQU0sSUFDL0I7S0FDRjtJQUVELElBQU0sU0FBUyxHQUFHLElBQUEsY0FBTSxHQUFFLENBQUE7SUFDbEIsSUFBQSxxQkFBcUIsR0FBSyxTQUFTLHNCQUFkLENBQWM7SUFDbkMsSUFBQSxzQkFBc0IsR0FBSyxTQUFTLHVCQUFkLENBQWM7SUFDcEMsSUFBQSx5QkFBeUIsR0FBSyxTQUFTLDBCQUFkLENBQWM7SUFDdkMsSUFBQSxnQkFBZ0IsR0FBSyxTQUFTLGlCQUFkLENBQWM7SUFFdEMsSUFBSSxnQkFBZ0IsRUFBRTtRQUNwQiw2QkFDSyxXQUFXLEtBQ2QsU0FBUyxFQUFFLGdCQUFnQixJQUM1QjtLQUNGO0lBRUQsSUFBSSxxQkFBcUIsSUFBSSxzQkFBc0IsRUFBRTtRQUNuRCw2QkFDSyxXQUFXLEtBQ2QsUUFBUSxFQUFFLHFCQUFxQixFQUMvQixTQUFTLEVBQUUsc0JBQXNCLEVBQ2pDLFlBQVksRUFBRSx5QkFBeUIsSUFBSSxFQUFFLEVBQzdDLFVBQVUsRUFBRSx1QkFBVyxDQUFDLGNBQWMsSUFDdkM7S0FDRjtJQUVELElBQUksTUFBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsT0FBTywwQ0FBRSxlQUFlLEVBQUU7UUFDNUIsSUFBQSxlQUFlLEdBQUssTUFBTSxDQUFDLE9BQU8sZ0JBQW5CLENBQW1CO1FBQzFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixHQUFHLEdBQUcsZUFBZSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7U0FDbEM7UUFFRCw2QkFDSyxXQUFXLEtBQ2QsUUFBUSxFQUFFLENBQUEsTUFBQSxlQUFlLGFBQWYsZUFBZSx1QkFBZixlQUFlLENBQUUsU0FBUywwQ0FBRSxRQUFRLEtBQUksRUFBRSxFQUNwRCxTQUFTLEVBQUUsQ0FBQSxNQUFBLGVBQWUsYUFBZixlQUFlLHVCQUFmLGVBQWUsQ0FBRSxTQUFTLDBDQUFFLFNBQVMsS0FBSSxFQUFFLEVBQ3RELFlBQVksRUFBRSxDQUFBLE1BQUEsZUFBZSxhQUFmLGVBQWUsdUJBQWYsZUFBZSxDQUFFLFNBQVMsMENBQUUsS0FBSyxLQUFJLEVBQUUsSUFDdEQ7S0FDRjtJQUVELG9CQUFZLFdBQVcsRUFBRTtBQUMzQixDQUFDLENBQUE7QUFsRVksUUFBQSxhQUFhLGlCQWtFekIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tbXV0YWJsZS1leHBvcnRzICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb24gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4ICovXG5pbXBvcnQgeyBFUlJPUiwgU0VDUkVUX1RZUEUgfSBmcm9tICcuL2NvbnN0YW50cydcbmltcG9ydCB7IGNoZWNrSXNJblNjZiwgZ2V0RW52IH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB0eXBlIHsgSUNvbnRleHRQYXJhbSwgSUNvbXBsZXRlQ2xvdWRiYXNlQ29udGV4dCB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBJQ2xvdWRiYXNlQ29uZmlnIH0gZnJvbSAnQGNsb3VkYmFzZS90eXBlcydcblxuLyoqXG4gKiDop6PmnpDlubbmoKHpqozkupHlh73mlbDlhaXlj6PnmoQgQ29udGV4dCDlj4LmlbBcbiAqIOWwhuS4i+WIkue6v+WRveWQjeeahOWtl+autei9rOS4uumpvOWzsOagvOW8j++8jOW5tuino+aekOeOr+Wig+WPmOmHj1xuICpcbiAqIEBwYXJhbSBjb250ZXh0IC0g5LqR5Ye95pWw5YWl5Y+j5Lyg5YWl55qEIGNvbnRleHQg5a+56LGhXG4gKiBAcmV0dXJucyDop6PmnpDlkI7nmoTkuIrkuIvmloflr7nosaHvvIzljIXlkKsgZW52aXJvbm1lbnTvvIjmlrDmnrbmnoTvvInmiJYgZW52aXJvbu+8iOiAgeaetuaehO+8iVxuICogQHRocm93cyBJTlZBTElEX0NPTlRFWFQgLSBjb250ZXh0IOS4jeaYr+WvueixoeaIluino+aekOWksei0peaXtlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb250ZXh0KGNvbnRleHQ6IElDb250ZXh0UGFyYW0pIHtcbiAgaWYgKHR5cGVvZiBjb250ZXh0ICE9PSAnb2JqZWN0Jykge1xuICAgIHRocm93IHsgLi4uRVJST1IuSU5WQUxJRF9DT05URVhULCBtZXNzYWdlOiAnY29udGV4dCDlv4XpobvkuLrlr7nosaHnsbvlnosnIH1cbiAgfVxuXG4gIGNvbnN0IHBhcnNlUmVzdWx0OiBhbnkgPSB7fVxuXG4gIGNvbnN0IHtcbiAgICBtZW1vcnlfbGltaXRfaW5fbWIsXG4gICAgdGltZV9saW1pdF9pbl9tcyxcbiAgICByZXF1ZXN0X2lkLFxuICAgIGZ1bmN0aW9uX3ZlcnNpb24sXG4gICAgbmFtZXNwYWNlLFxuICAgIGZ1bmN0aW9uX25hbWUsXG5cbiAgICBlbnZpcm9uLFxuICAgIGVudmlyb25tZW50LFxuICB9ID0gY29udGV4dFxuXG4gIHRyeSB7XG4gICAgcGFyc2VSZXN1bHQubWVtb3J5TGltaXRJbk1iID0gbWVtb3J5X2xpbWl0X2luX21iXG4gICAgcGFyc2VSZXN1bHQudGltZUxpbWl0SW5zID0gdGltZV9saW1pdF9pbl9tc1xuICAgIHBhcnNlUmVzdWx0LnJlcXVlc3RJZCA9IHJlcXVlc3RfaWRcbiAgICBwYXJzZVJlc3VsdC5mdW5jdGlvblZlcnNpb24gPSBmdW5jdGlvbl92ZXJzaW9uXG4gICAgcGFyc2VSZXN1bHQubmFtZXNwYWNlID0gbmFtZXNwYWNlXG4gICAgcGFyc2VSZXN1bHQuZnVuY3Rpb25OYW1lID0gZnVuY3Rpb25fbmFtZVxuXG4gICAgaWYgKGVudmlyb25tZW50KSB7XG4gICAgICAvLyDmlrDmnrbmnoTvvJplbnZpcm9ubWVudCDkuLogSlNPTiDlrZfnrKbkuLLvvIznm7TmjqXop6PmnpBcbiAgICAgIHBhcnNlUmVzdWx0LmVudmlyb25tZW50ID0gSlNPTi5wYXJzZShlbnZpcm9ubWVudClcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gVE9ETzog6ICD6JmR56e76Zmk6ICB5p625p6E55qE5YW85a656YC76L6RXG4gICAgICAvLyDogIHmnrbmnoTvvJplbnZpcm9uIOS4uuWIhuWPt+WIhumalOeahCBrZXk9dmFsdWUg5a2X56ym5LiyXG4gICAgICAvLyDlrZjlnKggYnVn77yadmFsdWUg5ZCr54m55q6K5a2X56ym5pe25Y+v6IO95b2x5ZON6Kej5p6QXG4gICAgICBjb25zdCBwYXJzZUVudmlyb246IGFueSA9IGVudmlyb24/LnNwbGl0KCc7JylcbiAgICAgIGNvbnN0IHBhcnNlRW52aXJvbk9iajogYW55ID0ge31cblxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1mb3ItaW4tYXJyYXlcbiAgICAgIGZvciAoY29uc3QgaSBpbiBwYXJzZUVudmlyb24pIHtcbiAgICAgICAgaWYgKHBhcnNlRW52aXJvbltpXS5pbmNsdWRlcygnPScpKSB7XG4gICAgICAgICAgLy8g5Y+q5oyJ56ys5LiA5LiqID0g5YiH5Ymy77yM5L+d55WZIHZhbHVlIOS4reeahCA9XG4gICAgICAgICAgY29uc3QgZXF1YWxJbmRleCA9IHBhcnNlRW52aXJvbltpXS5pbmRleE9mKCc9JylcbiAgICAgICAgICBjb25zdCBrZXkgPSBwYXJzZUVudmlyb25baV0uc2xpY2UoMCwgZXF1YWxJbmRleClcbiAgICAgICAgICBsZXQgdmFsdWU6IGFueSA9IHBhcnNlRW52aXJvbltpXS5zbGljZShlcXVhbEluZGV4ICsgMSlcblxuICAgICAgICAgIC8vIHZhbHVlIOWQq+mAl+WPt+aXtuinhuS4uuaVsOe7hFxuICAgICAgICAgIGlmICh2YWx1ZS5pbmRleE9mKCcsJykgPj0gMCkge1xuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5zcGxpdCgnLCcpXG4gICAgICAgICAgfVxuICAgICAgICAgIHBhcnNlRW52aXJvbk9ialtrZXldID0gdmFsdWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBwYXJzZVJlc3VsdC5lbnZpcm9uID0gcGFyc2VFbnZpcm9uT2JqXG4gICAgfVxuICB9IGNhdGNoIChfZXJyOiBhbnkpIHtcbiAgICB0aHJvdyB7IC4uLkVSUk9SLklOVkFMSURfQ09OVEVYVCB9XG4gIH1cblxuICByZXR1cm4gcGFyc2VSZXN1bHRcbn1cblxuLyoqXG4gKiDojrflj5blvZPliY3kupHlh73mlbDlhoXnmoTmiYDmnInnjq/looPlj5jph49cbiAqIOe7n+S4gOS7jiBwcm9jZXNzLmVudiDlkowgY29udGV4dCDkuKTkuKrmnaXmupDlkIjlubblj5blgLxcbiAqXG4gKiDlj5blgLzkvJjlhYjnuqfvvJpjb250ZXh0ID4gcHJvY2Vzcy5lbnZcbiAqIOmAmui/hyBUQ0JfQ09OVEVYVF9LRVlTIC8gV1hfQ09OVEVYVF9LRVlTIOWKqOaAgeaJqeWxlemcgOimgeivu+WPlueahOeOr+Wig+WPmOmHj+WIl+ihqFxuICpcbiAqIEBwYXJhbSBjb250ZXh0IC0g5Y+v6YCJ77yM5LqR5Ye95pWw5YWl5Y+j55qEIGNvbnRleHQg5Y+C5pWwXG4gKiBAcmV0dXJucyDlkIjlubblkI7nmoTlrozmlbTnjq/looPlj5jph4/kuIrkuIvmlodcbiAqL1xuZXhwb3J0IGNvbnN0IGdldENsb3VkYmFzZUNvbnRleHQgPSAoY29udGV4dD86IElDb250ZXh0UGFyYW0pOiBJQ29tcGxldGVDbG91ZGJhc2VDb250ZXh0ID0+IHtcbiAgLy8g5LqR5Ye95pWw546v5aKD5LiL5qCh6aqM5b+F6KaB546v5aKD5Y+Y6YePXG4gIGlmIChjaGVja0lzSW5TY2YoKSkge1xuICAgIGlmICghZ2V0RW52KCdURU5DRU5UQ0xPVURfUkVHSU9OJykpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUQ0JdW0VSUk9SXSBtaXNzaW5nIGBURU5DRU5UQ0xPVURfUkVHSU9OYCBlbnZpcm9ubWVudCcpXG4gICAgfVxuICAgIGlmICghZ2V0RW52KCdTQ0ZfTkFNRVNQQUNFJykpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1tUQ0JdW0VSUk9SXSBtaXNzaW5nIGBTQ0ZfTkFNRVNQQUNFYCBlbnZpcm9ubWVudCcpXG4gICAgfVxuICB9XG5cbiAgLy8g56ys5LiA5q2l77ya5LuOIHByb2Nlc3MuZW52IOivu+WPluWfuuehgOeOr+Wig+WPmOmHj1xuICBjb25zdCBlbnZPYmogPSBnZXRFbnYoKVxuICBjb25zdCBlbnZGcm9tUHJvY2Vzc0VudjogYW55ID0ge1xuICAgIFRSSUdHRVJfU1JDOiBlbnZPYmouVFJJR0dFUl9TUkMsXG4gICAgX1NDRl9UQ0JfTE9HOiBlbnZPYmouX1NDRl9UQ0JfTE9HLFxuICAgIFNDRl9OQU1FU1BBQ0U6IGVudk9iai5TQ0ZfTkFNRVNQQUNFLFxuICAgIFRFTkNFTlRDTE9VRF9SVU5FTlY6IGVudk9iai5URU5DRU5UQ0xPVURfUlVORU5WLFxuICAgIFRFTkNFTlRDTE9VRF9TRUNSRVRJRDogZW52T2JqLlRFTkNFTlRDTE9VRF9TRUNSRVRJRCxcbiAgICBURU5DRU5UQ0xPVURfU0VDUkVUS0VZOiBlbnZPYmouVEVOQ0VOVENMT1VEX1NFQ1JFVEtFWSxcbiAgICBURU5DRU5UQ0xPVURfU0VTU0lPTlRPS0VOOiBlbnZPYmouVEVOQ0VOVENMT1VEX1NFU1NJT05UT0tFTixcbiAgICBXWF9DT05URVhUX0tFWVM6IGVudk9iai5XWF9DT05URVhUX0tFWVMsXG4gICAgV1hfVFJJR0dFUl9BUElfVE9LRU5fVjA6IGVudk9iai5XWF9UUklHR0VSX0FQSV9UT0tFTl9WMCxcbiAgICBXWF9DTElFTlRJUDogZW52T2JqLldYX0NMSUVOVElQLFxuICAgIFdYX0NMSUVOVElQVjY6IGVudk9iai5XWF9DTElFTlRJUFY2LFxuICAgIFRDQl9DT05URVhUX0tFWVM6IGVudk9iai5UQ0JfQ09OVEVYVF9LRVlTLFxuICAgIFRDQl9DT05URVhUX0NORkc6IGVudk9iai5UQ0JfQ09OVEVYVF9DTkZHLFxuICAgIExPR0lOVFlQRTogZW52T2JqLkxPR0lOVFlQRSxcbiAgfVxuXG4gIC8vIOesrOS6jOatpe+8muS7jiBjb250ZXh0IOS4reino+aekOeOr+Wig+WPmOmHj1xuICBsZXQgZW52RnJvbUNvbnRleHQ6IGFueSA9IHt9XG4gIGlmIChjb250ZXh0KSB7XG4gICAgY29uc3QgeyBlbnZpcm9ubWVudCwgZW52aXJvbiB9ID0gcGFyc2VDb250ZXh0KGNvbnRleHQpXG4gICAgZW52RnJvbUNvbnRleHQgPSBlbnZpcm9ubWVudCB8fCBlbnZpcm9uIHx8IHt9XG4gIH1cblxuICAvLyDnrKzkuInmraXvvJrmoLnmja4gQ09OVEVYVF9LRVlTIOWKqOaAgeaJqeWxleWPmOmHj+WIl+ihqO+8iOS8mOWFiOWPliBjb250ZXh0IOS4reeahOWAvO+8iVxuICBjb25zdCB0Y2JDb250ZXh0S2V5cyA9IGVudkZyb21Db250ZXh0LlRDQl9DT05URVhUX0tFWVMgfHwgZW52T2JqLlRDQl9DT05URVhUX0tFWVNcbiAgY29uc3Qgd3hDb250ZXh0S2V5cyA9IGVudkZyb21Db250ZXh0LldYX0NPTlRFWFRfS0VZUyB8fCBlbnZPYmouV1hfQ09OVEVYVF9LRVlTXG5cbiAgaWYgKHRjYkNvbnRleHRLZXlzKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHRjYktleXNMaXN0ID0gdGNiQ29udGV4dEtleXMuc3BsaXQoJywnKVxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRjYktleXNMaXN0KSB7XG4gICAgICAgIGVudkZyb21Qcm9jZXNzRW52W2l0ZW1dID0gZW52RnJvbUNvbnRleHRbaXRlbV0gfHwgZ2V0RW52KGl0ZW0pXG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgaWYgKHd4Q29udGV4dEtleXMpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgd3hLZXlzTGlzdCA9IHd4Q29udGV4dEtleXMuc3BsaXQoJywnKVxuICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHd4S2V5c0xpc3QpIHtcbiAgICAgICAgZW52RnJvbVByb2Nlc3NFbnZbaXRlbV0gPSBlbnZGcm9tQ29udGV4dFtpdGVtXSB8fCBnZXRFbnYoaXRlbSlcbiAgICAgIH1cbiAgICB9IGNhdGNoIChfZSkge1xuICAgICAgLy9cbiAgICB9XG4gIH1cblxuICAvLyDnrKzlm5vmraXvvJrlkIjlubbmiYDmnInmnaXmupDvvIxjb250ZXh0IOeahOWAvOimhuebliBwcm9jZXNzLmVudu+8jOi/h+a7pCB1bmRlZmluZWRcbiAgY29uc3QgYWxsQ29udGV4dCA9IHsgLi4uZW52RnJvbVByb2Nlc3NFbnYsIC4uLmVudkZyb21Db250ZXh0IH1cblxuICBjb25zdCBmaW5hbENvbnRleHQ6IGFueSA9IHt9XG4gIGZvciAoY29uc3Qga2V5IGluIGFsbENvbnRleHQpIHtcbiAgICBpZiAoYWxsQ29udGV4dFtrZXldICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGZpbmFsQ29udGV4dFtrZXldID0gYWxsQ29udGV4dFtrZXldXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZpbmFsQ29udGV4dFxufVxuXG4vKiog57yT5a2YIGV4dGVuZGVkQ29udGV4dO+8jOS+m+WFtuS7luaooeWdl+ivu+WPlu+8iOWmgiB0b29sLnRzIOS4reiOt+WPliB1c2VySWTvvIkgKi9cbmV4cG9ydCBsZXQgSU5JVF9DT05GSUc6IElDbG91ZGJhc2VDb25maWcgPSB7fSBhcyB1bmtub3duIGFzIElDbG91ZGJhc2VDb25maWdcblxuLyoqXG4gKiDku47njq/looPlj5jph4/kuK3ojrflj5bohb7orq/kupHkuLTml7blr4bpkqXkv6Hmga9cbiAqIOeUqOS6jiBBUEkg6K+35rGC562+5ZCNXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRTZWNyZXRJbmZvID0gKGNvbmZpZz86IElDbG91ZGJhc2VDb25maWcpID0+IHtcbiAgSU5JVF9DT05GSUcgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbmZpZyB8fCB7fSkpXG5cbiAgY29uc3QgeyBUQ0JfRU5WLCBTQ0ZfTkFNRVNQQUNFIH0gPSBnZXRDbG91ZGJhc2VDb250ZXh0KClcblxuICBsZXQgZW52ID0gY29uZmlnPy5lbnYgfHwgVENCX0VOViB8fCBTQ0ZfTkFNRVNQQUNFIHx8ICcnXG4gIGNvbnN0IGRlZmF1bHRJbmZvID0ge1xuICAgIGVudixcbiAgICBzZWNyZXRJZDogJycsXG4gICAgc2VjcmV0S2V5OiAnJyxcbiAgICBzZXNzaW9uVG9rZW46ICcnLFxuICAgIGFjY2Vzc0tleTogJycsXG4gICAgc2VjcmV0VHlwZTogJycsXG4gIH1cblxuICBpZiAoY29uZmlnPy5hY2Nlc3NLZXkpIHtcbiAgICByZXR1cm4gZGVmYXVsdEluZm9cbiAgfVxuXG4gIGlmIChjb25maWc/LmF1dGg/LnNlY3JldElkICYmIGNvbmZpZz8uYXV0aD8uc2VjcmV0S2V5KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgc2VjcmV0SWQ6IGNvbmZpZy5hdXRoLnNlY3JldElkLFxuICAgICAgc2VjcmV0S2V5OiBjb25maWcuYXV0aC5zZWNyZXRLZXksXG4gICAgICBzZWNyZXRUeXBlOiBTRUNSRVRfVFlQRS5TRUNSRVQsXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2VjcmV0RW52ID0gZ2V0RW52KClcbiAgY29uc3QgeyBURU5DRU5UQ0xPVURfU0VDUkVUSUQgfSA9IHNlY3JldEVudlxuICBjb25zdCB7IFRFTkNFTlRDTE9VRF9TRUNSRVRLRVkgfSA9IHNlY3JldEVudlxuICBjb25zdCB7IFRFTkNFTlRDTE9VRF9TRVNTSU9OVE9LRU4gfSA9IHNlY3JldEVudlxuICBjb25zdCB7IENMT1VEQkFTRV9BUElLRVkgfSA9IHNlY3JldEVudlxuXG4gIGlmIChDTE9VREJBU0VfQVBJS0VZKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgYWNjZXNzS2V5OiBDTE9VREJBU0VfQVBJS0VZLFxuICAgIH1cbiAgfVxuXG4gIGlmIChURU5DRU5UQ0xPVURfU0VDUkVUSUQgJiYgVEVOQ0VOVENMT1VEX1NFQ1JFVEtFWSkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5kZWZhdWx0SW5mbyxcbiAgICAgIHNlY3JldElkOiBURU5DRU5UQ0xPVURfU0VDUkVUSUQsXG4gICAgICBzZWNyZXRLZXk6IFRFTkNFTlRDTE9VRF9TRUNSRVRLRVksXG4gICAgICBzZXNzaW9uVG9rZW46IFRFTkNFTlRDTE9VRF9TRVNTSU9OVE9LRU4gfHwgJycsXG4gICAgICBzZWNyZXRUeXBlOiBTRUNSRVRfVFlQRS5TRVNTSU9OX1NFQ1JFVCxcbiAgICB9XG4gIH1cblxuICBpZiAoY29uZmlnPy5jb250ZXh0Py5leHRlbmRlZENvbnRleHQpIHtcbiAgICBjb25zdCB7IGV4dGVuZGVkQ29udGV4dCB9ID0gY29uZmlnLmNvbnRleHRcbiAgICBpZiAoIWVudikge1xuICAgICAgZW52ID0gZXh0ZW5kZWRDb250ZXh0LmVudklkIHx8ICcnXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRJbmZvLFxuICAgICAgc2VjcmV0SWQ6IGV4dGVuZGVkQ29udGV4dD8udG1wU2VjcmV0Py5zZWNyZXRJZCB8fCAnJyxcbiAgICAgIHNlY3JldEtleTogZXh0ZW5kZWRDb250ZXh0Py50bXBTZWNyZXQ/LnNlY3JldEtleSB8fCAnJyxcbiAgICAgIHNlc3Npb25Ub2tlbjogZXh0ZW5kZWRDb250ZXh0Py50bXBTZWNyZXQ/LnRva2VuIHx8ICcnLFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7IC4uLmRlZmF1bHRJbmZvIH1cbn1cbiJdfQ==
@@ -0,0 +1,23 @@
1
+ import { SDKAdapterInterface } from '@cloudbase/adapter-interface';
2
+ import { ICloudbaseConfig } from '@cloudbase/types';
3
+ export { NodeRequest } from './request';
4
+ export { parseQueryString, createWebStreamFromNodeReadableStream } from './utils';
5
+ export type { ICreateTicketOpts, IGetUserInfoResult, IGetEndUserInfoResult, IUserInfoQuery, IContextParam, ICompleteCloudbaseContext, } from './types';
6
+ declare function isMatch(): boolean;
7
+ declare function genAdapter(options: any): SDKAdapterInterface & {
8
+ getSecretInfo: (config?: ICloudbaseConfig) => {
9
+ env: string;
10
+ secretId: string;
11
+ secretKey: string;
12
+ sessionToken: string;
13
+ accessKey: string;
14
+ secretType: string;
15
+ };
16
+ nodeTool: (app: any, config: ICloudbaseConfig) => void;
17
+ };
18
+ declare const adapter: {
19
+ genAdapter: typeof genAdapter;
20
+ isMatch: typeof isMatch;
21
+ runtime: string;
22
+ };
23
+ export default adapter;