parse-server 7.0.0-alpha.9 → 7.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -11
- package/lib/AccountLockout.js +2 -3
- package/lib/Adapters/AdapterLoader.js +2 -3
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +2 -3
- package/lib/Adapters/Auth/AuthAdapter.js +2 -3
- package/lib/Adapters/Auth/janraincapture.js +1 -2
- package/lib/Adapters/Auth/ldap.js +2 -2
- package/lib/Adapters/Auth/mfa.js +2 -3
- package/lib/Adapters/Cache/InMemoryCache.js +2 -3
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +2 -3
- package/lib/Adapters/Cache/LRUCache.js +2 -3
- package/lib/Adapters/Cache/NullCacheAdapter.js +2 -3
- package/lib/Adapters/Cache/RedisCacheAdapter.js +2 -3
- package/lib/Adapters/Cache/SchemaCache.js +2 -3
- package/lib/Adapters/Email/MailAdapter.js +2 -3
- package/lib/Adapters/Files/FilesAdapter.js +2 -3
- package/lib/Adapters/Files/GridFSBucketAdapter.js +2 -3
- package/lib/Adapters/Logger/LoggerAdapter.js +2 -3
- package/lib/Adapters/Logger/WinstonLogger.js +5 -7
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +2 -3
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +2 -3
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +2 -3
- package/lib/Adapters/PubSub/PubSubAdapter.js +2 -3
- package/lib/Adapters/PubSub/RedisPubSub.js +6 -7
- package/lib/Adapters/Push/PushAdapter.js +2 -3
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +19 -10
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +6 -7
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +16 -13
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +5 -5
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +7 -12
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +2 -3
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +2 -3
- package/lib/Auth.js +5 -12
- package/lib/Config.js +10 -4
- package/lib/Controllers/AdaptableController.js +2 -3
- package/lib/Controllers/AnalyticsController.js +2 -3
- package/lib/Controllers/CacheController.js +2 -3
- package/lib/Controllers/DatabaseController.js +15 -13
- package/lib/Controllers/FilesController.js +2 -3
- package/lib/Controllers/HooksController.js +4 -5
- package/lib/Controllers/LiveQueryController.js +2 -3
- package/lib/Controllers/LoggerController.js +5 -9
- package/lib/Controllers/ParseGraphQLController.js +9 -13
- package/lib/Controllers/PushController.js +2 -3
- package/lib/Controllers/SchemaController.js +9 -14
- package/lib/Controllers/UserController.js +6 -8
- package/lib/Controllers/index.js +5 -5
- package/lib/Deprecator/Deprecations.js +1 -7
- package/lib/GraphQL/ParseGraphQLSchema.js +3 -3
- package/lib/GraphQL/ParseGraphQLServer.js +61 -30
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +3 -3
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +3 -3
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +87 -153
- package/lib/GraphQL/loaders/defaultRelaySchema.js +8 -9
- package/lib/GraphQL/loaders/filesMutations.js +55 -17
- package/lib/GraphQL/loaders/functionsMutations.js +7 -7
- package/lib/GraphQL/loaders/parseClassMutations.js +9 -7
- package/lib/GraphQL/loaders/parseClassQueries.js +3 -3
- package/lib/GraphQL/loaders/parseClassTypes.js +7 -7
- package/lib/GraphQL/loaders/schemaDirectives.js +2 -3
- package/lib/GraphQL/loaders/schemaMutations.js +3 -3
- package/lib/GraphQL/loaders/schemaQueries.js +3 -3
- package/lib/GraphQL/loaders/schemaTypes.js +32 -63
- package/lib/GraphQL/loaders/usersMutations.js +9 -7
- package/lib/GraphQL/parseGraphQLUtils.js +6 -4
- package/lib/GraphQL/transformers/constraintType.js +3 -3
- package/lib/GraphQL/transformers/inputType.js +3 -3
- package/lib/GraphQL/transformers/mutation.js +19 -14
- package/lib/GraphQL/transformers/outputType.js +3 -3
- package/lib/GraphQL/transformers/query.js +5 -5
- package/lib/GraphQL/transformers/schemaFields.js +5 -5
- package/lib/LiveQuery/ParseLiveQueryServer.js +3 -12
- package/lib/LiveQuery/ParsePubSub.js +2 -3
- package/lib/LiveQuery/RequestSchema.js +2 -19
- package/lib/Options/Definitions.js +11 -11
- package/lib/Options/docs.js +7 -7
- package/lib/Options/index.js +1 -1
- package/lib/Page.js +2 -3
- package/lib/ParseMessageQueue.js +2 -3
- package/lib/ParseServer.js +23 -16
- package/lib/ParseServerRESTController.js +6 -7
- package/lib/Push/PushWorker.js +4 -5
- package/lib/RestQuery.js +2 -3
- package/lib/RestWrite.js +7 -8
- package/lib/Routers/AggregateRouter.js +8 -5
- package/lib/Routers/AudiencesRouter.js +4 -5
- package/lib/Routers/ClassesRouter.js +6 -4
- package/lib/Routers/FeaturesRouter.js +3 -3
- package/lib/Routers/FilesRouter.js +5 -5
- package/lib/Routers/GlobalConfigRouter.js +4 -5
- package/lib/Routers/GraphQLRouter.js +4 -5
- package/lib/Routers/HooksRouter.js +4 -5
- package/lib/Routers/InstallationsRouter.js +2 -3
- package/lib/Routers/LogsRouter.js +4 -5
- package/lib/Routers/PagesRouter.js +2 -3
- package/lib/Routers/PublicAPIRouter.js +2 -3
- package/lib/Routers/PurgeRouter.js +4 -5
- package/lib/Routers/PushRouter.js +4 -5
- package/lib/Routers/RolesRouter.js +2 -3
- package/lib/Routers/SchemasRouter.js +5 -5
- package/lib/Routers/SecurityRouter.js +4 -5
- package/lib/Routers/SessionsRouter.js +2 -3
- package/lib/Routers/UsersRouter.js +22 -15
- package/lib/SchemaMigrations/DefinedSchemas.js +7 -7
- package/lib/Security/Check.js +2 -3
- package/lib/Security/CheckRunner.js +3 -3
- package/lib/StatusHandler.js +5 -5
- package/lib/TestUtils.js +2 -2
- package/lib/cache.js +3 -5
- package/lib/cli/definitions/parse-live-query-server.js +2 -3
- package/lib/cli/definitions/parse-server.js +2 -3
- package/lib/cli/utils/commander.js +2 -3
- package/lib/cli/utils/runner.js +1 -2
- package/lib/cloud-code/Parse.Cloud.js +9 -135
- package/lib/defaults.js +3 -5
- package/lib/index.js +6 -9
- package/lib/middlewares.js +8 -5
- package/lib/triggers.js +16 -8
- package/package.json +32 -32
|
@@ -13,11 +13,11 @@ var _node = _interopRequireDefault(require("parse/node"));
|
|
|
13
13
|
var _AccountLockout = _interopRequireDefault(require("../AccountLockout"));
|
|
14
14
|
var _Config = _interopRequireDefault(require("../Config"));
|
|
15
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
-
function ownKeys(
|
|
17
|
-
function _objectSpread(
|
|
16
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
17
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
18
18
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
19
|
-
function _toPropertyKey(
|
|
20
|
-
function _toPrimitive(
|
|
19
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
20
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
21
21
|
var RestQuery = require('../RestQuery');
|
|
22
22
|
var Auth = require('../Auth');
|
|
23
23
|
class UserController extends _AdaptableController.default {
|
|
@@ -251,7 +251,6 @@ class UserController extends _AdaptableController.default {
|
|
|
251
251
|
throw 'Trying to send a reset password but no adapter is set';
|
|
252
252
|
// TODO: No adapter?
|
|
253
253
|
}
|
|
254
|
-
|
|
255
254
|
let user;
|
|
256
255
|
if (this.config.passwordPolicy && this.config.passwordPolicy.resetTokenReuseIfValid && this.config.passwordPolicy.resetTokenValidityDuration) {
|
|
257
256
|
const results = await this.config.database.find('_User', {
|
|
@@ -361,6 +360,5 @@ function buildEmailLink(destination, username, token, config) {
|
|
|
361
360
|
return `${destination}?${usernameAndToken}`;
|
|
362
361
|
}
|
|
363
362
|
}
|
|
364
|
-
var _default = UserController;
|
|
365
|
-
exports.default = _default;
|
|
366
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvVXRpbHMiLCJyZXF1aXJlIiwiX3RyaWdnZXJzIiwiX0FkYXB0YWJsZUNvbnRyb2xsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX01haWxBZGFwdGVyIiwiX3Jlc3QiLCJfbm9kZSIsIl9BY2NvdW50TG9ja291dCIsIl9Db25maWciLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsImtleXMiLCJPYmplY3QiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJzeW1ib2xzIiwiZmlsdGVyIiwic3ltIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJ0YXJnZXQiLCJpIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwic291cmNlIiwiZm9yRWFjaCIsImtleSIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJhcmciLCJfdG9QcmltaXRpdmUiLCJTdHJpbmciLCJpbnB1dCIsImhpbnQiLCJwcmltIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJ1bmRlZmluZWQiLCJyZXMiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiUmVzdFF1ZXJ5IiwiQXV0aCIsIlVzZXJDb250cm9sbGVyIiwiQWRhcHRhYmxlQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWRhcHRlciIsImFwcElkIiwib3B0aW9ucyIsImNvbmZpZyIsIkNvbmZpZyIsImdldCIsInZhbGlkYXRlQWRhcHRlciIsInNob3VsZFZlcmlmeUVtYWlscyIsImV4cGVjdGVkQWRhcHRlclR5cGUiLCJNYWlsQWRhcHRlciIsInZlcmlmeVVzZXJFbWFpbHMiLCJzZXRFbWFpbFZlcmlmeVRva2VuIiwidXNlciIsInJlcSIsInN0b3JhZ2UiLCJzaG91bGRTZW5kRW1haWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9lbWFpbF92ZXJpZnlfdG9rZW4iLCJyYW5kb21TdHJpbmciLCJmaWVsZHNDaGFuZ2VkQnlUcmlnZ2VyIiwiaW5jbHVkZXMiLCJlbWFpbFZlcmlmaWVkIiwiZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQiLCJQYXJzZSIsIl9lbmNvZGUiLCJnZW5lcmF0ZUVtYWlsVmVyaWZ5VG9rZW5FeHBpcmVzQXQiLCJ2ZXJpZnlFbWFpbCIsInVzZXJuYW1lIiwidG9rZW4iLCJxdWVyeSIsInVwZGF0ZUZpZWxkcyIsIl9fb3AiLCIkZ3QiLCJEYXRlIiwibWFpbnRlbmFuY2VBdXRoIiwibWFpbnRlbmFuY2UiLCJmaW5kVXNlckZvckVtYWlsVmVyaWZpY2F0aW9uIiwibWV0aG9kIiwiTWV0aG9kIiwiYXV0aCIsImNsYXNzTmFtZSIsInJlc3RXaGVyZSIsImV4ZWN1dGUiLCJ0aGVuIiwicmVzdWx0IiwicmVzdWx0cyIsIm9iamVjdElkIiwicmVzdCIsInVwZGF0ZSIsImNoZWNrUmVzZXRUb2tlblZhbGlkaXR5IiwiZGF0YWJhc2UiLCJmaW5kIiwiX3BlcmlzaGFibGVfdG9rZW4iLCJsaW1pdCIsInBhc3N3b3JkUG9saWN5IiwicmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJleHBpcmVzRGF0ZSIsIl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQiLCJfX3R5cGUiLCJpc28iLCJnZXRVc2VySWZOZWVkZWQiLCJ3aGVyZSIsImVtYWlsIiwicnVuQmVmb3JlRmluZCIsIm1hc3RlciIsImVuY29kZVVSSUNvbXBvbmVudCIsImZldGNoZWRVc2VyIiwic2VuZFVzZXJFbWFpbFZlcmlmaWNhdGlvbiIsIl9yZXEkYXV0aCIsInJlc3BvbnNlIiwiZnJvbUpTT04iLCJpc01hc3RlciIsImxpbmsiLCJidWlsZEVtYWlsTGluayIsInZlcmlmeUVtYWlsVVJMIiwiYXBwTmFtZSIsImluZmxhdGUiLCJzZW5kTWFpbCIsImRlZmF1bHRWZXJpZmljYXRpb25FbWFpbCIsInJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuIiwiaW5zdGFsbGF0aW9uSWQiLCJpcCIsImVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQiLCJzaG91bGRTZW5kIiwiVXNlciIsImFzc2lnbiIsInJlc2VuZFJlcXVlc3QiLCJyZXNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9yZXEkYXV0aDIiLCJfcmVxJGF1dGgzIiwiYVVzZXIiLCJnZW5lcmF0ZSIsInNldFBhc3N3b3JkUmVzZXRUb2tlbiIsImdlbmVyYXRlUGFzc3dvcmRSZXNldFRva2VuRXhwaXJlc0F0IiwiJG9yIiwiJGV4aXN0cyIsInNlbmRQYXNzd29yZFJlc2V0RW1haWwiLCJyZXNldFRva2VuUmV1c2VJZlZhbGlkIiwicmVxdWVzdFJlc2V0UGFzc3dvcmRVUkwiLCJkZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsIiwidXBkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsInVwZGF0ZVVzZXJQYXNzd29yZCIsImFjY291bnRMb2Nrb3V0UG9saWN5IiwiQWNjb3VudExvY2tvdXQiLCJ1bmxvY2tBY2NvdW50IiwiY2F0Y2giLCJlcnJvciIsIm1lc3NhZ2UiLCJyZWplY3QiLCJ0ZXh0IiwidG8iLCJzdWJqZWN0IiwiZXhwb3J0cyIsImRlc3RpbmF0aW9uIiwidXNlcm5hbWVBbmRUb2tlbiIsInBhcnNlRnJhbWVVUkwiLCJkZXN0aW5hdGlvbldpdGhvdXRIb3N0IiwicmVwbGFjZSIsInB1YmxpY1NlcnZlclVSTCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbnRyb2xsZXJzL1VzZXJDb250cm9sbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVN0cmluZyB9IGZyb20gJy4uL2NyeXB0b1V0aWxzJztcbmltcG9ydCB7IGluZmxhdGUgfSBmcm9tICcuLi90cmlnZ2Vycyc7XG5pbXBvcnQgQWRhcHRhYmxlQ29udHJvbGxlciBmcm9tICcuL0FkYXB0YWJsZUNvbnRyb2xsZXInO1xuaW1wb3J0IE1haWxBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL0VtYWlsL01haWxBZGFwdGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IEFjY291bnRMb2Nrb3V0IGZyb20gJy4uL0FjY291bnRMb2Nrb3V0JztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vQ29uZmlnJztcblxudmFyIFJlc3RRdWVyeSA9IHJlcXVpcmUoJy4uL1Jlc3RRdWVyeScpO1xudmFyIEF1dGggPSByZXF1aXJlKCcuLi9BdXRoJyk7XG5cbmV4cG9ydCBjbGFzcyBVc2VyQ29udHJvbGxlciBleHRlbmRzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgYXBwSWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gQ29uZmlnLmdldCh0aGlzLmFwcElkKTtcbiAgfVxuXG4gIHZhbGlkYXRlQWRhcHRlcihhZGFwdGVyKSB7XG4gICAgLy8gQWxsb3cgbm8gYWRhcHRlclxuICAgIGlmICghYWRhcHRlciAmJiAhdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVBZGFwdGVyKGFkYXB0ZXIpO1xuICB9XG5cbiAgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpIHtcbiAgICByZXR1cm4gTWFpbEFkYXB0ZXI7XG4gIH1cblxuICBnZXQgc2hvdWxkVmVyaWZ5RW1haWxzKCkge1xuICAgIHJldHVybiAodGhpcy5jb25maWcgfHwgdGhpcy5vcHRpb25zKS52ZXJpZnlVc2VyRW1haWxzO1xuICB9XG5cbiAgYXN5bmMgc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCByZXEsIHN0b3JhZ2UgPSB7fSkge1xuICAgIGNvbnN0IHNob3VsZFNlbmRFbWFpbCA9XG4gICAgICB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gdHJ1ZSB8fFxuICAgICAgKHR5cGVvZiB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAoYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2hvdWxkVmVyaWZ5RW1haWxzKHJlcSkpKSA9PT0gdHJ1ZSk7XG4gICAgaWYgKCFzaG91bGRTZW5kRW1haWwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3RvcmFnZS5zZW5kVmVyaWZpY2F0aW9uRW1haWwgPSB0cnVlO1xuICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbiA9IHJhbmRvbVN0cmluZygyNSk7XG4gICAgaWYgKFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlciB8fFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlci5pbmNsdWRlcygnZW1haWxWZXJpZmllZCcpXG4gICAgKSB7XG4gICAgICB1c2VyLmVtYWlsVmVyaWZpZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24pIHtcbiAgICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuRXhwaXJlc0F0KClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RW1haWwodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFZlcmlmeUVtYWlscykge1xuICAgICAgLy8gVHJ5aW5nIHRvIHZlcmlmeSBlbWFpbCB3aGVuIG5vdCBlbmFibGVkXG4gICAgICAvLyBUT0RPOiBCZXR0ZXIgZXJyb3IgaGVyZS5cbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBfZW1haWxfdmVyaWZ5X3Rva2VuOiB0b2tlbiB9O1xuICAgIGNvbnN0IHVwZGF0ZUZpZWxkcyA9IHtcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IHRydWUsXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuOiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgfTtcblxuICAgIC8vIGlmIHRoZSBlbWFpbCB2ZXJpZnkgdG9rZW4gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIHRoZW5cbiAgICAvLyBhZGQgYWRkaXRpb25hbCBxdWVyeSBwYXJhbXMgYW5kIGFkZGl0aW9uYWwgZmllbGRzIHRoYXQgbmVlZCB0byBiZSB1cGRhdGVkXG4gICAgaWYgKHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICBxdWVyeS5lbWFpbFZlcmlmaWVkID0gZmFsc2U7XG4gICAgICBxdWVyeS5fZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgPSB7ICRndDogUGFyc2UuX2VuY29kZShuZXcgRGF0ZSgpKSB9O1xuXG4gICAgICB1cGRhdGVGaWVsZHMuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0geyBfX29wOiAnRGVsZXRlJyB9O1xuICAgIH1cbiAgICBjb25zdCBtYWludGVuYW5jZUF1dGggPSBBdXRoLm1haW50ZW5hbmNlKHRoaXMuY29uZmlnKTtcbiAgICB2YXIgZmluZFVzZXJGb3JFbWFpbFZlcmlmaWNhdGlvbiA9IGF3YWl0IFJlc3RRdWVyeSh7XG4gICAgICBtZXRob2Q6IFJlc3RRdWVyeS5NZXRob2QuZ2V0LFxuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgIGF1dGg6IG1haW50ZW5hbmNlQXV0aCxcbiAgICAgIGNsYXNzTmFtZTogJ19Vc2VyJyxcbiAgICAgIHJlc3RXaGVyZToge1xuICAgICAgICB1c2VybmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbmRVc2VyRm9yRW1haWxWZXJpZmljYXRpb24uZXhlY3V0ZSgpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQucmVzdWx0cy5sZW5ndGggJiYgcmVzdWx0LnJlc3VsdHNbMF0uZW1haWxWZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdC5yZXN1bHRzLmxlbmd0aFswXSk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5yZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBxdWVyeS5vYmplY3RJZCA9IHJlc3VsdC5yZXN1bHRzWzBdLm9iamVjdElkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3QudXBkYXRlKHRoaXMuY29uZmlnLCBtYWludGVuYW5jZUF1dGgsICdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hlY2tSZXNldFRva2VuVmFsaWRpdHkodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRhdGFiYXNlXG4gICAgICAuZmluZChcbiAgICAgICAgJ19Vc2VyJyxcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgICBfcGVyaXNoYWJsZV90b2tlbjogdG9rZW4sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT0gMSkge1xuICAgICAgICAgIHRocm93ICdGYWlsZWQgdG8gcmVzZXQgcGFzc3dvcmQ6IHVzZXJuYW1lIC8gZW1haWwgLyB0b2tlbiBpcyBpbnZhbGlkJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeSAmJiB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbikge1xuICAgICAgICAgIGxldCBleHBpcmVzRGF0ZSA9IHJlc3VsdHNbMF0uX3BlcmlzaGFibGVfdG9rZW5fZXhwaXJlc19hdDtcbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgJiYgZXhwaXJlc0RhdGUuX190eXBlID09ICdEYXRlJykge1xuICAgICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgPCBuZXcgRGF0ZSgpKSB0aHJvdyAnVGhlIHBhc3N3b3JkIHJlc2V0IGxpbmsgaGFzIGV4cGlyZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzWzBdO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRVc2VySWZOZWVkZWQodXNlcikge1xuICAgIHZhciB3aGVyZSA9IHt9O1xuICAgIGlmICh1c2VyLnVzZXJuYW1lKSB7XG4gICAgICB3aGVyZS51c2VybmFtZSA9IHVzZXIudXNlcm5hbWU7XG4gICAgfVxuICAgIGlmICh1c2VyLmVtYWlsKSB7XG4gICAgICB3aGVyZS5lbWFpbCA9IHVzZXIuZW1haWw7XG4gICAgfVxuXG4gICAgdmFyIHF1ZXJ5ID0gYXdhaXQgUmVzdFF1ZXJ5KHtcbiAgICAgIG1ldGhvZDogUmVzdFF1ZXJ5Lk1ldGhvZC5nZXQsXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgcnVuQmVmb3JlRmluZDogZmFsc2UsXG4gICAgICBhdXRoOiBBdXRoLm1hc3Rlcih0aGlzLmNvbmZpZyksXG4gICAgICBjbGFzc05hbWU6ICdfVXNlcicsXG4gICAgICByZXN0V2hlcmU6IHdoZXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5LmV4ZWN1dGUoKTtcbiAgICBpZiAocmVzdWx0LnJlc3VsdHMubGVuZ3RoICE9IDEpIHtcbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5yZXN1bHRzWzBdO1xuICB9XG5cbiAgYXN5bmMgc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHVzZXIsIHJlcSkge1xuICAgIGlmICghdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBlbmNvZGVVUklDb21wb25lbnQodXNlci5fZW1haWxfdmVyaWZ5X3Rva2VuKTtcbiAgICAvLyBXZSBtYXkgbmVlZCB0byBmZXRjaCB0aGUgdXNlciBpbiBjYXNlIG9mIHVwZGF0ZSBlbWFpbDsgb25seSB1c2UgdGhlIGBmZXRjaGVkVXNlcmBcbiAgICAvLyBmcm9tIHRoaXMgcG9pbnQgb253YXJkczsgZG8gbm90IHVzZSB0aGUgYHVzZXJgIGFzIGl0IG1heSBub3QgY29udGFpbiBhbGwgZmllbGRzLlxuICAgIGNvbnN0IGZldGNoZWRVc2VyID0gYXdhaXQgdGhpcy5nZXRVc2VySWZOZWVkZWQodXNlcik7XG4gICAgbGV0IHNob3VsZFNlbmRFbWFpbCA9IHRoaXMuY29uZmlnLnNlbmRVc2VyRW1haWxWZXJpZmljYXRpb247XG4gICAgaWYgKHR5cGVvZiBzaG91bGRTZW5kRW1haWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICB0aGlzLmNvbmZpZy5zZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uKHtcbiAgICAgICAgICB1c2VyOiBQYXJzZS5PYmplY3QuZnJvbUpTT04oeyBjbGFzc05hbWU6ICdfVXNlcicsIC4uLmZldGNoZWRVc2VyIH0pLFxuICAgICAgICAgIG1hc3RlcjogcmVxLmF1dGg/LmlzTWFzdGVyLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHNob3VsZFNlbmRFbWFpbCA9ICEhcmVzcG9uc2U7XG4gICAgfVxuICAgIGlmICghc2hvdWxkU2VuZEVtYWlsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGZldGNoZWRVc2VyLnVzZXJuYW1lKTtcblxuICAgIGNvbnN0IGxpbmsgPSBidWlsZEVtYWlsTGluayh0aGlzLmNvbmZpZy52ZXJpZnlFbWFpbFVSTCwgdXNlcm5hbWUsIHRva2VuLCB0aGlzLmNvbmZpZyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmFwcE5hbWUsXG4gICAgICBsaW5rOiBsaW5rLFxuICAgICAgdXNlcjogaW5mbGF0ZSgnX1VzZXInLCBmZXRjaGVkVXNlciksXG4gICAgfTtcbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbCkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbChvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRNYWlsKHRoaXMuZGVmYXVsdFZlcmlmaWNhdGlvbkVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnZW5lcmF0ZXMgdGhlIGdpdmVuIHVzZXIncyBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICBhc3luYyByZWdlbmVyYXRlRW1haWxWZXJpZnlUb2tlbih1c2VyLCBtYXN0ZXIsIGluc3RhbGxhdGlvbklkLCBpcCkge1xuICAgIGNvbnN0IHsgX2VtYWlsX3ZlcmlmeV90b2tlbiB9ID0gdXNlcjtcbiAgICBsZXQgeyBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgfSA9IHVzZXI7XG4gICAgaWYgKF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCAmJiBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQuX190eXBlID09PSAnRGF0ZScpIHtcbiAgICAgIF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCA9IF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdC5pc287XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQgJiZcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uICYmXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuICYmXG4gICAgICBuZXcgRGF0ZSgpIDwgbmV3IERhdGUoX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0KVxuICAgICkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkU2VuZCA9IGF3YWl0IHRoaXMuc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCB7XG4gICAgICBvYmplY3Q6IFBhcnNlLlVzZXIuZnJvbUpTT04oT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogJ19Vc2VyJyB9LCB1c2VyKSksXG4gICAgICBtYXN0ZXIsXG4gICAgICBpbnN0YWxsYXRpb25JZCxcbiAgICAgIGlwLFxuICAgICAgcmVzZW5kUmVxdWVzdDogdHJ1ZVxuICAgIH0pO1xuICAgIGlmICghc2hvdWxkU2VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHsgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUgfSwgdXNlcik7XG4gIH1cblxuICBhc3luYyByZXNlbmRWZXJpZmljYXRpb25FbWFpbCh1c2VybmFtZSwgcmVxKSB7XG4gICAgY29uc3QgYVVzZXIgPSBhd2FpdCB0aGlzLmdldFVzZXJJZk5lZWRlZCh7IHVzZXJuYW1lOiB1c2VybmFtZSB9KTtcbiAgICBpZiAoIWFVc2VyIHx8IGFVc2VyLmVtYWlsVmVyaWZpZWQpIHtcbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZ2VuZXJhdGUgPSBhd2FpdCB0aGlzLnJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuKGFVc2VyLCByZXEuYXV0aD8uaXNNYXN0ZXIsIHJlcS5hdXRoPy5pbnN0YWxsYXRpb25JZCwgcmVxLmlwKTtcbiAgICBpZiAoZ2VuZXJhdGUpIHtcbiAgICAgIHRoaXMuc2VuZFZlcmlmaWNhdGlvbkVtYWlsKGFVc2VyLCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCkge1xuICAgIGNvbnN0IHRva2VuID0geyBfcGVyaXNoYWJsZV90b2tlbjogcmFuZG9tU3RyaW5nKDI1KSB9O1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5LnJlc2V0VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICB0b2tlbi5fcGVyaXNoYWJsZV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVQYXNzd29yZFJlc2V0VG9rZW5FeHBpcmVzQXQoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKFxuICAgICAgJ19Vc2VyJyxcbiAgICAgIHsgJG9yOiBbeyBlbWFpbCB9LCB7IHVzZXJuYW1lOiBlbWFpbCwgZW1haWw6IHsgJGV4aXN0czogZmFsc2UgfSB9XSB9LFxuICAgICAgdG9rZW4sXG4gICAgICB7fSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbCkge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICB0aHJvdyAnVHJ5aW5nIHRvIHNlbmQgYSByZXNldCBwYXNzd29yZCBidXQgbm8gYWRhcHRlciBpcyBzZXQnO1xuICAgICAgLy8gIFRPRE86IE5vIGFkYXB0ZXI/XG4gICAgfVxuICAgIGxldCB1c2VyO1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuUmV1c2VJZlZhbGlkICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvblxuICAgICkge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuY29uZmlnLmRhdGFiYXNlLmZpbmQoXG4gICAgICAgICdfVXNlcicsXG4gICAgICAgIHtcbiAgICAgICAgICAkb3I6IFtcbiAgICAgICAgICAgIHsgZW1haWwsIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgICAgeyB1c2VybmFtZTogZW1haWwsIGVtYWlsOiB7ICRleGlzdHM6IGZhbHNlIH0sIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgICk7XG4gICAgICBpZiAocmVzdWx0cy5sZW5ndGggPT0gMSkge1xuICAgICAgICBsZXQgZXhwaXJlc0RhdGUgPSByZXN1bHRzWzBdLl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQ7XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSAmJiBleHBpcmVzRGF0ZS5fX3R5cGUgPT0gJ0RhdGUnKSB7XG4gICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSA+IG5ldyBEYXRlKCkpIHtcbiAgICAgICAgICB1c2VyID0gcmVzdWx0c1swXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXVzZXIgfHwgIXVzZXIuX3BlcmlzaGFibGVfdG9rZW4pIHtcbiAgICAgIHVzZXIgPSBhd2FpdCB0aGlzLnNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIuX3BlcmlzaGFibGVfdG9rZW4pO1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIudXNlcm5hbWUpO1xuXG4gICAgY29uc3QgbGluayA9IGJ1aWxkRW1haWxMaW5rKHRoaXMuY29uZmlnLnJlcXVlc3RSZXNldFBhc3N3b3JkVVJMLCB1c2VybmFtZSwgdG9rZW4sIHRoaXMuY29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgYXBwTmFtZTogdGhpcy5jb25maWcuYXBwTmFtZSxcbiAgICAgIGxpbms6IGxpbmssXG4gICAgICB1c2VyOiBpbmZsYXRlKCdfVXNlcicsIHVzZXIpLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRQYXNzd29yZFJlc2V0RW1haWwpIHtcbiAgICAgIHRoaXMuYWRhcHRlci5zZW5kUGFzc3dvcmRSZXNldEVtYWlsKG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkYXB0ZXIuc2VuZE1haWwodGhpcy5kZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVzZXIpO1xuICB9XG5cbiAgdXBkYXRlUGFzc3dvcmQodXNlcm5hbWUsIHRva2VuLCBwYXNzd29yZCkge1xuICAgIHJldHVybiB0aGlzLmNoZWNrUmVzZXRUb2tlblZhbGlkaXR5KHVzZXJuYW1lLCB0b2tlbilcbiAgICAgIC50aGVuKHVzZXIgPT4gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCB0aGlzLmNvbmZpZykpXG4gICAgICAudGhlbih1c2VyID0+IHtcbiAgICAgICAgY29uc3QgYWNjb3VudExvY2tvdXRQb2xpY3kgPSBuZXcgQWNjb3VudExvY2tvdXQodXNlciwgdGhpcy5jb25maWcpO1xuICAgICAgICByZXR1cm4gYWNjb3VudExvY2tvdXRQb2xpY3kudW5sb2NrQWNjb3VudCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGlmIChlcnJvciAmJiBlcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgLy8gaW4gY2FzZSBvZiBQYXJzZS5FcnJvciwgZmFpbCB3aXRoIHRoZSBlcnJvciBtZXNzYWdlIG9ubHlcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBkZWZhdWx0VmVyaWZpY2F0aW9uRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgYXJlIGJlaW5nIGFza2VkIHRvIGNvbmZpcm0gdGhlIGUtbWFpbCBhZGRyZXNzICcgK1xuICAgICAgdXNlci5nZXQoJ2VtYWlsJykgK1xuICAgICAgJyB3aXRoICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAnXFxuXFxuJyArXG4gICAgICAnJyArXG4gICAgICAnQ2xpY2sgaGVyZSB0byBjb25maXJtIGl0OlxcbicgK1xuICAgICAgbGluaztcbiAgICBjb25zdCB0byA9IHVzZXIuZ2V0KCdlbWFpbCcpO1xuICAgIGNvbnN0IHN1YmplY3QgPSAnUGxlYXNlIHZlcmlmeSB5b3VyIGUtbWFpbCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxuXG4gIGRlZmF1bHRSZXNldFBhc3N3b3JkRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgcmVxdWVzdGVkIHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQgZm9yICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAodXNlci5nZXQoJ3VzZXJuYW1lJykgPyBcIiAoeW91ciB1c2VybmFtZSBpcyAnXCIgKyB1c2VyLmdldCgndXNlcm5hbWUnKSArIFwiJylcIiA6ICcnKSArXG4gICAgICAnLlxcblxcbicgK1xuICAgICAgJycgK1xuICAgICAgJ0NsaWNrIGhlcmUgdG8gcmVzZXQgaXQ6XFxuJyArXG4gICAgICBsaW5rO1xuICAgIGNvbnN0IHRvID0gdXNlci5nZXQoJ2VtYWlsJykgfHwgdXNlci5nZXQoJ3VzZXJuYW1lJyk7XG4gICAgY29uc3Qgc3ViamVjdCA9ICdQYXNzd29yZCBSZXNldCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxufVxuXG4vLyBNYXJrIHRoaXMgcHJpdmF0ZVxuZnVuY3Rpb24gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCBjb25maWcpIHtcbiAgcmV0dXJuIHJlc3RcbiAgICAudXBkYXRlKFxuICAgICAgY29uZmlnLFxuICAgICAgQXV0aC5tYXN0ZXIoY29uZmlnKSxcbiAgICAgICdfVXNlcicsXG4gICAgICB7IG9iamVjdElkOiB1c2VyLm9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgIH1cbiAgICApXG4gICAgLnRoZW4oKCkgPT4gdXNlcik7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRW1haWxMaW5rKGRlc3RpbmF0aW9uLCB1c2VybmFtZSwgdG9rZW4sIGNvbmZpZykge1xuICBjb25zdCB1c2VybmFtZUFuZFRva2VuID0gYHRva2VuPSR7dG9rZW59JnVzZXJuYW1lPSR7dXNlcm5hbWV9YDtcblxuICBpZiAoY29uZmlnLnBhcnNlRnJhbWVVUkwpIHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbldpdGhvdXRIb3N0ID0gZGVzdGluYXRpb24ucmVwbGFjZShjb25maWcucHVibGljU2VydmVyVVJMLCAnJyk7XG5cbiAgICByZXR1cm4gYCR7Y29uZmlnLnBhcnNlRnJhbWVVUkx9P2xpbms9JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICBkZXN0aW5hdGlvbldpdGhvdXRIb3N0XG4gICAgKX0mJHt1c2VybmFtZUFuZFRva2VufWA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGAke2Rlc3RpbmF0aW9ufT8ke3VzZXJuYW1lQW5kVG9rZW59YDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVc2VyQ29udHJvbGxlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUErQixTQUFBRyx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLFFBQUFDLE1BQUEsRUFBQUMsY0FBQSxRQUFBQyxJQUFBLEdBQUFDLE1BQUEsQ0FBQUQsSUFBQSxDQUFBRixNQUFBLE9BQUFHLE1BQUEsQ0FBQUMscUJBQUEsUUFBQUMsT0FBQSxHQUFBRixNQUFBLENBQUFDLHFCQUFBLENBQUFKLE1BQUEsR0FBQUMsY0FBQSxLQUFB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
|
|
363
|
+
var _default = exports.default = UserController;
|
|
364
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY3J5cHRvVXRpbHMiLCJyZXF1aXJlIiwiX3RyaWdnZXJzIiwiX0FkYXB0YWJsZUNvbnRyb2xsZXIiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX01haWxBZGFwdGVyIiwiX3Jlc3QiLCJfbm9kZSIsIl9BY2NvdW50TG9ja291dCIsIl9Db25maWciLCJvYmoiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJrZXkiLCJ2YWx1ZSIsIl90b1Byb3BlcnR5S2V5IiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiTnVtYmVyIiwiUmVzdFF1ZXJ5IiwiQXV0aCIsIlVzZXJDb250cm9sbGVyIiwiQWRhcHRhYmxlQ29udHJvbGxlciIsImNvbnN0cnVjdG9yIiwiYWRhcHRlciIsImFwcElkIiwib3B0aW9ucyIsImNvbmZpZyIsIkNvbmZpZyIsImdldCIsInZhbGlkYXRlQWRhcHRlciIsInNob3VsZFZlcmlmeUVtYWlscyIsImV4cGVjdGVkQWRhcHRlclR5cGUiLCJNYWlsQWRhcHRlciIsInZlcmlmeVVzZXJFbWFpbHMiLCJzZXRFbWFpbFZlcmlmeVRva2VuIiwidXNlciIsInJlcSIsInN0b3JhZ2UiLCJzaG91bGRTZW5kRW1haWwiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9lbWFpbF92ZXJpZnlfdG9rZW4iLCJyYW5kb21TdHJpbmciLCJmaWVsZHNDaGFuZ2VkQnlUcmlnZ2VyIiwiaW5jbHVkZXMiLCJlbWFpbFZlcmlmaWVkIiwiZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQiLCJQYXJzZSIsIl9lbmNvZGUiLCJnZW5lcmF0ZUVtYWlsVmVyaWZ5VG9rZW5FeHBpcmVzQXQiLCJ2ZXJpZnlFbWFpbCIsInVzZXJuYW1lIiwidG9rZW4iLCJ1bmRlZmluZWQiLCJxdWVyeSIsInVwZGF0ZUZpZWxkcyIsIl9fb3AiLCIkZ3QiLCJEYXRlIiwibWFpbnRlbmFuY2VBdXRoIiwibWFpbnRlbmFuY2UiLCJmaW5kVXNlckZvckVtYWlsVmVyaWZpY2F0aW9uIiwibWV0aG9kIiwiTWV0aG9kIiwiYXV0aCIsImNsYXNzTmFtZSIsInJlc3RXaGVyZSIsImV4ZWN1dGUiLCJ0aGVuIiwicmVzdWx0IiwicmVzdWx0cyIsIm9iamVjdElkIiwicmVzdCIsInVwZGF0ZSIsImNoZWNrUmVzZXRUb2tlblZhbGlkaXR5IiwiZGF0YWJhc2UiLCJmaW5kIiwiX3BlcmlzaGFibGVfdG9rZW4iLCJsaW1pdCIsInBhc3N3b3JkUG9saWN5IiwicmVzZXRUb2tlblZhbGlkaXR5RHVyYXRpb24iLCJleHBpcmVzRGF0ZSIsIl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQiLCJfX3R5cGUiLCJpc28iLCJnZXRVc2VySWZOZWVkZWQiLCJ3aGVyZSIsImVtYWlsIiwicnVuQmVmb3JlRmluZCIsIm1hc3RlciIsImVuY29kZVVSSUNvbXBvbmVudCIsImZldGNoZWRVc2VyIiwic2VuZFVzZXJFbWFpbFZlcmlmaWNhdGlvbiIsIl9yZXEkYXV0aCIsInJlc3BvbnNlIiwiZnJvbUpTT04iLCJpc01hc3RlciIsImxpbmsiLCJidWlsZEVtYWlsTGluayIsInZlcmlmeUVtYWlsVVJMIiwiYXBwTmFtZSIsImluZmxhdGUiLCJzZW5kTWFpbCIsImRlZmF1bHRWZXJpZmljYXRpb25FbWFpbCIsInJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuIiwiaW5zdGFsbGF0aW9uSWQiLCJpcCIsImVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQiLCJzaG91bGRTZW5kIiwib2JqZWN0IiwiVXNlciIsImFzc2lnbiIsInJlc2VuZFJlcXVlc3QiLCJyZXNlbmRWZXJpZmljYXRpb25FbWFpbCIsIl9yZXEkYXV0aDIiLCJfcmVxJGF1dGgzIiwiYVVzZXIiLCJnZW5lcmF0ZSIsInNldFBhc3N3b3JkUmVzZXRUb2tlbiIsImdlbmVyYXRlUGFzc3dvcmRSZXNldFRva2VuRXhwaXJlc0F0IiwiJG9yIiwiJGV4aXN0cyIsInNlbmRQYXNzd29yZFJlc2V0RW1haWwiLCJyZXNldFRva2VuUmV1c2VJZlZhbGlkIiwicmVxdWVzdFJlc2V0UGFzc3dvcmRVUkwiLCJkZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsIiwidXBkYXRlUGFzc3dvcmQiLCJwYXNzd29yZCIsInVwZGF0ZVVzZXJQYXNzd29yZCIsImFjY291bnRMb2Nrb3V0UG9saWN5IiwiQWNjb3VudExvY2tvdXQiLCJ1bmxvY2tBY2NvdW50IiwiY2F0Y2giLCJlcnJvciIsIm1lc3NhZ2UiLCJyZWplY3QiLCJ0ZXh0IiwidG8iLCJzdWJqZWN0IiwiZXhwb3J0cyIsImRlc3RpbmF0aW9uIiwidXNlcm5hbWVBbmRUb2tlbiIsInBhcnNlRnJhbWVVUkwiLCJkZXN0aW5hdGlvbldpdGhvdXRIb3N0IiwicmVwbGFjZSIsInB1YmxpY1NlcnZlclVSTCIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL0NvbnRyb2xsZXJzL1VzZXJDb250cm9sbGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVN0cmluZyB9IGZyb20gJy4uL2NyeXB0b1V0aWxzJztcbmltcG9ydCB7IGluZmxhdGUgfSBmcm9tICcuLi90cmlnZ2Vycyc7XG5pbXBvcnQgQWRhcHRhYmxlQ29udHJvbGxlciBmcm9tICcuL0FkYXB0YWJsZUNvbnRyb2xsZXInO1xuaW1wb3J0IE1haWxBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL0VtYWlsL01haWxBZGFwdGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IEFjY291bnRMb2Nrb3V0IGZyb20gJy4uL0FjY291bnRMb2Nrb3V0JztcbmltcG9ydCBDb25maWcgZnJvbSAnLi4vQ29uZmlnJztcblxudmFyIFJlc3RRdWVyeSA9IHJlcXVpcmUoJy4uL1Jlc3RRdWVyeScpO1xudmFyIEF1dGggPSByZXF1aXJlKCcuLi9BdXRoJyk7XG5cbmV4cG9ydCBjbGFzcyBVc2VyQ29udHJvbGxlciBleHRlbmRzIEFkYXB0YWJsZUNvbnRyb2xsZXIge1xuICBjb25zdHJ1Y3RvcihhZGFwdGVyLCBhcHBJZCwgb3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIoYWRhcHRlciwgYXBwSWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgZ2V0IGNvbmZpZygpIHtcbiAgICByZXR1cm4gQ29uZmlnLmdldCh0aGlzLmFwcElkKTtcbiAgfVxuXG4gIHZhbGlkYXRlQWRhcHRlcihhZGFwdGVyKSB7XG4gICAgLy8gQWxsb3cgbm8gYWRhcHRlclxuICAgIGlmICghYWRhcHRlciAmJiAhdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3VwZXIudmFsaWRhdGVBZGFwdGVyKGFkYXB0ZXIpO1xuICB9XG5cbiAgZXhwZWN0ZWRBZGFwdGVyVHlwZSgpIHtcbiAgICByZXR1cm4gTWFpbEFkYXB0ZXI7XG4gIH1cblxuICBnZXQgc2hvdWxkVmVyaWZ5RW1haWxzKCkge1xuICAgIHJldHVybiAodGhpcy5jb25maWcgfHwgdGhpcy5vcHRpb25zKS52ZXJpZnlVc2VyRW1haWxzO1xuICB9XG5cbiAgYXN5bmMgc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCByZXEsIHN0b3JhZ2UgPSB7fSkge1xuICAgIGNvbnN0IHNob3VsZFNlbmRFbWFpbCA9XG4gICAgICB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gdHJ1ZSB8fFxuICAgICAgKHR5cGVvZiB0aGlzLnNob3VsZFZlcmlmeUVtYWlscyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICAoYXdhaXQgUHJvbWlzZS5yZXNvbHZlKHRoaXMuc2hvdWxkVmVyaWZ5RW1haWxzKHJlcSkpKSA9PT0gdHJ1ZSk7XG4gICAgaWYgKCFzaG91bGRTZW5kRW1haWwpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgc3RvcmFnZS5zZW5kVmVyaWZpY2F0aW9uRW1haWwgPSB0cnVlO1xuICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbiA9IHJhbmRvbVN0cmluZygyNSk7XG4gICAgaWYgKFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlciB8fFxuICAgICAgIXN0b3JhZ2UuZmllbGRzQ2hhbmdlZEJ5VHJpZ2dlci5pbmNsdWRlcygnZW1haWxWZXJpZmllZCcpXG4gICAgKSB7XG4gICAgICB1c2VyLmVtYWlsVmVyaWZpZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5jb25maWcuZW1haWxWZXJpZnlUb2tlblZhbGlkaXR5RHVyYXRpb24pIHtcbiAgICAgIHVzZXIuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuRXhwaXJlc0F0KClcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgYXN5bmMgdmVyaWZ5RW1haWwodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgaWYgKCF0aGlzLnNob3VsZFZlcmlmeUVtYWlscykge1xuICAgICAgLy8gVHJ5aW5nIHRvIHZlcmlmeSBlbWFpbCB3aGVuIG5vdCBlbmFibGVkXG4gICAgICAvLyBUT0RPOiBCZXR0ZXIgZXJyb3IgaGVyZS5cbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVyeSA9IHsgdXNlcm5hbWU6IHVzZXJuYW1lLCBfZW1haWxfdmVyaWZ5X3Rva2VuOiB0b2tlbiB9O1xuICAgIGNvbnN0IHVwZGF0ZUZpZWxkcyA9IHtcbiAgICAgIGVtYWlsVmVyaWZpZWQ6IHRydWUsXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuOiB7IF9fb3A6ICdEZWxldGUnIH0sXG4gICAgfTtcblxuICAgIC8vIGlmIHRoZSBlbWFpbCB2ZXJpZnkgdG9rZW4gbmVlZHMgdG8gYmUgdmFsaWRhdGVkIHRoZW5cbiAgICAvLyBhZGQgYWRkaXRpb25hbCBxdWVyeSBwYXJhbXMgYW5kIGFkZGl0aW9uYWwgZmllbGRzIHRoYXQgbmVlZCB0byBiZSB1cGRhdGVkXG4gICAgaWYgKHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICBxdWVyeS5lbWFpbFZlcmlmaWVkID0gZmFsc2U7XG4gICAgICBxdWVyeS5fZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgPSB7ICRndDogUGFyc2UuX2VuY29kZShuZXcgRGF0ZSgpKSB9O1xuXG4gICAgICB1cGRhdGVGaWVsZHMuX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0ID0geyBfX29wOiAnRGVsZXRlJyB9O1xuICAgIH1cbiAgICBjb25zdCBtYWludGVuYW5jZUF1dGggPSBBdXRoLm1haW50ZW5hbmNlKHRoaXMuY29uZmlnKTtcbiAgICB2YXIgZmluZFVzZXJGb3JFbWFpbFZlcmlmaWNhdGlvbiA9IGF3YWl0IFJlc3RRdWVyeSh7XG4gICAgICBtZXRob2Q6IFJlc3RRdWVyeS5NZXRob2QuZ2V0LFxuICAgICAgY29uZmlnOiB0aGlzLmNvbmZpZyxcbiAgICAgIGF1dGg6IG1haW50ZW5hbmNlQXV0aCxcbiAgICAgIGNsYXNzTmFtZTogJ19Vc2VyJyxcbiAgICAgIHJlc3RXaGVyZToge1xuICAgICAgICB1c2VybmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgcmV0dXJuIGZpbmRVc2VyRm9yRW1haWxWZXJpZmljYXRpb24uZXhlY3V0ZSgpLnRoZW4ocmVzdWx0ID0+IHtcbiAgICAgIGlmIChyZXN1bHQucmVzdWx0cy5sZW5ndGggJiYgcmVzdWx0LnJlc3VsdHNbMF0uZW1haWxWZXJpZmllZCkge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdC5yZXN1bHRzLmxlbmd0aFswXSk7XG4gICAgICB9IGVsc2UgaWYgKHJlc3VsdC5yZXN1bHRzLmxlbmd0aCkge1xuICAgICAgICBxdWVyeS5vYmplY3RJZCA9IHJlc3VsdC5yZXN1bHRzWzBdLm9iamVjdElkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc3QudXBkYXRlKHRoaXMuY29uZmlnLCBtYWludGVuYW5jZUF1dGgsICdfVXNlcicsIHF1ZXJ5LCB1cGRhdGVGaWVsZHMpO1xuICAgIH0pO1xuICB9XG5cbiAgY2hlY2tSZXNldFRva2VuVmFsaWRpdHkodXNlcm5hbWUsIHRva2VuKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlnLmRhdGFiYXNlXG4gICAgICAuZmluZChcbiAgICAgICAgJ19Vc2VyJyxcbiAgICAgICAge1xuICAgICAgICAgIHVzZXJuYW1lOiB1c2VybmFtZSxcbiAgICAgICAgICBfcGVyaXNoYWJsZV90b2tlbjogdG9rZW4sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggIT0gMSkge1xuICAgICAgICAgIHRocm93ICdGYWlsZWQgdG8gcmVzZXQgcGFzc3dvcmQ6IHVzZXJuYW1lIC8gZW1haWwgLyB0b2tlbiBpcyBpbnZhbGlkJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeSAmJiB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvbikge1xuICAgICAgICAgIGxldCBleHBpcmVzRGF0ZSA9IHJlc3VsdHNbMF0uX3BlcmlzaGFibGVfdG9rZW5fZXhwaXJlc19hdDtcbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgJiYgZXhwaXJlc0RhdGUuX190eXBlID09ICdEYXRlJykge1xuICAgICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXhwaXJlc0RhdGUgPCBuZXcgRGF0ZSgpKSB0aHJvdyAnVGhlIHBhc3N3b3JkIHJlc2V0IGxpbmsgaGFzIGV4cGlyZWQnO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXN1bHRzWzBdO1xuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyBnZXRVc2VySWZOZWVkZWQodXNlcikge1xuICAgIHZhciB3aGVyZSA9IHt9O1xuICAgIGlmICh1c2VyLnVzZXJuYW1lKSB7XG4gICAgICB3aGVyZS51c2VybmFtZSA9IHVzZXIudXNlcm5hbWU7XG4gICAgfVxuICAgIGlmICh1c2VyLmVtYWlsKSB7XG4gICAgICB3aGVyZS5lbWFpbCA9IHVzZXIuZW1haWw7XG4gICAgfVxuXG4gICAgdmFyIHF1ZXJ5ID0gYXdhaXQgUmVzdFF1ZXJ5KHtcbiAgICAgIG1ldGhvZDogUmVzdFF1ZXJ5Lk1ldGhvZC5nZXQsXG4gICAgICBjb25maWc6IHRoaXMuY29uZmlnLFxuICAgICAgcnVuQmVmb3JlRmluZDogZmFsc2UsXG4gICAgICBhdXRoOiBBdXRoLm1hc3Rlcih0aGlzLmNvbmZpZyksXG4gICAgICBjbGFzc05hbWU6ICdfVXNlcicsXG4gICAgICByZXN0V2hlcmU6IHdoZXJlLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHF1ZXJ5LmV4ZWN1dGUoKTtcbiAgICBpZiAocmVzdWx0LnJlc3VsdHMubGVuZ3RoICE9IDEpIHtcbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdC5yZXN1bHRzWzBdO1xuICB9XG5cbiAgYXN5bmMgc2VuZFZlcmlmaWNhdGlvbkVtYWlsKHVzZXIsIHJlcSkge1xuICAgIGlmICghdGhpcy5zaG91bGRWZXJpZnlFbWFpbHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgdG9rZW4gPSBlbmNvZGVVUklDb21wb25lbnQodXNlci5fZW1haWxfdmVyaWZ5X3Rva2VuKTtcbiAgICAvLyBXZSBtYXkgbmVlZCB0byBmZXRjaCB0aGUgdXNlciBpbiBjYXNlIG9mIHVwZGF0ZSBlbWFpbDsgb25seSB1c2UgdGhlIGBmZXRjaGVkVXNlcmBcbiAgICAvLyBmcm9tIHRoaXMgcG9pbnQgb253YXJkczsgZG8gbm90IHVzZSB0aGUgYHVzZXJgIGFzIGl0IG1heSBub3QgY29udGFpbiBhbGwgZmllbGRzLlxuICAgIGNvbnN0IGZldGNoZWRVc2VyID0gYXdhaXQgdGhpcy5nZXRVc2VySWZOZWVkZWQodXNlcik7XG4gICAgbGV0IHNob3VsZFNlbmRFbWFpbCA9IHRoaXMuY29uZmlnLnNlbmRVc2VyRW1haWxWZXJpZmljYXRpb247XG4gICAgaWYgKHR5cGVvZiBzaG91bGRTZW5kRW1haWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgUHJvbWlzZS5yZXNvbHZlKFxuICAgICAgICB0aGlzLmNvbmZpZy5zZW5kVXNlckVtYWlsVmVyaWZpY2F0aW9uKHtcbiAgICAgICAgICB1c2VyOiBQYXJzZS5PYmplY3QuZnJvbUpTT04oeyBjbGFzc05hbWU6ICdfVXNlcicsIC4uLmZldGNoZWRVc2VyIH0pLFxuICAgICAgICAgIG1hc3RlcjogcmVxLmF1dGg/LmlzTWFzdGVyLFxuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHNob3VsZFNlbmRFbWFpbCA9ICEhcmVzcG9uc2U7XG4gICAgfVxuICAgIGlmICghc2hvdWxkU2VuZEVtYWlsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KGZldGNoZWRVc2VyLnVzZXJuYW1lKTtcblxuICAgIGNvbnN0IGxpbmsgPSBidWlsZEVtYWlsTGluayh0aGlzLmNvbmZpZy52ZXJpZnlFbWFpbFVSTCwgdXNlcm5hbWUsIHRva2VuLCB0aGlzLmNvbmZpZyk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgIGFwcE5hbWU6IHRoaXMuY29uZmlnLmFwcE5hbWUsXG4gICAgICBsaW5rOiBsaW5rLFxuICAgICAgdXNlcjogaW5mbGF0ZSgnX1VzZXInLCBmZXRjaGVkVXNlciksXG4gICAgfTtcbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbCkge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRWZXJpZmljYXRpb25FbWFpbChvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hZGFwdGVyLnNlbmRNYWlsKHRoaXMuZGVmYXVsdFZlcmlmaWNhdGlvbkVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnZW5lcmF0ZXMgdGhlIGdpdmVuIHVzZXIncyBlbWFpbCB2ZXJpZmljYXRpb24gdG9rZW5cbiAgICpcbiAgICogQHBhcmFtIHVzZXJcbiAgICogQHJldHVybnMgeyp9XG4gICAqL1xuICBhc3luYyByZWdlbmVyYXRlRW1haWxWZXJpZnlUb2tlbih1c2VyLCBtYXN0ZXIsIGluc3RhbGxhdGlvbklkLCBpcCkge1xuICAgIGNvbnN0IHsgX2VtYWlsX3ZlcmlmeV90b2tlbiB9ID0gdXNlcjtcbiAgICBsZXQgeyBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQgfSA9IHVzZXI7XG4gICAgaWYgKF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCAmJiBfZW1haWxfdmVyaWZ5X3Rva2VuX2V4cGlyZXNfYXQuX190eXBlID09PSAnRGF0ZScpIHtcbiAgICAgIF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdCA9IF9lbWFpbF92ZXJpZnlfdG9rZW5fZXhwaXJlc19hdC5pc287XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5SZXVzZUlmVmFsaWQgJiZcbiAgICAgIHRoaXMuY29uZmlnLmVtYWlsVmVyaWZ5VG9rZW5WYWxpZGl0eUR1cmF0aW9uICYmXG4gICAgICBfZW1haWxfdmVyaWZ5X3Rva2VuICYmXG4gICAgICBuZXcgRGF0ZSgpIDwgbmV3IERhdGUoX2VtYWlsX3ZlcmlmeV90b2tlbl9leHBpcmVzX2F0KVxuICAgICkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcbiAgICB9XG4gICAgY29uc3Qgc2hvdWxkU2VuZCA9IGF3YWl0IHRoaXMuc2V0RW1haWxWZXJpZnlUb2tlbih1c2VyLCB7XG4gICAgICBvYmplY3Q6IFBhcnNlLlVzZXIuZnJvbUpTT04oT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogJ19Vc2VyJyB9LCB1c2VyKSksXG4gICAgICBtYXN0ZXIsXG4gICAgICBpbnN0YWxsYXRpb25JZCxcbiAgICAgIGlwLFxuICAgICAgcmVzZW5kUmVxdWVzdDogdHJ1ZVxuICAgIH0pO1xuICAgIGlmICghc2hvdWxkU2VuZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKCdfVXNlcicsIHsgdXNlcm5hbWU6IHVzZXIudXNlcm5hbWUgfSwgdXNlcik7XG4gIH1cblxuICBhc3luYyByZXNlbmRWZXJpZmljYXRpb25FbWFpbCh1c2VybmFtZSwgcmVxKSB7XG4gICAgY29uc3QgYVVzZXIgPSBhd2FpdCB0aGlzLmdldFVzZXJJZk5lZWRlZCh7IHVzZXJuYW1lOiB1c2VybmFtZSB9KTtcbiAgICBpZiAoIWFVc2VyIHx8IGFVc2VyLmVtYWlsVmVyaWZpZWQpIHtcbiAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgY29uc3QgZ2VuZXJhdGUgPSBhd2FpdCB0aGlzLnJlZ2VuZXJhdGVFbWFpbFZlcmlmeVRva2VuKGFVc2VyLCByZXEuYXV0aD8uaXNNYXN0ZXIsIHJlcS5hdXRoPy5pbnN0YWxsYXRpb25JZCwgcmVxLmlwKTtcbiAgICBpZiAoZ2VuZXJhdGUpIHtcbiAgICAgIHRoaXMuc2VuZFZlcmlmaWNhdGlvbkVtYWlsKGFVc2VyLCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIHNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCkge1xuICAgIGNvbnN0IHRva2VuID0geyBfcGVyaXNoYWJsZV90b2tlbjogcmFuZG9tU3RyaW5nKDI1KSB9O1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5LnJlc2V0VG9rZW5WYWxpZGl0eUR1cmF0aW9uKSB7XG4gICAgICB0b2tlbi5fcGVyaXNoYWJsZV90b2tlbl9leHBpcmVzX2F0ID0gUGFyc2UuX2VuY29kZShcbiAgICAgICAgdGhpcy5jb25maWcuZ2VuZXJhdGVQYXNzd29yZFJlc2V0VG9rZW5FeHBpcmVzQXQoKVxuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWcuZGF0YWJhc2UudXBkYXRlKFxuICAgICAgJ19Vc2VyJyxcbiAgICAgIHsgJG9yOiBbeyBlbWFpbCB9LCB7IHVzZXJuYW1lOiBlbWFpbCwgZW1haWw6IHsgJGV4aXN0czogZmFsc2UgfSB9XSB9LFxuICAgICAgdG9rZW4sXG4gICAgICB7fSxcbiAgICAgIHRydWVcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc2VuZFBhc3N3b3JkUmVzZXRFbWFpbChlbWFpbCkge1xuICAgIGlmICghdGhpcy5hZGFwdGVyKSB7XG4gICAgICB0aHJvdyAnVHJ5aW5nIHRvIHNlbmQgYSByZXNldCBwYXNzd29yZCBidXQgbm8gYWRhcHRlciBpcyBzZXQnO1xuICAgICAgLy8gIFRPRE86IE5vIGFkYXB0ZXI/XG4gICAgfVxuICAgIGxldCB1c2VyO1xuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnLnBhc3N3b3JkUG9saWN5ICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuUmV1c2VJZlZhbGlkICYmXG4gICAgICB0aGlzLmNvbmZpZy5wYXNzd29yZFBvbGljeS5yZXNldFRva2VuVmFsaWRpdHlEdXJhdGlvblxuICAgICkge1xuICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IHRoaXMuY29uZmlnLmRhdGFiYXNlLmZpbmQoXG4gICAgICAgICdfVXNlcicsXG4gICAgICAgIHtcbiAgICAgICAgICAkb3I6IFtcbiAgICAgICAgICAgIHsgZW1haWwsIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgICAgeyB1c2VybmFtZTogZW1haWwsIGVtYWlsOiB7ICRleGlzdHM6IGZhbHNlIH0sIF9wZXJpc2hhYmxlX3Rva2VuOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHsgbGltaXQ6IDEgfSxcbiAgICAgICAgQXV0aC5tYWludGVuYW5jZSh0aGlzLmNvbmZpZylcbiAgICAgICk7XG4gICAgICBpZiAocmVzdWx0cy5sZW5ndGggPT0gMSkge1xuICAgICAgICBsZXQgZXhwaXJlc0RhdGUgPSByZXN1bHRzWzBdLl9wZXJpc2hhYmxlX3Rva2VuX2V4cGlyZXNfYXQ7XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSAmJiBleHBpcmVzRGF0ZS5fX3R5cGUgPT0gJ0RhdGUnKSB7XG4gICAgICAgICAgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZShleHBpcmVzRGF0ZS5pc28pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChleHBpcmVzRGF0ZSA+IG5ldyBEYXRlKCkpIHtcbiAgICAgICAgICB1c2VyID0gcmVzdWx0c1swXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXVzZXIgfHwgIXVzZXIuX3BlcmlzaGFibGVfdG9rZW4pIHtcbiAgICAgIHVzZXIgPSBhd2FpdCB0aGlzLnNldFBhc3N3b3JkUmVzZXRUb2tlbihlbWFpbCk7XG4gICAgfVxuICAgIGNvbnN0IHRva2VuID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIuX3BlcmlzaGFibGVfdG9rZW4pO1xuICAgIGNvbnN0IHVzZXJuYW1lID0gZW5jb2RlVVJJQ29tcG9uZW50KHVzZXIudXNlcm5hbWUpO1xuXG4gICAgY29uc3QgbGluayA9IGJ1aWxkRW1haWxMaW5rKHRoaXMuY29uZmlnLnJlcXVlc3RSZXNldFBhc3N3b3JkVVJMLCB1c2VybmFtZSwgdG9rZW4sIHRoaXMuY29uZmlnKTtcbiAgICBjb25zdCBvcHRpb25zID0ge1xuICAgICAgYXBwTmFtZTogdGhpcy5jb25maWcuYXBwTmFtZSxcbiAgICAgIGxpbms6IGxpbmssXG4gICAgICB1c2VyOiBpbmZsYXRlKCdfVXNlcicsIHVzZXIpLFxuICAgIH07XG5cbiAgICBpZiAodGhpcy5hZGFwdGVyLnNlbmRQYXNzd29yZFJlc2V0RW1haWwpIHtcbiAgICAgIHRoaXMuYWRhcHRlci5zZW5kUGFzc3dvcmRSZXNldEVtYWlsKG9wdGlvbnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFkYXB0ZXIuc2VuZE1haWwodGhpcy5kZWZhdWx0UmVzZXRQYXNzd29yZEVtYWlsKG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVzZXIpO1xuICB9XG5cbiAgdXBkYXRlUGFzc3dvcmQodXNlcm5hbWUsIHRva2VuLCBwYXNzd29yZCkge1xuICAgIHJldHVybiB0aGlzLmNoZWNrUmVzZXRUb2tlblZhbGlkaXR5KHVzZXJuYW1lLCB0b2tlbilcbiAgICAgIC50aGVuKHVzZXIgPT4gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCB0aGlzLmNvbmZpZykpXG4gICAgICAudGhlbih1c2VyID0+IHtcbiAgICAgICAgY29uc3QgYWNjb3VudExvY2tvdXRQb2xpY3kgPSBuZXcgQWNjb3VudExvY2tvdXQodXNlciwgdGhpcy5jb25maWcpO1xuICAgICAgICByZXR1cm4gYWNjb3VudExvY2tvdXRQb2xpY3kudW5sb2NrQWNjb3VudCgpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGlmIChlcnJvciAmJiBlcnJvci5tZXNzYWdlKSB7XG4gICAgICAgICAgLy8gaW4gY2FzZSBvZiBQYXJzZS5FcnJvciwgZmFpbCB3aXRoIHRoZSBlcnJvciBtZXNzYWdlIG9ubHlcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoZXJyb3IubWVzc2FnZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBkZWZhdWx0VmVyaWZpY2F0aW9uRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgYXJlIGJlaW5nIGFza2VkIHRvIGNvbmZpcm0gdGhlIGUtbWFpbCBhZGRyZXNzICcgK1xuICAgICAgdXNlci5nZXQoJ2VtYWlsJykgK1xuICAgICAgJyB3aXRoICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAnXFxuXFxuJyArXG4gICAgICAnJyArXG4gICAgICAnQ2xpY2sgaGVyZSB0byBjb25maXJtIGl0OlxcbicgK1xuICAgICAgbGluaztcbiAgICBjb25zdCB0byA9IHVzZXIuZ2V0KCdlbWFpbCcpO1xuICAgIGNvbnN0IHN1YmplY3QgPSAnUGxlYXNlIHZlcmlmeSB5b3VyIGUtbWFpbCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxuXG4gIGRlZmF1bHRSZXNldFBhc3N3b3JkRW1haWwoeyBsaW5rLCB1c2VyLCBhcHBOYW1lIH0pIHtcbiAgICBjb25zdCB0ZXh0ID1cbiAgICAgICdIaSxcXG5cXG4nICtcbiAgICAgICdZb3UgcmVxdWVzdGVkIHRvIHJlc2V0IHlvdXIgcGFzc3dvcmQgZm9yICcgK1xuICAgICAgYXBwTmFtZSArXG4gICAgICAodXNlci5nZXQoJ3VzZXJuYW1lJykgPyBcIiAoeW91ciB1c2VybmFtZSBpcyAnXCIgKyB1c2VyLmdldCgndXNlcm5hbWUnKSArIFwiJylcIiA6ICcnKSArXG4gICAgICAnLlxcblxcbicgK1xuICAgICAgJycgK1xuICAgICAgJ0NsaWNrIGhlcmUgdG8gcmVzZXQgaXQ6XFxuJyArXG4gICAgICBsaW5rO1xuICAgIGNvbnN0IHRvID0gdXNlci5nZXQoJ2VtYWlsJykgfHwgdXNlci5nZXQoJ3VzZXJuYW1lJyk7XG4gICAgY29uc3Qgc3ViamVjdCA9ICdQYXNzd29yZCBSZXNldCBmb3IgJyArIGFwcE5hbWU7XG4gICAgcmV0dXJuIHsgdGV4dCwgdG8sIHN1YmplY3QgfTtcbiAgfVxufVxuXG4vLyBNYXJrIHRoaXMgcHJpdmF0ZVxuZnVuY3Rpb24gdXBkYXRlVXNlclBhc3N3b3JkKHVzZXIsIHBhc3N3b3JkLCBjb25maWcpIHtcbiAgcmV0dXJuIHJlc3RcbiAgICAudXBkYXRlKFxuICAgICAgY29uZmlnLFxuICAgICAgQXV0aC5tYXN0ZXIoY29uZmlnKSxcbiAgICAgICdfVXNlcicsXG4gICAgICB7IG9iamVjdElkOiB1c2VyLm9iamVjdElkIH0sXG4gICAgICB7XG4gICAgICAgIHBhc3N3b3JkOiBwYXNzd29yZCxcbiAgICAgIH1cbiAgICApXG4gICAgLnRoZW4oKCkgPT4gdXNlcik7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRW1haWxMaW5rKGRlc3RpbmF0aW9uLCB1c2VybmFtZSwgdG9rZW4sIGNvbmZpZykge1xuICBjb25zdCB1c2VybmFtZUFuZFRva2VuID0gYHRva2VuPSR7dG9rZW59JnVzZXJuYW1lPSR7dXNlcm5hbWV9YDtcblxuICBpZiAoY29uZmlnLnBhcnNlRnJhbWVVUkwpIHtcbiAgICBjb25zdCBkZXN0aW5hdGlvbldpdGhvdXRIb3N0ID0gZGVzdGluYXRpb24ucmVwbGFjZShjb25maWcucHVibGljU2VydmVyVVJMLCAnJyk7XG5cbiAgICByZXR1cm4gYCR7Y29uZmlnLnBhcnNlRnJhbWVVUkx9P2xpbms9JHtlbmNvZGVVUklDb21wb25lbnQoXG4gICAgICBkZXN0aW5hdGlvbldpdGhvdXRIb3N0XG4gICAgKX0mJHt1c2VybmFtZUFuZFRva2VufWA7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIGAke2Rlc3RpbmF0aW9ufT8ke3VzZXJuYW1lQW5kVG9rZW59YDtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBVc2VyQ29udHJvbGxlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsWUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFlBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLEtBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFRLE9BQUEsR0FBQUwsc0JBQUEsQ0FBQUgsT0FBQTtBQUErQixTQUFBRyx1QkFBQU0sR0FBQSxXQUFBQSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxHQUFBRCxHQUFBLEtBQUFFLE9BQUEsRUFBQUYsR0FBQTtBQUFBLFNBQUFHLFFBQUFDLENBQUEsRUFBQUMsQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBSixDQUFBLE9BQUFHLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFMLENBQUEsR0FBQUMsQ0FBQSxLQUFBSyxDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBTixDQUFBLFdBQUFFLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVIs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
|
package/lib/Controllers/index.js
CHANGED
|
@@ -41,11 +41,11 @@ var _pushAdapter = _interopRequireDefault(require("@parse/push-adapter"));
|
|
|
41
41
|
var _ParseGraphQLController = _interopRequireDefault(require("./ParseGraphQLController"));
|
|
42
42
|
var _SchemaCache = _interopRequireDefault(require("../Adapters/Cache/SchemaCache"));
|
|
43
43
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
44
|
-
function ownKeys(
|
|
45
|
-
function _objectSpread(
|
|
44
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
45
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
46
46
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
47
|
-
function _toPropertyKey(
|
|
48
|
-
function _toPrimitive(
|
|
47
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); }
|
|
48
|
+
function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } // Controllers
|
|
49
49
|
// Adapters
|
|
50
50
|
function getControllers(options) {
|
|
51
51
|
const loggerController = getLoggerController(options);
|
|
@@ -259,4 +259,4 @@ function getDatabaseAdapter(databaseURI, collectionPrefix, databaseOptions) {
|
|
|
259
259
|
});
|
|
260
260
|
}
|
|
261
261
|
}
|
|
262
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXV0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX09wdGlvbnMiLCJfQWRhcHRlckxvYWRlciIsIl9kZWZhdWx0cyIsIl9Mb2dnZXJDb250cm9sbGVyIiwiX0ZpbGVzQ29udHJvbGxlciIsIl9Ib29rc0NvbnRyb2xsZXIiLCJfVXNlckNvbnRyb2xsZXIiLCJfQ2FjaGVDb250cm9sbGVyIiwiX0xpdmVRdWVyeUNvbnRyb2xsZXIiLCJfQW5hbHl0aWNzQ29udHJvbGxlciIsIl9QdXNoQ29udHJvbGxlciIsIl9QdXNoUXVldWUiLCJfUHVzaFdvcmtlciIsIl9EYXRhYmFzZUNvbnRyb2xsZXIiLCJfR3JpZEZTQnVja2V0QWRhcHRlciIsIl9XaW5zdG9uTG9nZ2VyQWRhcHRlciIsIl9Jbk1lbW9yeUNhY2hlQWRhcHRlciIsIl9BbmFseXRpY3NBZGFwdGVyIiwiX01vbmdvU3RvcmFnZUFkYXB0ZXIiLCJfUG9zdGdyZXNTdG9yYWdlQWRhcHRlciIsIl9wdXNoQWRhcHRlciIsIl9QYXJzZUdyYXBoUUxDb250cm9sbGVyIiwiX1NjaGVtYUNhY2hlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwib2JqZWN0IiwiZW51bWVyYWJsZU9ubHkiLCJrZXlzIiwiT2JqZWN0IiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwic3ltYm9scyIsImZpbHRlciIsInN5bSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImZvckVhY2giLCJrZXkiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiYXJnIiwiX3RvUHJpbWl0aXZlIiwiU3RyaW5nIiwiaW5wdXQiLCJoaW50IiwicHJpbSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwidW5kZWZpbmVkIiwicmVzIiwiY2FsbCIsIlR5cGVFcnJvciIsIk51bWJlciIsImdldENvbnRyb2xsZXJzIiwib3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXIiLCJnZXRMb2dnZXJDb250cm9sbGVyIiwiZmlsZXNDb250cm9sbGVyIiwiZ2V0RmlsZXNDb250cm9sbGVyIiwidXNlckNvbnRyb2xsZXIiLCJnZXRVc2VyQ29udHJvbGxlciIsInB1c2hDb250cm9sbGVyIiwiaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQiLCJoYXNQdXNoU3VwcG9ydCIsInB1c2hDb250cm9sbGVyUXVldWUiLCJwdXNoV29ya2VyIiwiZ2V0UHVzaENvbnRyb2xsZXIiLCJjYWNoZUNvbnRyb2xsZXIiLCJnZXRDYWNoZUNvbnRyb2xsZXIiLCJhbmFseXRpY3NDb250cm9sbGVyIiwiZ2V0QW5hbHl0aWNzQ29udHJvbGxlciIsImxpdmVRdWVyeUNvbnRyb2xsZXIiLCJnZXRMaXZlUXVlcnlDb250cm9sbGVyIiwiZGF0YWJhc2VDb250cm9sbGVyIiwiZ2V0RGF0YWJhc2VDb250cm9sbGVyIiwiaG9va3NDb250cm9sbGVyIiwiZ2V0SG9va3NDb250cm9sbGVyIiwiYXV0aERhdGFNYW5hZ2VyIiwiZ2V0QXV0aERhdGFNYW5hZ2VyIiwicGFyc2VHcmFwaFFMQ29udHJvbGxlciIsImdldFBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJzY2hlbWFDYWNoZSIsIlNjaGVtYUNhY2hlIiwiYXBwSWQiLCJqc29uTG9ncyIsImxvZ3NGb2xkZXIiLCJ2ZXJib3NlIiwibG9nTGV2ZWwiLCJtYXhMb2dGaWxlcyIsInNpbGVudCIsImxvZ2dlckFkYXB0ZXIiLCJsb2dnZXJPcHRpb25zIiwibG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIiLCJsb2FkQWRhcHRlciIsIldpbnN0b25Mb2dnZXJBZGFwdGVyIiwiTG9nZ2VyQ29udHJvbGxlciIsImRhdGFiYXNlVVJJIiwiZGF0YWJhc2VPcHRpb25zIiwiZmlsZXNBZGFwdGVyIiwiZGF0YWJhc2VBZGFwdGVyIiwicHJlc2VydmVGaWxlTmFtZSIsImZpbGVLZXkiLCJmaWxlc0NvbnRyb2xsZXJBZGFwdGVyIiwiR3JpZEZTQnVja2V0QWRhcHRlciIsIkZpbGVzQ29udHJvbGxlciIsImVtYWlsQWRhcHRlciIsInZlcmlmeVVzZXJFbWFpbHMiLCJlbWFpbENvbnRyb2xsZXJBZGFwdGVyIiwiVXNlckNvbnRyb2xsZXIiLCJjYWNoZUFkYXB0ZXIiLCJjYWNoZVRUTCIsImNhY2hlTWF4U2l6ZSIsImNhY2hlQ29udHJvbGxlckFkYXB0ZXIiLCJJbk1lbW9yeUNhY2hlQWRhcHRlciIsInR0bCIsIm1heFNpemUiLCJDYWNoZUNvbnRyb2xsZXIiLCJjb250cm9sbGVyRGVwcyIsIlBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJtb3VudEdyYXBoUUwiLCJhbmFseXRpY3NBZGFwdGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlckFkYXB0ZXIiLCJBbmFseXRpY3NBZGFwdGVyIiwiQW5hbHl0aWNzQ29udHJvbGxlciIsIkxpdmVRdWVyeUNvbnRyb2xsZXIiLCJsaXZlUXVlcnkiLCJjb2xsZWN0aW9uUHJlZml4IiwiZGVmYXVsdHMiLCJnZXREYXRhYmFzZUFkYXB0ZXIiLCJEYXRhYmFzZUNvbnRyb2xsZXIiLCJ3ZWJob29rS2V5IiwiSG9va3NDb250cm9sbGVyIiwic2NoZWR1bGVkUHVzaCIsInB1c2hPcHRpb25zIiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwiVVJMIiwidG9Mb3dlckNhc2UiLCJlIiwiUG9zdGdyZXNTdG9yYWdlQWRhcHRlciIsInVyaSIsIk1vbmdvU3RvcmFnZUFkYXB0ZXIiLCJtb25nb09wdGlvbnMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvQ29udHJvbGxlcnMvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGF1dGhEYXRhTWFuYWdlciBmcm9tICcuLi9BZGFwdGVycy9BdXRoJztcbmltcG9ydCB7IFBhcnNlU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL09wdGlvbnMnO1xuaW1wb3J0IHsgbG9hZEFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9BZGFwdGVyTG9hZGVyJztcbmltcG9ydCBkZWZhdWx0cyBmcm9tICcuLi9kZWZhdWx0cyc7XG4vLyBDb250cm9sbGVyc1xuaW1wb3J0IHsgTG9nZ2VyQ29udHJvbGxlciB9IGZyb20gJy4vTG9nZ2VyQ29udHJvbGxlcic7XG5pbXBvcnQgeyBGaWxlc0NvbnRyb2xsZXIgfSBmcm9tICcuL0ZpbGVzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBIb29rc0NvbnRyb2xsZXIgfSBmcm9tICcuL0hvb2tzQ29udHJvbGxlcic7XG5pbXBvcnQgeyBVc2VyQ29udHJvbGxlciB9IGZyb20gJy4vVXNlckNvbnRyb2xsZXInO1xuaW1wb3J0IHsgQ2FjaGVDb250cm9sbGVyIH0gZnJvbSAnLi9DYWNoZUNvbnRyb2xsZXInO1xuaW1wb3J0IHsgTGl2ZVF1ZXJ5Q29udHJvbGxlciB9IGZyb20gJy4vTGl2ZVF1ZXJ5Q29udHJvbGxlcic7XG5pbXBvcnQgeyBBbmFseXRpY3NDb250cm9sbGVyIH0gZnJvbSAnLi9BbmFseXRpY3NDb250cm9sbGVyJztcbmltcG9ydCB7IFB1c2hDb250cm9sbGVyIH0gZnJvbSAnLi9QdXNoQ29udHJvbGxlcic7XG5pbXBvcnQgeyBQdXNoUXVldWUgfSBmcm9tICcuLi9QdXNoL1B1c2hRdWV1ZSc7XG5pbXBvcnQgeyBQdXNoV29ya2VyIH0gZnJvbSAnLi4vUHVzaC9QdXNoV29ya2VyJztcbmltcG9ydCBEYXRhYmFzZUNvbnRyb2xsZXIgZnJvbSAnLi9EYXRhYmFzZUNvbnRyb2xsZXInO1xuXG4vLyBBZGFwdGVyc1xuaW1wb3J0IHsgR3JpZEZTQnVja2V0QWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0ZpbGVzL0dyaWRGU0J1Y2tldEFkYXB0ZXInO1xuaW1wb3J0IHsgV2luc3RvbkxvZ2dlckFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9Mb2dnZXIvV2luc3RvbkxvZ2dlckFkYXB0ZXInO1xuaW1wb3J0IHsgSW5NZW1vcnlDYWNoZUFkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9DYWNoZS9Jbk1lbW9yeUNhY2hlQWRhcHRlcic7XG5pbXBvcnQgeyBBbmFseXRpY3NBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvQW5hbHl0aWNzL0FuYWx5dGljc0FkYXB0ZXInO1xuaW1wb3J0IE1vbmdvU3RvcmFnZUFkYXB0ZXIgZnJvbSAnLi4vQWRhcHRlcnMvU3RvcmFnZS9Nb25nby9Nb25nb1N0b3JhZ2VBZGFwdGVyJztcbmltcG9ydCBQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyIGZyb20gJy4uL0FkYXB0ZXJzL1N0b3JhZ2UvUG9zdGdyZXMvUG9zdGdyZXNTdG9yYWdlQWRhcHRlcic7XG5pbXBvcnQgUGFyc2VQdXNoQWRhcHRlciBmcm9tICdAcGFyc2UvcHVzaC1hZGFwdGVyJztcbmltcG9ydCBQYXJzZUdyYXBoUUxDb250cm9sbGVyIGZyb20gJy4vUGFyc2VHcmFwaFFMQ29udHJvbGxlcic7XG5pbXBvcnQgU2NoZW1hQ2FjaGUgZnJvbSAnLi4vQWRhcHRlcnMvQ2FjaGUvU2NoZW1hQ2FjaGUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udHJvbGxlcnMob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKSB7XG4gIGNvbnN0IGxvZ2dlckNvbnRyb2xsZXIgPSBnZXRMb2dnZXJDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBmaWxlc0NvbnRyb2xsZXIgPSBnZXRGaWxlc0NvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IHVzZXJDb250cm9sbGVyID0gZ2V0VXNlckNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IHtcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBwdXNoQ29udHJvbGxlclF1ZXVlLFxuICAgIHB1c2hXb3JrZXIsXG4gIH0gPSBnZXRQdXNoQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgY2FjaGVDb250cm9sbGVyID0gZ2V0Q2FjaGVDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBhbmFseXRpY3NDb250cm9sbGVyID0gZ2V0QW5hbHl0aWNzQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgbGl2ZVF1ZXJ5Q29udHJvbGxlciA9IGdldExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGRhdGFiYXNlQ29udHJvbGxlciA9IGdldERhdGFiYXNlQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgaG9va3NDb250cm9sbGVyID0gZ2V0SG9va3NDb250cm9sbGVyKG9wdGlvbnMsIGRhdGFiYXNlQ29udHJvbGxlcik7XG4gIGNvbnN0IGF1dGhEYXRhTWFuYWdlciA9IGdldEF1dGhEYXRhTWFuYWdlcihvcHRpb25zKTtcbiAgY29uc3QgcGFyc2VHcmFwaFFMQ29udHJvbGxlciA9IGdldFBhcnNlR3JhcGhRTENvbnRyb2xsZXIob3B0aW9ucywge1xuICAgIGRhdGFiYXNlQ29udHJvbGxlcixcbiAgICBjYWNoZUNvbnRyb2xsZXIsXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGxvZ2dlckNvbnRyb2xsZXIsXG4gICAgZmlsZXNDb250cm9sbGVyLFxuICAgIHVzZXJDb250cm9sbGVyLFxuICAgIHB1c2hDb250cm9sbGVyLFxuICAgIGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0LFxuICAgIGhhc1B1c2hTdXBwb3J0LFxuICAgIHB1c2hXb3JrZXIsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBhbmFseXRpY3NDb250cm9sbGVyLFxuICAgIGNhY2hlQ29udHJvbGxlcixcbiAgICBwYXJzZUdyYXBoUUxDb250cm9sbGVyLFxuICAgIGxpdmVRdWVyeUNvbnRyb2xsZXIsXG4gICAgZGF0YWJhc2VDb250cm9sbGVyLFxuICAgIGhvb2tzQ29udHJvbGxlcixcbiAgICBhdXRoRGF0YU1hbmFnZXIsXG4gICAgc2NoZW1hQ2FjaGU6IFNjaGVtYUNhY2hlLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9nZ2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBMb2dnZXJDb250cm9sbGVyIHtcbiAgY29uc3Qge1xuICAgIGFwcElkLFxuICAgIGpzb25Mb2dzLFxuICAgIGxvZ3NGb2xkZXIsXG4gICAgdmVyYm9zZSxcbiAgICBsb2dMZXZlbCxcbiAgICBtYXhMb2dGaWxlcyxcbiAgICBzaWxlbnQsXG4gICAgbG9nZ2VyQWRhcHRlcixcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGxvZ2dlck9wdGlvbnMgPSB7XG4gICAganNvbkxvZ3MsXG4gICAgbG9nc0ZvbGRlcixcbiAgICB2ZXJib3NlLFxuICAgIGxvZ0xldmVsLFxuICAgIHNpbGVudCxcbiAgICBtYXhMb2dGaWxlcyxcbiAgfTtcbiAgY29uc3QgbG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihsb2dnZXJBZGFwdGVyLCBXaW5zdG9uTG9nZ2VyQWRhcHRlciwgbG9nZ2VyT3B0aW9ucyk7XG4gIHJldHVybiBuZXcgTG9nZ2VyQ29udHJvbGxlcihsb2dnZXJDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIGxvZ2dlck9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZXNDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEZpbGVzQ29udHJvbGxlciB7XG4gIGNvbnN0IHtcbiAgICBhcHBJZCxcbiAgICBkYXRhYmFzZVVSSSxcbiAgICBkYXRhYmFzZU9wdGlvbnMgPSB7fSxcbiAgICBmaWxlc0FkYXB0ZXIsXG4gICAgZGF0YWJhc2VBZGFwdGVyLFxuICAgIHByZXNlcnZlRmlsZU5hbWUsXG4gICAgZmlsZUtleSxcbiAgfSA9IG9wdGlvbnM7XG4gIGlmICghZmlsZXNBZGFwdGVyICYmIGRhdGFiYXNlQWRhcHRlcikge1xuICAgIHRocm93ICdXaGVuIHVzaW5nIGFuIGV4cGxpY2l0IGRhdGFiYXNlIGFkYXB0ZXIsIHlvdSBtdXN0IGFsc28gdXNlIGFuIGV4cGxpY2l0IGZpbGVzQWRhcHRlci4nO1xuICB9XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihmaWxlc0FkYXB0ZXIsICgpID0+IHtcbiAgICByZXR1cm4gbmV3IEdyaWRGU0J1Y2tldEFkYXB0ZXIoZGF0YWJhc2VVUkksIGRhdGFiYXNlT3B0aW9ucywgZmlsZUtleSk7XG4gIH0pO1xuICByZXR1cm4gbmV3IEZpbGVzQ29udHJvbGxlcihmaWxlc0NvbnRyb2xsZXJBZGFwdGVyLCBhcHBJZCwge1xuICAgIHByZXNlcnZlRmlsZU5hbWUsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VXNlckNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogVXNlckNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBlbWFpbEFkYXB0ZXIsIHZlcmlmeVVzZXJFbWFpbHMgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGVtYWlsQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihlbWFpbEFkYXB0ZXIpO1xuICByZXR1cm4gbmV3IFVzZXJDb250cm9sbGVyKGVtYWlsQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgdmVyaWZ5VXNlckVtYWlscyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDYWNoZUNvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogQ2FjaGVDb250cm9sbGVyIHtcbiAgY29uc3QgeyBhcHBJZCwgY2FjaGVBZGFwdGVyLCBjYWNoZVRUTCwgY2FjaGVNYXhTaXplIH0gPSBvcHRpb25zO1xuICBjb25zdCBjYWNoZUNvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoY2FjaGVBZGFwdGVyLCBJbk1lbW9yeUNhY2hlQWRhcHRlciwge1xuICAgIGFwcElkOiBhcHBJZCxcbiAgICB0dGw6IGNhY2hlVFRMLFxuICAgIG1heFNpemU6IGNhY2hlTWF4U2l6ZSxcbiAgfSk7XG4gIHJldHVybiBuZXcgQ2FjaGVDb250cm9sbGVyKGNhY2hlQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFBhcnNlR3JhcGhRTENvbnRyb2xsZXIoXG4gIG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyxcbiAgY29udHJvbGxlckRlcHNcbik6IFBhcnNlR3JhcGhRTENvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IFBhcnNlR3JhcGhRTENvbnRyb2xsZXIoe1xuICAgIG1vdW50R3JhcGhRTDogb3B0aW9ucy5tb3VudEdyYXBoUUwsXG4gICAgLi4uY29udHJvbGxlckRlcHMsXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QW5hbHl0aWNzQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBBbmFseXRpY3NDb250cm9sbGVyIHtcbiAgY29uc3QgeyBhbmFseXRpY3NBZGFwdGVyIH0gPSBvcHRpb25zO1xuICBjb25zdCBhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGFuYWx5dGljc0FkYXB0ZXIsIEFuYWx5dGljc0FkYXB0ZXIpO1xuICByZXR1cm4gbmV3IEFuYWx5dGljc0NvbnRyb2xsZXIoYW5hbHl0aWNzQ29udHJvbGxlckFkYXB0ZXIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBMaXZlUXVlcnlDb250cm9sbGVyIHtcbiAgcmV0dXJuIG5ldyBMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnMubGl2ZVF1ZXJ5KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFiYXNlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBEYXRhYmFzZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGRhdGFiYXNlVVJJLCBjb2xsZWN0aW9uUHJlZml4LCBkYXRhYmFzZU9wdGlvbnMgfSA9IG9wdGlvbnM7XG4gIGxldCB7IGRhdGFiYXNlQWRhcHRlciB9ID0gb3B0aW9ucztcbiAgaWYgKFxuICAgIChkYXRhYmFzZU9wdGlvbnMgfHxcbiAgICAgIChkYXRhYmFzZVVSSSAmJiBkYXRhYmFzZVVSSSAhPT0gZGVmYXVsdHMuZGF0YWJhc2VVUkkpIHx8XG4gICAgICBjb2xsZWN0aW9uUHJlZml4ICE9PSBkZWZhdWx0cy5jb2xsZWN0aW9uUHJlZml4KSAmJlxuICAgIGRhdGFiYXNlQWRhcHRlclxuICApIHtcbiAgICB0aHJvdyAnWW91IGNhbm5vdCBzcGVjaWZ5IGJvdGggYSBkYXRhYmFzZUFkYXB0ZXIgYW5kIGEgZGF0YWJhc2VVUkkvZGF0YWJhc2VPcHRpb25zL2NvbGxlY3Rpb25QcmVmaXguJztcbiAgfSBlbHNlIGlmICghZGF0YWJhc2VBZGFwdGVyKSB7XG4gICAgZGF0YWJhc2VBZGFwdGVyID0gZ2V0RGF0YWJhc2VBZGFwdGVyKGRhdGFiYXNlVVJJLCBjb2xsZWN0aW9uUHJlZml4LCBkYXRhYmFzZU9wdGlvbnMpO1xuICB9IGVsc2Uge1xuICAgIGRhdGFiYXNlQWRhcHRlciA9IGxvYWRBZGFwdGVyKGRhdGFiYXNlQWRhcHRlcik7XG4gIH1cbiAgcmV0dXJuIG5ldyBEYXRhYmFzZUNvbnRyb2xsZXIoZGF0YWJhc2VBZGFwdGVyLCBvcHRpb25zKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEhvb2tzQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBkYXRhYmFzZUNvbnRyb2xsZXI6IERhdGFiYXNlQ29udHJvbGxlclxuKTogSG9va3NDb250cm9sbGVyIHtcbiAgY29uc3QgeyBhcHBJZCwgd2ViaG9va0tleSB9ID0gb3B0aW9ucztcbiAgcmV0dXJuIG5ldyBIb29rc0NvbnRyb2xsZXIoYXBwSWQsIGRhdGFiYXNlQ29udHJvbGxlciwgd2ViaG9va0tleSk7XG59XG5cbmludGVyZmFjZSBQdXNoQ29udHJvbGxpbmcge1xuICBwdXNoQ29udHJvbGxlcjogUHVzaENvbnRyb2xsZXI7XG4gIGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0OiBib29sZWFuO1xuICBwdXNoQ29udHJvbGxlclF1ZXVlOiBQdXNoUXVldWU7XG4gIHB1c2hXb3JrZXI6IFB1c2hXb3JrZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRQdXNoQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBQdXNoQ29udHJvbGxpbmcge1xuICBjb25zdCB7IHNjaGVkdWxlZFB1c2gsIHB1c2ggfSA9IG9wdGlvbnM7XG5cbiAgY29uc3QgcHVzaE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBwdXNoKTtcbiAgY29uc3QgcHVzaFF1ZXVlT3B0aW9ucyA9IHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucyB8fCB7fTtcbiAgaWYgKHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucykge1xuICAgIGRlbGV0ZSBwdXNoT3B0aW9ucy5xdWV1ZU9wdGlvbnM7XG4gIH1cblxuICAvLyBQYXNzIHRoZSBwdXNoIG9wdGlvbnMgdG9vIGFzIGl0IHdvcmtzIHdpdGggdGhlIGRlZmF1bHRcbiAgY29uc3QgcHVzaEFkYXB0ZXIgPSBsb2FkQWRhcHRlcihcbiAgICBwdXNoT3B0aW9ucyAmJiBwdXNoT3B0aW9ucy5hZGFwdGVyLFxuICAgIFBhcnNlUHVzaEFkYXB0ZXIsXG4gICAgcHVzaE9wdGlvbnNcbiAgKTtcbiAgLy8gV2UgcGFzcyB0aGUgb3B0aW9ucyBhbmQgdGhlIGJhc2UgY2xhc3MgZm9yIHRoZSBhZGF0cGVyLFxuICAvLyBOb3RlIHRoYXQgcGFzc2luZyBhbiBpbnN0YW5jZSB3b3VsZCB3b3JrIHRvb1xuICBjb25zdCBwdXNoQ29udHJvbGxlciA9IG5ldyBQdXNoQ29udHJvbGxlcigpO1xuICBjb25zdCBoYXNQdXNoU3VwcG9ydCA9ICEhKHB1c2hBZGFwdGVyICYmIHB1c2gpO1xuICBjb25zdCBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCA9IGhhc1B1c2hTdXBwb3J0ICYmIHNjaGVkdWxlZFB1c2ggPT09IHRydWU7XG5cbiAgY29uc3QgeyBkaXNhYmxlUHVzaFdvcmtlciB9ID0gcHVzaFF1ZXVlT3B0aW9ucztcblxuICBjb25zdCBwdXNoQ29udHJvbGxlclF1ZXVlID0gbmV3IFB1c2hRdWV1ZShwdXNoUXVldWVPcHRpb25zKTtcbiAgbGV0IHB1c2hXb3JrZXI7XG4gIGlmICghZGlzYWJsZVB1c2hXb3JrZXIpIHtcbiAgICBwdXNoV29ya2VyID0gbmV3IFB1c2hXb3JrZXIocHVzaEFkYXB0ZXIsIHB1c2hRdWV1ZU9wdGlvbnMpO1xuICB9XG4gIHJldHVybiB7XG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgcHVzaENvbnRyb2xsZXJRdWV1ZSxcbiAgICBwdXNoV29ya2VyLFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0QXV0aERhdGFNYW5hZ2VyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucykge1xuICBjb25zdCB7IGF1dGgsIGVuYWJsZUFub255bW91c1VzZXJzIH0gPSBvcHRpb25zO1xuICByZXR1cm4gYXV0aERhdGFNYW5hZ2VyKGF1dGgsIGVuYWJsZUFub255bW91c1VzZXJzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERhdGFiYXNlQWRhcHRlcihkYXRhYmFzZVVSSSwgY29sbGVjdGlvblByZWZpeCwgZGF0YWJhc2VPcHRpb25zKSB7XG4gIGxldCBwcm90b2NvbDtcbiAgdHJ5IHtcbiAgICBjb25zdCBwYXJzZWRVUkkgPSBuZXcgVVJMKGRhdGFiYXNlVVJJKTtcbiAgICBwcm90b2NvbCA9IHBhcnNlZFVSSS5wcm90b2NvbCA/IHBhcnNlZFVSSS5wcm90b2NvbC50b0xvd2VyQ2FzZSgpIDogbnVsbDtcbiAgfSBjYXRjaCAoZSkge1xuICAgIC8qICovXG4gIH1cbiAgc3dpdGNoIChwcm90b2NvbCkge1xuICAgIGNhc2UgJ3Bvc3RncmVzOic6XG4gICAgY2FzZSAncG9zdGdyZXNxbDonOlxuICAgICAgcmV0dXJuIG5ldyBQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyKHtcbiAgICAgICAgdXJpOiBkYXRhYmFzZVVSSSxcbiAgICAgICAgY29sbGVjdGlvblByZWZpeCxcbiAgICAgICAgZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBuZXcgTW9uZ29TdG9yYWdlQWRhcHRlcih7XG4gICAgICAgIHVyaTogZGF0YWJhc2VVUkksXG4gICAgICAgIGNvbGxlY3Rpb25QcmVmaXgsXG4gICAgICAgIG1vbmdvT3B0aW9uczogZGF0YWJhc2VPcHRpb25zLFxuICAgICAgfSk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsSUFBQUEsS0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsY0FBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBRUEsSUFBQUksaUJBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLGdCQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxnQkFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsZ0JBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLG9CQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxvQkFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsZUFB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
|
|
262
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQXV0aCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX09wdGlvbnMiLCJfQWRhcHRlckxvYWRlciIsIl9kZWZhdWx0cyIsIl9Mb2dnZXJDb250cm9sbGVyIiwiX0ZpbGVzQ29udHJvbGxlciIsIl9Ib29rc0NvbnRyb2xsZXIiLCJfVXNlckNvbnRyb2xsZXIiLCJfQ2FjaGVDb250cm9sbGVyIiwiX0xpdmVRdWVyeUNvbnRyb2xsZXIiLCJfQW5hbHl0aWNzQ29udHJvbGxlciIsIl9QdXNoQ29udHJvbGxlciIsIl9QdXNoUXVldWUiLCJfUHVzaFdvcmtlciIsIl9EYXRhYmFzZUNvbnRyb2xsZXIiLCJfR3JpZEZTQnVja2V0QWRhcHRlciIsIl9XaW5zdG9uTG9nZ2VyQWRhcHRlciIsIl9Jbk1lbW9yeUNhY2hlQWRhcHRlciIsIl9BbmFseXRpY3NBZGFwdGVyIiwiX01vbmdvU3RvcmFnZUFkYXB0ZXIiLCJfUG9zdGdyZXNTdG9yYWdlQWRhcHRlciIsIl9wdXNoQWRhcHRlciIsIl9QYXJzZUdyYXBoUUxDb250cm9sbGVyIiwiX1NjaGVtYUNhY2hlIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5Iiwia2V5IiwidmFsdWUiLCJfdG9Qcm9wZXJ0eUtleSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIk51bWJlciIsImdldENvbnRyb2xsZXJzIiwib3B0aW9ucyIsImxvZ2dlckNvbnRyb2xsZXIiLCJnZXRMb2dnZXJDb250cm9sbGVyIiwiZmlsZXNDb250cm9sbGVyIiwiZ2V0RmlsZXNDb250cm9sbGVyIiwidXNlckNvbnRyb2xsZXIiLCJnZXRVc2VyQ29udHJvbGxlciIsInB1c2hDb250cm9sbGVyIiwiaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQiLCJoYXNQdXNoU3VwcG9ydCIsInB1c2hDb250cm9sbGVyUXVldWUiLCJwdXNoV29ya2VyIiwiZ2V0UHVzaENvbnRyb2xsZXIiLCJjYWNoZUNvbnRyb2xsZXIiLCJnZXRDYWNoZUNvbnRyb2xsZXIiLCJhbmFseXRpY3NDb250cm9sbGVyIiwiZ2V0QW5hbHl0aWNzQ29udHJvbGxlciIsImxpdmVRdWVyeUNvbnRyb2xsZXIiLCJnZXRMaXZlUXVlcnlDb250cm9sbGVyIiwiZGF0YWJhc2VDb250cm9sbGVyIiwiZ2V0RGF0YWJhc2VDb250cm9sbGVyIiwiaG9va3NDb250cm9sbGVyIiwiZ2V0SG9va3NDb250cm9sbGVyIiwiYXV0aERhdGFNYW5hZ2VyIiwiZ2V0QXV0aERhdGFNYW5hZ2VyIiwicGFyc2VHcmFwaFFMQ29udHJvbGxlciIsImdldFBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJzY2hlbWFDYWNoZSIsIlNjaGVtYUNhY2hlIiwiYXBwSWQiLCJqc29uTG9ncyIsImxvZ3NGb2xkZXIiLCJ2ZXJib3NlIiwibG9nTGV2ZWwiLCJtYXhMb2dGaWxlcyIsInNpbGVudCIsImxvZ2dlckFkYXB0ZXIiLCJsb2dnZXJPcHRpb25zIiwibG9nZ2VyQ29udHJvbGxlckFkYXB0ZXIiLCJsb2FkQWRhcHRlciIsIldpbnN0b25Mb2dnZXJBZGFwdGVyIiwiTG9nZ2VyQ29udHJvbGxlciIsImRhdGFiYXNlVVJJIiwiZGF0YWJhc2VPcHRpb25zIiwiZmlsZXNBZGFwdGVyIiwiZGF0YWJhc2VBZGFwdGVyIiwicHJlc2VydmVGaWxlTmFtZSIsImZpbGVLZXkiLCJmaWxlc0NvbnRyb2xsZXJBZGFwdGVyIiwiR3JpZEZTQnVja2V0QWRhcHRlciIsIkZpbGVzQ29udHJvbGxlciIsImVtYWlsQWRhcHRlciIsInZlcmlmeVVzZXJFbWFpbHMiLCJlbWFpbENvbnRyb2xsZXJBZGFwdGVyIiwiVXNlckNvbnRyb2xsZXIiLCJjYWNoZUFkYXB0ZXIiLCJjYWNoZVRUTCIsImNhY2hlTWF4U2l6ZSIsImNhY2hlQ29udHJvbGxlckFkYXB0ZXIiLCJJbk1lbW9yeUNhY2hlQWRhcHRlciIsInR0bCIsIm1heFNpemUiLCJDYWNoZUNvbnRyb2xsZXIiLCJjb250cm9sbGVyRGVwcyIsIlBhcnNlR3JhcGhRTENvbnRyb2xsZXIiLCJtb3VudEdyYXBoUUwiLCJhbmFseXRpY3NBZGFwdGVyIiwiYW5hbHl0aWNzQ29udHJvbGxlckFkYXB0ZXIiLCJBbmFseXRpY3NBZGFwdGVyIiwiQW5hbHl0aWNzQ29udHJvbGxlciIsIkxpdmVRdWVyeUNvbnRyb2xsZXIiLCJsaXZlUXVlcnkiLCJjb2xsZWN0aW9uUHJlZml4IiwiZGVmYXVsdHMiLCJnZXREYXRhYmFzZUFkYXB0ZXIiLCJEYXRhYmFzZUNvbnRyb2xsZXIiLCJ3ZWJob29rS2V5IiwiSG9va3NDb250cm9sbGVyIiwic2NoZWR1bGVkUHVzaCIsInB1c2hPcHRpb25zIiwiYXNzaWduIiwicHVzaFF1ZXVlT3B0aW9ucyIsInF1ZXVlT3B0aW9ucyIsInB1c2hBZGFwdGVyIiwiYWRhcHRlciIsIlBhcnNlUHVzaEFkYXB0ZXIiLCJQdXNoQ29udHJvbGxlciIsImRpc2FibGVQdXNoV29ya2VyIiwiUHVzaFF1ZXVlIiwiUHVzaFdvcmtlciIsImF1dGgiLCJlbmFibGVBbm9ueW1vdXNVc2VycyIsInByb3RvY29sIiwicGFyc2VkVVJJIiwiVVJMIiwidG9Mb3dlckNhc2UiLCJQb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyIiwidXJpIiwiTW9uZ29TdG9yYWdlQWRhcHRlciIsIm1vbmdvT3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Db250cm9sbGVycy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXV0aERhdGFNYW5hZ2VyIGZyb20gJy4uL0FkYXB0ZXJzL0F1dGgnO1xuaW1wb3J0IHsgUGFyc2VTZXJ2ZXJPcHRpb25zIH0gZnJvbSAnLi4vT3B0aW9ucyc7XG5pbXBvcnQgeyBsb2FkQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0FkYXB0ZXJMb2FkZXInO1xuaW1wb3J0IGRlZmF1bHRzIGZyb20gJy4uL2RlZmF1bHRzJztcbi8vIENvbnRyb2xsZXJzXG5pbXBvcnQgeyBMb2dnZXJDb250cm9sbGVyIH0gZnJvbSAnLi9Mb2dnZXJDb250cm9sbGVyJztcbmltcG9ydCB7IEZpbGVzQ29udHJvbGxlciB9IGZyb20gJy4vRmlsZXNDb250cm9sbGVyJztcbmltcG9ydCB7IEhvb2tzQ29udHJvbGxlciB9IGZyb20gJy4vSG9va3NDb250cm9sbGVyJztcbmltcG9ydCB7IFVzZXJDb250cm9sbGVyIH0gZnJvbSAnLi9Vc2VyQ29udHJvbGxlcic7XG5pbXBvcnQgeyBDYWNoZUNvbnRyb2xsZXIgfSBmcm9tICcuL0NhY2hlQ29udHJvbGxlcic7XG5pbXBvcnQgeyBMaXZlUXVlcnlDb250cm9sbGVyIH0gZnJvbSAnLi9MaXZlUXVlcnlDb250cm9sbGVyJztcbmltcG9ydCB7IEFuYWx5dGljc0NvbnRyb2xsZXIgfSBmcm9tICcuL0FuYWx5dGljc0NvbnRyb2xsZXInO1xuaW1wb3J0IHsgUHVzaENvbnRyb2xsZXIgfSBmcm9tICcuL1B1c2hDb250cm9sbGVyJztcbmltcG9ydCB7IFB1c2hRdWV1ZSB9IGZyb20gJy4uL1B1c2gvUHVzaFF1ZXVlJztcbmltcG9ydCB7IFB1c2hXb3JrZXIgfSBmcm9tICcuLi9QdXNoL1B1c2hXb3JrZXInO1xuaW1wb3J0IERhdGFiYXNlQ29udHJvbGxlciBmcm9tICcuL0RhdGFiYXNlQ29udHJvbGxlcic7XG5cbi8vIEFkYXB0ZXJzXG5pbXBvcnQgeyBHcmlkRlNCdWNrZXRBZGFwdGVyIH0gZnJvbSAnLi4vQWRhcHRlcnMvRmlsZXMvR3JpZEZTQnVja2V0QWRhcHRlcic7XG5pbXBvcnQgeyBXaW5zdG9uTG9nZ2VyQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0xvZ2dlci9XaW5zdG9uTG9nZ2VyQWRhcHRlcic7XG5pbXBvcnQgeyBJbk1lbW9yeUNhY2hlQWRhcHRlciB9IGZyb20gJy4uL0FkYXB0ZXJzL0NhY2hlL0luTWVtb3J5Q2FjaGVBZGFwdGVyJztcbmltcG9ydCB7IEFuYWx5dGljc0FkYXB0ZXIgfSBmcm9tICcuLi9BZGFwdGVycy9BbmFseXRpY3MvQW5hbHl0aWNzQWRhcHRlcic7XG5pbXBvcnQgTW9uZ29TdG9yYWdlQWRhcHRlciBmcm9tICcuLi9BZGFwdGVycy9TdG9yYWdlL01vbmdvL01vbmdvU3RvcmFnZUFkYXB0ZXInO1xuaW1wb3J0IFBvc3RncmVzU3RvcmFnZUFkYXB0ZXIgZnJvbSAnLi4vQWRhcHRlcnMvU3RvcmFnZS9Qb3N0Z3Jlcy9Qb3N0Z3Jlc1N0b3JhZ2VBZGFwdGVyJztcbmltcG9ydCBQYXJzZVB1c2hBZGFwdGVyIGZyb20gJ0BwYXJzZS9wdXNoLWFkYXB0ZXInO1xuaW1wb3J0IFBhcnNlR3JhcGhRTENvbnRyb2xsZXIgZnJvbSAnLi9QYXJzZUdyYXBoUUxDb250cm9sbGVyJztcbmltcG9ydCBTY2hlbWFDYWNoZSBmcm9tICcuLi9BZGFwdGVycy9DYWNoZS9TY2hlbWFDYWNoZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb250cm9sbGVycyhvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpIHtcbiAgY29uc3QgbG9nZ2VyQ29udHJvbGxlciA9IGdldExvZ2dlckNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGZpbGVzQ29udHJvbGxlciA9IGdldEZpbGVzQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgdXNlckNvbnRyb2xsZXIgPSBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3Qge1xuICAgIHB1c2hDb250cm9sbGVyLFxuICAgIGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0LFxuICAgIGhhc1B1c2hTdXBwb3J0LFxuICAgIHB1c2hDb250cm9sbGVyUXVldWUsXG4gICAgcHVzaFdvcmtlcixcbiAgfSA9IGdldFB1c2hDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBjYWNoZUNvbnRyb2xsZXIgPSBnZXRDYWNoZUNvbnRyb2xsZXIob3B0aW9ucyk7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXIgPSBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBsaXZlUXVlcnlDb250cm9sbGVyID0gZ2V0TGl2ZVF1ZXJ5Q29udHJvbGxlcihvcHRpb25zKTtcbiAgY29uc3QgZGF0YWJhc2VDb250cm9sbGVyID0gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnMpO1xuICBjb25zdCBob29rc0NvbnRyb2xsZXIgPSBnZXRIb29rc0NvbnRyb2xsZXIob3B0aW9ucywgZGF0YWJhc2VDb250cm9sbGVyKTtcbiAgY29uc3QgYXV0aERhdGFNYW5hZ2VyID0gZ2V0QXV0aERhdGFNYW5hZ2VyKG9wdGlvbnMpO1xuICBjb25zdCBwYXJzZUdyYXBoUUxDb250cm9sbGVyID0gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihvcHRpb25zLCB7XG4gICAgZGF0YWJhc2VDb250cm9sbGVyLFxuICAgIGNhY2hlQ29udHJvbGxlcixcbiAgfSk7XG4gIHJldHVybiB7XG4gICAgbG9nZ2VyQ29udHJvbGxlcixcbiAgICBmaWxlc0NvbnRyb2xsZXIsXG4gICAgdXNlckNvbnRyb2xsZXIsXG4gICAgcHVzaENvbnRyb2xsZXIsXG4gICAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQsXG4gICAgaGFzUHVzaFN1cHBvcnQsXG4gICAgcHVzaFdvcmtlcixcbiAgICBwdXNoQ29udHJvbGxlclF1ZXVlLFxuICAgIGFuYWx5dGljc0NvbnRyb2xsZXIsXG4gICAgY2FjaGVDb250cm9sbGVyLFxuICAgIHBhcnNlR3JhcGhRTENvbnRyb2xsZXIsXG4gICAgbGl2ZVF1ZXJ5Q29udHJvbGxlcixcbiAgICBkYXRhYmFzZUNvbnRyb2xsZXIsXG4gICAgaG9va3NDb250cm9sbGVyLFxuICAgIGF1dGhEYXRhTWFuYWdlcixcbiAgICBzY2hlbWFDYWNoZTogU2NoZW1hQ2FjaGUsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2dnZXJDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExvZ2dlckNvbnRyb2xsZXIge1xuICBjb25zdCB7XG4gICAgYXBwSWQsXG4gICAganNvbkxvZ3MsXG4gICAgbG9nc0ZvbGRlcixcbiAgICB2ZXJib3NlLFxuICAgIGxvZ0xldmVsLFxuICAgIG1heExvZ0ZpbGVzLFxuICAgIHNpbGVudCxcbiAgICBsb2dnZXJBZGFwdGVyLFxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgbG9nZ2VyT3B0aW9ucyA9IHtcbiAgICBqc29uTG9ncyxcbiAgICBsb2dzRm9sZGVyLFxuICAgIHZlcmJvc2UsXG4gICAgbG9nTGV2ZWwsXG4gICAgc2lsZW50LFxuICAgIG1heExvZ0ZpbGVzLFxuICB9O1xuICBjb25zdCBsb2dnZXJDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGxvZ2dlckFkYXB0ZXIsIFdpbnN0b25Mb2dnZXJBZGFwdGVyLCBsb2dnZXJPcHRpb25zKTtcbiAgcmV0dXJuIG5ldyBMb2dnZXJDb250cm9sbGVyKGxvZ2dlckNvbnRyb2xsZXJBZGFwdGVyLCBhcHBJZCwgbG9nZ2VyT3B0aW9ucyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlc0NvbnRyb2xsZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKTogRmlsZXNDb250cm9sbGVyIHtcbiAgY29uc3Qge1xuICAgIGFwcElkLFxuICAgIGRhdGFiYXNlVVJJLFxuICAgIGRhdGFiYXNlT3B0aW9ucyA9IHt9LFxuICAgIGZpbGVzQWRhcHRlcixcbiAgICBkYXRhYmFzZUFkYXB0ZXIsXG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgICBmaWxlS2V5LFxuICB9ID0gb3B0aW9ucztcbiAgaWYgKCFmaWxlc0FkYXB0ZXIgJiYgZGF0YWJhc2VBZGFwdGVyKSB7XG4gICAgdGhyb3cgJ1doZW4gdXNpbmcgYW4gZXhwbGljaXQgZGF0YWJhc2UgYWRhcHRlciwgeW91IG11c3QgYWxzbyB1c2UgYW4gZXhwbGljaXQgZmlsZXNBZGFwdGVyLic7XG4gIH1cbiAgY29uc3QgZmlsZXNDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGZpbGVzQWRhcHRlciwgKCkgPT4ge1xuICAgIHJldHVybiBuZXcgR3JpZEZTQnVja2V0QWRhcHRlcihkYXRhYmFzZVVSSSwgZGF0YWJhc2VPcHRpb25zLCBmaWxlS2V5KTtcbiAgfSk7XG4gIHJldHVybiBuZXcgRmlsZXNDb250cm9sbGVyKGZpbGVzQ29udHJvbGxlckFkYXB0ZXIsIGFwcElkLCB7XG4gICAgcHJlc2VydmVGaWxlTmFtZSxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRVc2VyQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBVc2VyQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgYXBwSWQsIGVtYWlsQWRhcHRlciwgdmVyaWZ5VXNlckVtYWlscyB9ID0gb3B0aW9ucztcbiAgY29uc3QgZW1haWxDb250cm9sbGVyQWRhcHRlciA9IGxvYWRBZGFwdGVyKGVtYWlsQWRhcHRlcik7XG4gIHJldHVybiBuZXcgVXNlckNvbnRyb2xsZXIoZW1haWxDb250cm9sbGVyQWRhcHRlciwgYXBwSWQsIHtcbiAgICB2ZXJpZnlVc2VyRW1haWxzLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENhY2hlQ29udHJvbGxlcihvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMpOiBDYWNoZUNvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCBjYWNoZUFkYXB0ZXIsIGNhY2hlVFRMLCBjYWNoZU1heFNpemUgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNhY2hlQ29udHJvbGxlckFkYXB0ZXIgPSBsb2FkQWRhcHRlcihjYWNoZUFkYXB0ZXIsIEluTWVtb3J5Q2FjaGVBZGFwdGVyLCB7XG4gICAgYXBwSWQ6IGFwcElkLFxuICAgIHR0bDogY2FjaGVUVEwsXG4gICAgbWF4U2l6ZTogY2FjaGVNYXhTaXplLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBDYWNoZUNvbnRyb2xsZXIoY2FjaGVDb250cm9sbGVyQWRhcHRlciwgYXBwSWQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGFyc2VHcmFwaFFMQ29udHJvbGxlcihcbiAgb3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zLFxuICBjb250cm9sbGVyRGVwc1xuKTogUGFyc2VHcmFwaFFMQ29udHJvbGxlciB7XG4gIHJldHVybiBuZXcgUGFyc2VHcmFwaFFMQ29udHJvbGxlcih7XG4gICAgbW91bnRHcmFwaFFMOiBvcHRpb25zLm1vdW50R3JhcGhRTCxcbiAgICAuLi5jb250cm9sbGVyRGVwcyxcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmFseXRpY3NDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IEFuYWx5dGljc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFuYWx5dGljc0FkYXB0ZXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXJBZGFwdGVyID0gbG9hZEFkYXB0ZXIoYW5hbHl0aWNzQWRhcHRlciwgQW5hbHl0aWNzQWRhcHRlcik7XG4gIHJldHVybiBuZXcgQW5hbHl0aWNzQ29udHJvbGxlcihhbmFseXRpY3NDb250cm9sbGVyQWRhcHRlcik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaXZlUXVlcnlDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IExpdmVRdWVyeUNvbnRyb2xsZXIge1xuICByZXR1cm4gbmV3IExpdmVRdWVyeUNvbnRyb2xsZXIob3B0aW9ucy5saXZlUXVlcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IERhdGFiYXNlQ29udHJvbGxlciB7XG4gIGNvbnN0IHsgZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyB9ID0gb3B0aW9ucztcbiAgbGV0IHsgZGF0YWJhc2VBZGFwdGVyIH0gPSBvcHRpb25zO1xuICBpZiAoXG4gICAgKGRhdGFiYXNlT3B0aW9ucyB8fFxuICAgICAgKGRhdGFiYXNlVVJJICYmIGRhdGFiYXNlVVJJICE9PSBkZWZhdWx0cy5kYXRhYmFzZVVSSSkgfHxcbiAgICAgIGNvbGxlY3Rpb25QcmVmaXggIT09IGRlZmF1bHRzLmNvbGxlY3Rpb25QcmVmaXgpICYmXG4gICAgZGF0YWJhc2VBZGFwdGVyXG4gICkge1xuICAgIHRocm93ICdZb3UgY2Fubm90IHNwZWNpZnkgYm90aCBhIGRhdGFiYXNlQWRhcHRlciBhbmQgYSBkYXRhYmFzZVVSSS9kYXRhYmFzZU9wdGlvbnMvY29sbGVjdGlvblByZWZpeC4nO1xuICB9IGVsc2UgaWYgKCFkYXRhYmFzZUFkYXB0ZXIpIHtcbiAgICBkYXRhYmFzZUFkYXB0ZXIgPSBnZXREYXRhYmFzZUFkYXB0ZXIoZGF0YWJhc2VVUkksIGNvbGxlY3Rpb25QcmVmaXgsIGRhdGFiYXNlT3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgZGF0YWJhc2VBZGFwdGVyID0gbG9hZEFkYXB0ZXIoZGF0YWJhc2VBZGFwdGVyKTtcbiAgfVxuICByZXR1cm4gbmV3IERhdGFiYXNlQ29udHJvbGxlcihkYXRhYmFzZUFkYXB0ZXIsIG9wdGlvbnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9va3NDb250cm9sbGVyKFxuICBvcHRpb25zOiBQYXJzZVNlcnZlck9wdGlvbnMsXG4gIGRhdGFiYXNlQ29udHJvbGxlcjogRGF0YWJhc2VDb250cm9sbGVyXG4pOiBIb29rc0NvbnRyb2xsZXIge1xuICBjb25zdCB7IGFwcElkLCB3ZWJob29rS2V5IH0gPSBvcHRpb25zO1xuICByZXR1cm4gbmV3IEhvb2tzQ29udHJvbGxlcihhcHBJZCwgZGF0YWJhc2VDb250cm9sbGVyLCB3ZWJob29rS2V5KTtcbn1cblxuaW50ZXJmYWNlIFB1c2hDb250cm9sbGluZyB7XG4gIHB1c2hDb250cm9sbGVyOiBQdXNoQ29udHJvbGxlcjtcbiAgaGFzUHVzaFNjaGVkdWxlZFN1cHBvcnQ6IGJvb2xlYW47XG4gIHB1c2hDb250cm9sbGVyUXVldWU6IFB1c2hRdWV1ZTtcbiAgcHVzaFdvcmtlcjogUHVzaFdvcmtlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1c2hDb250cm9sbGVyKG9wdGlvbnM6IFBhcnNlU2VydmVyT3B0aW9ucyk6IFB1c2hDb250cm9sbGluZyB7XG4gIGNvbnN0IHsgc2NoZWR1bGVkUHVzaCwgcHVzaCB9ID0gb3B0aW9ucztcblxuICBjb25zdCBwdXNoT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHB1c2gpO1xuICBjb25zdCBwdXNoUXVldWVPcHRpb25zID0gcHVzaE9wdGlvbnMucXVldWVPcHRpb25zIHx8IHt9O1xuICBpZiAocHVzaE9wdGlvbnMucXVldWVPcHRpb25zKSB7XG4gICAgZGVsZXRlIHB1c2hPcHRpb25zLnF1ZXVlT3B0aW9ucztcbiAgfVxuXG4gIC8vIFBhc3MgdGhlIHB1c2ggb3B0aW9ucyB0b28gYXMgaXQgd29ya3Mgd2l0aCB0aGUgZGVmYXVsdFxuICBjb25zdCBwdXNoQWRhcHRlciA9IGxvYWRBZGFwdGVyKFxuICAgIHB1c2hPcHRpb25zICYmIHB1c2hPcHRpb25zLmFkYXB0ZXIsXG4gICAgUGFyc2VQdXNoQWRhcHRlcixcbiAgICBwdXNoT3B0aW9uc1xuICApO1xuICAvLyBXZSBwYXNzIHRoZSBvcHRpb25zIGFuZCB0aGUgYmFzZSBjbGFzcyBmb3IgdGhlIGFkYXRwZXIsXG4gIC8vIE5vdGUgdGhhdCBwYXNzaW5nIGFuIGluc3RhbmNlIHdvdWxkIHdvcmsgdG9vXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyID0gbmV3IFB1c2hDb250cm9sbGVyKCk7XG4gIGNvbnN0IGhhc1B1c2hTdXBwb3J0ID0gISEocHVzaEFkYXB0ZXIgJiYgcHVzaCk7XG4gIGNvbnN0IGhhc1B1c2hTY2hlZHVsZWRTdXBwb3J0ID0gaGFzUHVzaFN1cHBvcnQgJiYgc2NoZWR1bGVkUHVzaCA9PT0gdHJ1ZTtcblxuICBjb25zdCB7IGRpc2FibGVQdXNoV29ya2VyIH0gPSBwdXNoUXVldWVPcHRpb25zO1xuXG4gIGNvbnN0IHB1c2hDb250cm9sbGVyUXVldWUgPSBuZXcgUHVzaFF1ZXVlKHB1c2hRdWV1ZU9wdGlvbnMpO1xuICBsZXQgcHVzaFdvcmtlcjtcbiAgaWYgKCFkaXNhYmxlUHVzaFdvcmtlcikge1xuICAgIHB1c2hXb3JrZXIgPSBuZXcgUHVzaFdvcmtlcihwdXNoQWRhcHRlciwgcHVzaFF1ZXVlT3B0aW9ucyk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBwdXNoQ29udHJvbGxlcixcbiAgICBoYXNQdXNoU3VwcG9ydCxcbiAgICBoYXNQdXNoU2NoZWR1bGVkU3VwcG9ydCxcbiAgICBwdXNoQ29udHJvbGxlclF1ZXVlLFxuICAgIHB1c2hXb3JrZXIsXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBdXRoRGF0YU1hbmFnZXIob3B0aW9uczogUGFyc2VTZXJ2ZXJPcHRpb25zKSB7XG4gIGNvbnN0IHsgYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMgfSA9IG9wdGlvbnM7XG4gIHJldHVybiBhdXRoRGF0YU1hbmFnZXIoYXV0aCwgZW5hYmxlQW5vbnltb3VzVXNlcnMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGF0YWJhc2VBZGFwdGVyKGRhdGFiYXNlVVJJLCBjb2xsZWN0aW9uUHJlZml4LCBkYXRhYmFzZU9wdGlvbnMpIHtcbiAgbGV0IHByb3RvY29sO1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnNlZFVSSSA9IG5ldyBVUkwoZGF0YWJhc2VVUkkpO1xuICAgIHByb3RvY29sID0gcGFyc2VkVVJJLnByb3RvY29sID8gcGFyc2VkVVJJLnByb3RvY29sLnRvTG93ZXJDYXNlKCkgOiBudWxsO1xuICB9IGNhdGNoIChlKSB7XG4gICAgLyogKi9cbiAgfVxuICBzd2l0Y2ggKHByb3RvY29sKSB7XG4gICAgY2FzZSAncG9zdGdyZXM6JzpcbiAgICBjYXNlICdwb3N0Z3Jlc3FsOic6XG4gICAgICByZXR1cm4gbmV3IFBvc3RncmVzU3RvcmFnZUFkYXB0ZXIoe1xuICAgICAgICB1cmk6IGRhdGFiYXNlVVJJLFxuICAgICAgICBjb2xsZWN0aW9uUHJlZml4LFxuICAgICAgICBkYXRhYmFzZU9wdGlvbnMsXG4gICAgICB9KTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIG5ldyBNb25nb1N0b3JhZ2VBZGFwdGVyKHtcbiAgICAgICAgdXJpOiBkYXRhYmFzZVVSSSxcbiAgICAgICAgY29sbGVjdGlvblByZWZpeCxcbiAgICAgICAgbW9uZ29PcHRpb25zOiBkYXRhYmFzZU9wdGlvbnMsXG4gICAgICB9KTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxJQUFBQSxLQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxRQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxjQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBSSxpQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssZ0JBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxnQkFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsb0JBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLG9CQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxlQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxVQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxXQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxtQkFBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQWUsb0JBQUEsR0FBQWYsT0FBQTtBQUNBLElBQUFnQixxQkFBQSxHQUFBaEIsT0FBQTtBQUNBLElBQUFpQixxQkFBQSxHQUFBakIsT0FBQTtBQUNBLElBQUFrQixpQkFBQSxHQUFBbEIsT0FBQTtBQUNBLElBQUFtQixvQkFBQSxHQUFBcEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFvQix1QkFBQSxHQUFBckIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFxQixZQUFBLEdBQUF0QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXNCLHVCQUFBLEdBQUF2QixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQXVCLFlBQUEsR0FBQXhCLHNCQUFBLENBQUFDLE9BQUE7QUFBd0QsU0FBQUQsdUJBQUF5QixHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FBQSxJQUFBZSxlQUFBLENBQUFoQixDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFFLE1BQUEsQ0FBQWMseUJBQUEsR0FBQWQsTUFBQSxDQUFBZSxnQkFBQSxDQUFBbEIsQ0FBQSxFQUFBRyxNQUFBLENBQUFjLHlCQUFBLENBQUFmLENBQUEsS0FBQUgsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsR0FBQWEsT0FBQSxXQUFBZCxDQUFBLElBQUFFLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQW5CLENBQUEsRUFBQUMsQ0FBQSxFQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFOLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUQsQ0FBQTtBQUFBLFNBQUFnQixnQkFBQXBCLEdBQUEsRUFBQXdCLEdBQUEsRUFBQUMsS0FBQSxJQUFBRCxHQUFBLEdBQUFFLGNBQUEsQ0FBQUYsR0FBQSxPQUFBQSxHQUFBLElBQUF4QixHQUFBLElBQUFPLE1BQUEsQ0FBQWdCLGNBQUEsQ0FBQXZCLEdBQUEsRUFBQXdCLEdBQUEsSUFBQUMsS0FBQSxFQUFBQSxLQUFBLEVBQUFaLFVBQUEsUUFBQWMsWUFBQSxRQUFBQyxRQUFBLG9CQUFBNUIsR0FBQSxDQUFBd0IsR0FBQSxJQUFBQyxLQUFBLFdBQUF6QixHQUFBO0FBQUEsU0FBQTBCLGVBQUFwQixDQUFBLFFBQUF1QixDQUFBLEdBQUFDLFlBQUEsQ0FBQXhCLENBQUEsdUNBQUF1QixDQUFBLEdBQUFBLENBQUEsR0FBQUUsTUFBQSxDQUFBRixDQUFBO0FBQUEsU0FBQUMsYUFBQXhCLENBQUEsRUFBQUQsQ0FBQSwyQkFBQUMsQ0FBQSxLQUFBQSxDQUFBLFNBQUFBLENBQUEsTUFBQUYsQ0FBQSxHQUFBRSxDQUFBLENBQUEwQixNQUFBLENBQUFDLFdBQUEsa0JBQUE3QixDQUFBLFFBQUF5QixDQUFBLEdBQUF6QixDQUFBLENBQUE4QixJQUFBLENBQUE1QixDQUFBLEVBQUFELENBQUEsdUNBQUF3QixDQUFBLFNBQUFBLENBQUEsWUFBQU0sU0FBQSx5RUFBQTlCLENBQUEsR0FBQTBCLE1BQUEsR0FBQUssTUFBQSxFQUFBOUIsQ0FBQSxLQXRCeEQ7QUFhQTtBQVdPLFNBQVMrQixjQUFjQSxDQUFDQyxPQUEyQixFQUFFO0VBQzFELE1BQU1DLGdCQUFnQixHQUFHQyxtQkFBbUIsQ0FBQ0YsT0FBTyxDQUFDO0VBQ3JELE1BQU1HLGVBQWUsR0FBR0Msa0JBQWtCLENBQUNKLE9BQU8sQ0FBQztFQUNuRCxNQUFNSyxjQUFjLEdBQUdDLGlCQUFpQixDQUFDTixPQUFPLENBQUM7RUFDakQsTUFBTTtJQUNKTyxjQUFjO0lBQ2RDLHVCQUF1QjtJQUN2QkMsY0FBYztJQUNkQyxtQkFBbUI7SUFDbkJDO0VBQ0YsQ0FBQyxHQUFHQyxpQkFBaUIsQ0FBQ1osT0FBTyxDQUFDO0VBQzlCLE1BQU1hLGVBQWUsR0FBR0Msa0JBQWtCLENBQUNkLE9BQU8sQ0FBQztFQUNuRCxNQUFNZSxtQkFBbUIsR0FBR0Msc0JBQXNCLENBQUNoQixPQUFPLENBQUM7RUFDM0QsTUFBTWlCLG1CQUFtQixHQUFHQyxzQkFBc0IsQ0FBQ2xCLE9BQU8sQ0FBQztFQUMzRCxNQUFNbUIsa0JBQWtCLEdBQUdDLHFCQUFxQixDQUFDcEIsT0FBTyxDQUFDO0VBQ3pELE1BQU1xQixlQUFlLEdBQUdDLGtCQUFrQixDQUFDdEIsT0FBTyxFQUFFbUIsa0JBQWtCLENBQUM7RUFDdkUsTUFBTUksZUFBZSxHQUFHQyxrQkFBa0IsQ0FBQ3hCLE9BQU8sQ0FBQztFQUNuRCxNQUFNeUIsc0JBQXNCLEdBQUdDLHlCQUF5QixDQUFDMUIsT0FBTyxFQUFFO0lBQ2hFbUIsa0JBQWtCO0lBQ2xCTjtFQUNGLENBQUMsQ0FBQztFQUNGLE9BQU87SUFDTFosZ0JBQWdCO0lBQ2hCRSxlQUFlO0lBQ2ZFLGNBQWM7SUFDZEUsY0FBYztJQUNkQyx1QkFBdUI7SUFDdkJDLGNBQWM7SUFDZEUsVUFBVTtJQUNWRCxtQkFBbUI7SUFDbkJLLG1CQUFtQjtJQUNuQkYsZUFBZTtJQUNmWSxzQkFBc0I7SUFDdEJSLG1CQUFtQjtJQUNuQkUsa0JBQWtCO0lBQ2xCRSxlQUFlO0lBQ2ZFLGVBQWU7SUFDZkksV0FBVyxFQUFFQztFQUNmLENBQUM7QUFDSDtBQUVPLFNBQVMxQixtQkFBbUJBLENBQUNGLE9BQTJCLEVBQW9CO0VBQ2pGLE1BQU07SUFDSjZCLEtBQUs7SUFDTEMsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsUUFBUTtJQUNSQyxXQUFXO0lBQ1hDLE1BQU07SUFDTkM7RUFDRixDQUFDLEdBQUdwQyxPQUFPO0VBQ1gsTUFBTXFDLGFBQWEsR0FBRztJQUNwQlAsUUFBUTtJQUNSQyxVQUFVO0lBQ1ZDLE9BQU87SUFDUEMsUUFBUTtJQUNSRSxNQUFNO0lBQ05EO0VBQ0YsQ0FBQztFQUNELE1BQU1JLHVCQUF1QixHQUFHLElBQUFDLDBCQUFXLEVBQUNILGFBQWEsRUFBRUksMENBQW9CLEVBQUVILGFBQWEsQ0FBQztFQUMvRixPQUFPLElBQUlJLGtDQUFnQixDQUFDSCx1QkFBdUIsRUFBRVQsS0FBSyxFQUFFUSxhQUFhLENBQUM7QUFDNUU7QUFFTyxTQUFTakMsa0JBQWtCQSxDQUFDSixPQUEyQixFQUFtQjtFQUMvRSxNQUFNO0lBQ0o2QixLQUFLO0lBQ0xhLFdBQVc7SUFDWEMsZUFBZSxHQUFHLENBQUMsQ0FBQztJQUNwQkMsWUFBWTtJQUNaQyxlQUFlO0lBQ2ZDLGdCQUFnQjtJQUNoQkM7RUFDRixDQUFDLEdBQUcvQyxPQUFPO0VBQ1gsSUFBSSxDQUFDNEMsWUFBWSxJQUFJQyxlQUFlLEVBQUU7SUFDcEMsTUFBTSxzRkFBc0Y7RUFDOUY7RUFDQSxNQUFNRyxzQkFBc0IsR0FBRyxJQUFBVCwwQkFBVyxFQUFDSyxZQUFZLEVBQUUsTUFBTTtJQUM3RCxPQUFPLElBQUlLLHdDQUFtQixDQUFDUCxXQUFXLEVBQUVDLGVBQWUsRUFBRUksT0FBTyxDQUFDO0VBQ3ZFLENBQUMsQ0FBQztFQUNGLE9BQU8sSUFBSUcsZ0NBQWUsQ0FBQ0Ysc0JBQXNCLEVBQUVuQixLQUFLLEVBQUU7SUFDeERpQjtFQUNGLENBQUMsQ0FBQztBQUNKO0FBRU8sU0FBU3hDLGlCQUFpQkEsQ0FBQ04sT0FBMkIsRUFBa0I7RUFDN0UsTUFBTTtJQUFFNkIsS0FBSztJQUFFc0IsWUFBWTtJQUFFQztFQUFpQixDQUFDLEdBQUdwRCxPQUFPO0VBQ3pELE1BQU1xRCxzQkFBc0IsR0FBRyxJQUFBZCwwQkFBVyxFQUFDWSxZQUFZLENBQUM7RUFDeEQsT0FBTyxJQUFJRyw4QkFBYyxDQUFDRCxzQkFBc0IsRUFBRXhCLEtBQUssRUFBRTtJQUN2RHVCO0VBQ0YsQ0FBQyxDQUFDO0FBQ0o7QUFFTyxTQUFTdEMsa0JBQWtCQSxDQUFDZCxPQUEyQixFQUFtQjtFQUMvRSxNQUFNO0lBQUU2QixLQUFLO0lBQUUwQixZQUFZO0lBQUVDLFFBQVE7SUFBRUM7RUFBYSxDQUFDLEdBQUd6RCxPQUFPO0VBQy9ELE1BQU0wRCxzQkFBc0IsR0FBRyxJQUFBbkIsMEJBQVcsRUFBQ2dCLFlBQVksRUFBRUksMENBQW9CLEVBQUU7SUFDN0U5QixLQUFLLEVBQUVBLEtBQUs7SUFDWitCLEdBQUcsRUFBRUosUUFBUTtJQUNiSyxPQUFPLEVBQUVKO0VBQ1gsQ0FBQyxDQUFDO0VBQ0YsT0FBTyxJQUFJSyxnQ0FBZSxDQUFDSixzQkFBc0IsRUFBRTdCLEtBQUssQ0FBQztBQUMzRDtBQUVPLFNBQVNILHlCQUF5QkEsQ0FDdkMxQixPQUEyQixFQUMzQitELGNBQWMsRUFDVTtFQUN4QixPQUFPLElBQUlDLCtCQUFzQixDQUFBdEYsYUFBQTtJQUMvQnVGLFlBQVksRUFBRWpFLE9BQU8sQ0FBQ2lFO0VBQVksR0FDL0JGLGNBQWMsQ0FDbEIsQ0FBQztBQUNKO0FBRU8sU0FBUy9DLHNCQUFzQkEsQ0FBQ2hCLE9BQTJCLEVBQXVCO0VBQ3ZGLE1BQU07SUFBRWtFO0VBQWlCLENBQUMsR0FBR2xFLE9BQU87RUFDcEMsTUFBTW1FLDBCQUEwQixHQUFHLElBQUE1QiwwQkFBVyxFQUFDMkIsZ0JBQWdCLEVBQUVFLGtDQUFnQixDQUFDO0VBQ2xGLE9BQU8sSUFBSUMsd0NBQW1CLENBQUNGLDBCQUEwQixDQUFDO0FBQzVEO0FBRU8sU0FBU2pELHNCQUFzQkEsQ0FBQ2xCLE9BQTJCLEVBQXVCO0VBQ3ZGLE9BQU8sSUFBSXNFLHdDQUFtQixDQUFDdEUsT0FBTyxDQUFDdUUsU0FBUyxDQUFDO0FBQ25EO0FBRU8sU0FBU25ELHFCQUFxQkEsQ0FBQ3BCLE9BQTJCLEVBQXNCO0VBQ3JGLE1BQU07SUFBRTBDLFdBQVc7SUFBRThCLGdCQUFnQjtJQUFFN0I7RUFBZ0IsQ0FBQyxHQUFHM0MsT0FBTztFQUNsRSxJQUFJO0lBQUU2QztFQUFnQixDQUFDLEdBQUc3QyxPQUFPO0VBQ2pDLElBQ0UsQ0FBQzJDLGVBQWUsSUFDYkQsV0FBVyxJQUFJQSxXQUFXLEtBQUsrQixpQkFBUSxDQUFDL0IsV0FBWSxJQUNyRDhCLGdCQUFnQixLQUFLQyxpQkFBUSxDQUFDRCxnQkFBZ0IsS0FDaEQzQixlQUFlLEVBQ2Y7SUFDQSxNQUFNLCtGQUErRjtFQUN2RyxDQUFDLE1BQU0sSUFBSSxDQUFDQSxlQUFlLEVBQUU7SUFDM0JBLGVBQWUsR0FBRzZCLGtCQUFrQixDQUFDaEMsV0FBVyxFQUFFOEIsZ0JBQWdCLEVBQUU3QixlQUFlLENBQUM7RUFDdEYsQ0FBQyxNQUFNO0lBQ0xFLGVBQWUsR0FBRyxJQUFBTiwwQkFBVyxFQUFDTSxlQUFlLENBQUM7RUFDaEQ7RUFDQSxPQUFPLElBQUk4QiwyQkFBa0IsQ0FBQzlCLGVBQWUsRUFBRTdDLE9BQU8sQ0FBQztBQUN6RDtBQUVPLFNBQVNzQixrQkFBa0JBLENBQ2hDdEIsT0FBMkIsRUFDM0JtQixrQkFBc0MsRUFDckI7RUFDakIsTUFBTTtJQUFFVSxLQUFLO0lBQUUrQztFQUFXLENBQUMsR0FBRzVFLE9BQU87RUFDckMsT0FBTyxJQUFJNkUsZ0NBQWUsQ0FBQ2hELEtBQUssRUFBRVYsa0JBQWtCLEVBQUV5RCxVQUFVLENBQUM7QUFDbkU7QUFTTyxTQUFTaEUsaUJBQWlCQSxDQUFDWixPQUEyQixFQUFtQjtFQUM5RSxNQUFNO0lBQUU4RSxhQUFhO0lBQUV0RztFQUFLLENBQUMsR0FBR3dCLE9BQU87RUFFdkMsTUFBTStFLFdBQVcsR0FBRzlHLE1BQU0sQ0FBQytHLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRXhHLElBQUksQ0FBQztFQUMzQyxNQUFNeUcsZ0JBQWdCLEdBQUdGLFdBQVcsQ0FBQ0csWUFBWSxJQUFJLENBQUMsQ0FBQztFQUN2RCxJQUFJSCxXQUFXLENBQUNHLFlBQVksRUFBRTtJQUM1QixPQUFPSCxXQUFXLENBQUNHLFlBQVk7RUFDakM7O0VBRUE7RUFDQSxNQUFNQyxXQUFXLEdBQUcsSUFBQTVDLDBCQUFXLEVBQzdCd0MsV0FBVyxJQUFJQSxXQUFXLENBQUNLLE9BQU8sRUFDbENDLG9CQUFnQixFQUNoQk4sV0FDRixDQUFDO0VBQ0Q7RUFDQTtFQUNBLE1BQU14RSxjQUFjLEdBQUcsSUFBSStFLDhCQUFjLENBQUMsQ0FBQztFQUMzQyxNQUFNN0UsY0FBYyxHQUFHLENBQUMsRUFBRTBFLFdBQVcsSUFBSTNHLElBQUksQ0FBQztFQUM5QyxNQUFNZ0MsdUJBQXVCLEdBQUdDLGNBQWMsSUFBSXFFLGFBQWEsS0FBSyxJQUFJO0VBRXhFLE1BQU07SUFBRVM7RUFBa0IsQ0FBQyxHQUFHTixnQkFBZ0I7RUFFOUMsTUFBTXZFLG1CQUFtQixHQUFHLElBQUk4RSxvQkFBUyxDQUFDUCxnQkFBZ0IsQ0FBQztFQUMzRCxJQUFJdEUsVUFBVTtFQUNkLElBQUksQ0FBQzRFLGlCQUFpQixFQUFFO0lBQ3RCNUUsVUFBVSxHQUFHLElBQUk4RSxzQkFBVSxDQUFDTixXQUFXLEVBQUVGLGdCQUFnQixDQUFDO0VBQzVEO0VBQ0EsT0FBTztJQUNMMUUsY0FBYztJQUNkRSxjQUFjO0lBQ2RELHVCQUF1QjtJQUN2QkUsbUJBQW1CO0lBQ25CQztFQUNGLENBQUM7QUFDSDtBQUVPLFNBQVNhLGtCQUFrQkEsQ0FBQ3hCLE9BQTJCLEVBQUU7RUFDOUQsTUFBTTtJQUFFMEYsSUFBSTtJQUFFQztFQUFxQixDQUFDLEdBQUczRixPQUFPO0VBQzlDLE9BQU8sSUFBQXVCLGFBQWUsRUFBQ21FLElBQUksRUFBRUMsb0JBQW9CLENBQUM7QUFDcEQ7QUFFTyxTQUFTakIsa0JBQWtCQSxDQUFDaEMsV0FBVyxFQUFFOEIsZ0JBQWdCLEVBQUU3QixlQUFlLEVBQUU7RUFDakYsSUFBSWlELFFBQVE7RUFDWixJQUFJO0lBQ0YsTUFBTUMsU0FBUyxHQUFHLElBQUlDLEdBQUcsQ0FBQ3BELFdBQVcsQ0FBQztJQUN0Q2tELFFBQVEsR0FBR0MsU0FBUyxDQUFDRCxRQUFRLEdBQUdDLFNBQVMsQ0FBQ0QsUUFBUSxDQUFDRyxXQUFXLENBQUMsQ0FBQyxHQUFHLElBQUk7RUFDekUsQ0FBQyxDQUFDLE9BQU9qSSxDQUFDLEVBQUU7SUFDVjtFQUFBO0VBRUYsUUFBUThILFFBQVE7SUFDZCxLQUFLLFdBQVc7SUFDaEIsS0FBSyxhQUFhO01BQ2hCLE9BQU8sSUFBSUksK0JBQXNCLENBQUM7UUFDaENDLEdBQUcsRUFBRXZELFdBQVc7UUFDaEI4QixnQkFBZ0I7UUFDaEI3QjtNQUNGLENBQUMsQ0FBQztJQUNKO01BQ0UsT0FBTyxJQUFJdUQsNEJBQW1CLENBQUM7UUFDN0JELEdBQUcsRUFBRXZELFdBQVc7UUFDaEI4QixnQkFBZ0I7UUFDaEIyQixZQUFZLEVBQUV4RDtNQUNoQixDQUFDLENBQUM7RUFDTjtBQUNGIn0=
|
|
@@ -18,13 +18,7 @@
|
|
|
18
18
|
* If there are no deprecations, this must return an empty array.
|
|
19
19
|
*/
|
|
20
20
|
module.exports = [{
|
|
21
|
-
optionKey: 'allowClientClassCreation',
|
|
22
|
-
changeNewDefault: 'false'
|
|
23
|
-
}, {
|
|
24
|
-
optionKey: 'allowExpiredAuthDataToken',
|
|
25
|
-
changeNewDefault: 'false'
|
|
26
|
-
}, {
|
|
27
21
|
optionKey: 'encodeParseObjectInCloudFunction',
|
|
28
22
|
changeNewDefault: 'true'
|
|
29
23
|
}];
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb2R1bGUiLCJleHBvcnRzIiwib3B0aW9uS2V5IiwiY2hhbmdlTmV3RGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9EZXByZWNhdG9yL0RlcHJlY2F0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBkZXByZWNhdGlvbnMuXG4gKlxuICogQWRkIGRlcHJlY2F0aW9ucyB0byB0aGUgYXJyYXkgdXNpbmcgdGhlIGZvbGxvd2luZyBrZXlzOlxuICogLSBgb3B0aW9uS2V5YCB7U3RyaW5nfTogVGhlIG9wdGlvbiBrZXkgaW5jbC4gaXRzIHBhdGgsIGUuZy4gYHNlY3VyaXR5LmVuYWJsZUNoZWNrYC5cbiAqIC0gYGVudktleWAge1N0cmluZ306IFRoZSBlbnZpcm9ubWVudCBrZXksIGUuZy4gYFBBUlNFX1NFUlZFUl9TRUNVUklUWWAuXG4gKiAtIGBjaGFuZ2VOZXdLZXlgIHtTdHJpbmd9OiBTZXQgdGhlIG5ldyBrZXkgbmFtZSBpZiB0aGUgY3VycmVudCBrZXkgd2lsbCBiZSByZXBsYWNlZCxcbiAqIG9yIHNldCB0byBhbiBlbXB0eSBzdHJpbmcgaWYgdGhlIGN1cnJlbnQga2V5IHdpbGwgYmUgcmVtb3ZlZCB3aXRob3V0IHJlcGxhY2VtZW50LlxuICogLSBgY2hhbmdlTmV3RGVmYXVsdGAge1N0cmluZ306IFNldCB0aGUgbmV3IGRlZmF1bHQgdmFsdWUgaWYgdGhlIGtleSdzIGRlZmF1bHQgdmFsdWVcbiAqIHdpbGwgY2hhbmdlIGluIGEgZnV0dXJlIHZlcnNpb24uXG4gKiAtIGBzb2x1dGlvbmA6IFRoZSBpbnN0cnVjdGlvbiB0byByZXNvbHZlIHRoaXMgZGVwcmVjYXRpb24gd2FybmluZy4gT3B0aW9uYWwuIFRoaXNcbiAqIGluc3RydWN0aW9uIG11c3Qgbm90IGluY2x1ZGUgdGhlIGRlcHJlY2F0aW9uIHdhcm5pbmcgd2hpY2ggaXMgYXV0by1nZW5lcmF0ZWQuXG4gKiBJdCBzaG91bGQgb25seSBjb250YWluIGFkZGl0aW9uYWwgaW5zdHJ1Y3Rpb24gcmVnYXJkaW5nIHRoZSBkZXByZWNhdGlvbiBpZlxuICogbmVjZXNzYXJ5LlxuICpcbiAqIElmIHRoZXJlIGFyZSBubyBkZXByZWNhdGlvbnMsIHRoaXMgbXVzdCByZXR1cm4gYW4gZW1wdHkgYXJyYXkuXG4gKi9cbm1vZHVsZS5leHBvcnRzID0gW1xuICB7IG9wdGlvbktleTogJ2VuY29kZVBhcnNlT2JqZWN0SW5DbG91ZEZ1bmN0aW9uJywgY2hhbmdlTmV3RGVmYXVsdDogJ3RydWUnIH0sXG5dO1xuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQUEsTUFBTSxDQUFDQyxPQUFPLEdBQUcsQ0FDZjtFQUFFQyxTQUFTLEVBQUUsa0NBQWtDO0VBQUVDLGdCQUFnQixFQUFFO0FBQU8sQ0FBQyxDQUM1RSJ9
|