parse-server 6.4.0 → 6.5.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -6
- package/lib/AccountLockout.js +1 -1
- package/lib/Adapters/AdapterLoader.js +1 -1
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +1 -1
- package/lib/Adapters/Auth/AuthAdapter.js +1 -1
- package/lib/Adapters/Auth/OAuth1Client.js +1 -1
- package/lib/Adapters/Auth/apple.js +1 -1
- package/lib/Adapters/Auth/facebook.js +1 -1
- package/lib/Adapters/Auth/gcenter.js +1 -1
- package/lib/Adapters/Auth/github.js +1 -1
- package/lib/Adapters/Auth/google.js +1 -1
- package/lib/Adapters/Auth/gpgames.js +1 -1
- package/lib/Adapters/Auth/httpsRequest.js +1 -1
- package/lib/Adapters/Auth/index.js +1 -1
- package/lib/Adapters/Auth/instagram.js +1 -1
- package/lib/Adapters/Auth/janraincapture.js +1 -1
- package/lib/Adapters/Auth/janrainengage.js +1 -1
- package/lib/Adapters/Auth/keycloak.js +1 -1
- package/lib/Adapters/Auth/ldap.js +1 -1
- package/lib/Adapters/Auth/line.js +1 -1
- package/lib/Adapters/Auth/linkedin.js +1 -1
- package/lib/Adapters/Auth/meetup.js +1 -1
- package/lib/Adapters/Auth/mfa.js +1 -1
- package/lib/Adapters/Auth/microsoft.js +1 -1
- package/lib/Adapters/Auth/oauth2.js +1 -1
- package/lib/Adapters/Auth/phantauth.js +1 -1
- package/lib/Adapters/Auth/qq.js +1 -1
- package/lib/Adapters/Auth/spotify.js +1 -1
- package/lib/Adapters/Auth/twitter.js +1 -1
- package/lib/Adapters/Auth/vkontakte.js +1 -1
- package/lib/Adapters/Auth/wechat.js +1 -1
- package/lib/Adapters/Auth/weibo.js +1 -1
- package/lib/Adapters/Cache/CacheAdapter.js +1 -1
- package/lib/Adapters/Cache/InMemoryCache.js +1 -1
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +1 -1
- package/lib/Adapters/Cache/LRUCache.js +1 -1
- package/lib/Adapters/Cache/NullCacheAdapter.js +1 -1
- package/lib/Adapters/Cache/RedisCacheAdapter.js +1 -1
- package/lib/Adapters/Cache/SchemaCache.js +1 -1
- package/lib/Adapters/Email/MailAdapter.js +1 -1
- package/lib/Adapters/Files/FilesAdapter.js +1 -1
- package/lib/Adapters/Files/GridFSBucketAdapter.js +1 -1
- package/lib/Adapters/Files/GridStoreAdapter.js +1 -1
- package/lib/Adapters/Logger/LoggerAdapter.js +1 -1
- package/lib/Adapters/Logger/WinstonLogger.js +1 -1
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +1 -1
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +1 -1
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +1 -1
- package/lib/Adapters/PubSub/PubSubAdapter.js +6 -1
- package/lib/Adapters/PubSub/RedisPubSub.js +1 -1
- package/lib/Adapters/Push/PushAdapter.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +3 -2
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +10 -1
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +1 -1
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +1 -1
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +4 -2
- package/lib/Adapters/Storage/Postgres/sql/index.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +1 -1
- package/lib/Auth.js +1 -1
- package/lib/ClientSDK.js +1 -1
- package/lib/Config.js +1 -1
- package/lib/Controllers/AdaptableController.js +1 -1
- package/lib/Controllers/AnalyticsController.js +1 -1
- package/lib/Controllers/CacheController.js +1 -1
- package/lib/Controllers/DatabaseController.js +40 -12
- package/lib/Controllers/FilesController.js +1 -1
- package/lib/Controllers/HooksController.js +1 -1
- package/lib/Controllers/LiveQueryController.js +1 -1
- package/lib/Controllers/LoggerController.js +1 -1
- package/lib/Controllers/ParseGraphQLController.js +1 -1
- package/lib/Controllers/PushController.js +1 -1
- package/lib/Controllers/SchemaController.js +4 -1
- package/lib/Controllers/UserController.js +1 -1
- package/lib/Controllers/index.js +3 -2
- package/lib/Deprecator/Deprecator.js +1 -1
- package/lib/GraphQL/ParseGraphQLSchema.js +1 -1
- package/lib/GraphQL/ParseGraphQLServer.js +1 -1
- package/lib/GraphQL/helpers/objectsMutations.js +1 -1
- package/lib/GraphQL/helpers/objectsQueries.js +1 -1
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +1 -1
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +1 -1
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1 -1
- package/lib/GraphQL/loaders/defaultRelaySchema.js +1 -1
- package/lib/GraphQL/loaders/filesMutations.js +1 -1
- package/lib/GraphQL/loaders/functionsMutations.js +1 -1
- package/lib/GraphQL/loaders/parseClassMutations.js +1 -1
- package/lib/GraphQL/loaders/parseClassQueries.js +1 -1
- package/lib/GraphQL/loaders/parseClassTypes.js +2 -2
- package/lib/GraphQL/loaders/schemaDirectives.js +1 -1
- package/lib/GraphQL/loaders/schemaMutations.js +1 -1
- package/lib/GraphQL/loaders/schemaQueries.js +1 -1
- package/lib/GraphQL/loaders/schemaTypes.js +1 -1
- package/lib/GraphQL/loaders/usersMutations.js +1 -1
- package/lib/GraphQL/loaders/usersQueries.js +1 -1
- package/lib/GraphQL/parseGraphQLUtils.js +1 -1
- package/lib/GraphQL/transformers/className.js +1 -1
- package/lib/GraphQL/transformers/constraintType.js +1 -1
- package/lib/GraphQL/transformers/inputType.js +1 -1
- package/lib/GraphQL/transformers/mutation.js +1 -1
- package/lib/GraphQL/transformers/outputType.js +1 -1
- package/lib/GraphQL/transformers/query.js +1 -1
- package/lib/GraphQL/transformers/schemaFields.js +1 -1
- package/lib/KeyPromiseQueue.js +1 -1
- package/lib/LiveQuery/Client.js +1 -1
- package/lib/LiveQuery/Id.js +1 -1
- package/lib/LiveQuery/ParseCloudCodePublisher.js +1 -1
- package/lib/LiveQuery/ParseLiveQueryServer.js +1 -1
- package/lib/LiveQuery/ParsePubSub.js +1 -1
- package/lib/LiveQuery/ParseWebSocketServer.js +1 -1
- package/lib/LiveQuery/QueryTools.js +1 -1
- package/lib/LiveQuery/RequestSchema.js +1 -1
- package/lib/LiveQuery/SessionTokenCache.js +1 -1
- package/lib/LiveQuery/Subscription.js +1 -1
- package/lib/LiveQuery/equalObjects.js +1 -1
- package/lib/Options/Definitions.js +22 -4
- package/lib/Options/docs.js +7 -4
- package/lib/Options/index.js +1 -1
- package/lib/Options/parsers.js +1 -1
- package/lib/Page.js +1 -1
- package/lib/ParseMessageQueue.js +1 -1
- package/lib/ParseServer.js +3 -1
- package/lib/ParseServerRESTController.js +1 -1
- package/lib/PromiseRouter.js +1 -1
- package/lib/Push/PushQueue.js +1 -1
- package/lib/Push/PushWorker.js +1 -1
- package/lib/Push/utils.js +1 -1
- package/lib/RestQuery.js +13 -8
- package/lib/RestWrite.js +21 -3
- package/lib/Routers/AggregateRouter.js +1 -1
- package/lib/Routers/AnalyticsRouter.js +1 -1
- package/lib/Routers/AudiencesRouter.js +1 -1
- package/lib/Routers/ClassesRouter.js +1 -1
- package/lib/Routers/CloudCodeRouter.js +1 -1
- package/lib/Routers/FeaturesRouter.js +1 -1
- package/lib/Routers/FilesRouter.js +2 -2
- package/lib/Routers/FunctionsRouter.js +1 -1
- package/lib/Routers/GlobalConfigRouter.js +1 -1
- package/lib/Routers/GraphQLRouter.js +1 -1
- package/lib/Routers/HooksRouter.js +1 -1
- package/lib/Routers/IAPValidationRouter.js +1 -1
- package/lib/Routers/InstallationsRouter.js +1 -1
- package/lib/Routers/LogsRouter.js +1 -1
- package/lib/Routers/PagesRouter.js +1 -1
- package/lib/Routers/PublicAPIRouter.js +1 -1
- package/lib/Routers/PurgeRouter.js +1 -1
- package/lib/Routers/PushRouter.js +1 -1
- package/lib/Routers/RolesRouter.js +1 -1
- package/lib/Routers/SchemasRouter.js +1 -1
- package/lib/Routers/SecurityRouter.js +1 -1
- package/lib/Routers/SessionsRouter.js +1 -1
- package/lib/Routers/UsersRouter.js +4 -4
- package/lib/SchemaMigrations/DefinedSchemas.js +1 -1
- package/lib/SchemaMigrations/Migrations.js +1 -1
- package/lib/Security/Check.js +1 -1
- package/lib/Security/CheckGroup.js +1 -1
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +1 -1
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +1 -1
- package/lib/Security/CheckGroups/CheckGroups.js +1 -1
- package/lib/Security/CheckRunner.js +1 -1
- package/lib/SharedRest.js +1 -1
- package/lib/StatusHandler.js +1 -1
- package/lib/TestUtils.js +1 -1
- package/lib/Utils.js +1 -1
- package/lib/batch.js +1 -1
- package/lib/cache.js +1 -1
- package/lib/cli/definitions/parse-live-query-server.js +1 -1
- package/lib/cli/definitions/parse-server.js +1 -1
- package/lib/cli/parse-live-query-server.js +1 -1
- package/lib/cli/parse-server.js +1 -1
- package/lib/cli/utils/commander.js +1 -1
- package/lib/cli/utils/runner.js +1 -1
- package/lib/cloud-code/Parse.Cloud.js +1 -1
- package/lib/cryptoUtils.js +1 -1
- package/lib/defaults.js +1 -1
- package/lib/deprecated.js +1 -1
- package/lib/index.js +1 -1
- package/lib/logger.js +1 -1
- package/lib/middlewares.js +43 -4
- package/lib/password.js +1 -1
- package/lib/request.js +1 -1
- package/lib/requiredParameter.js +1 -1
- package/lib/rest.js +1 -1
- package/lib/triggers.js +3 -3
- package/lib/vendor/mongodbUrl.js +1 -1
- package/package.json +3 -4
|
@@ -24,7 +24,12 @@ class PubSubAdapter {
|
|
|
24
24
|
* @interface Publisher
|
|
25
25
|
* @memberof PubSubAdapter
|
|
26
26
|
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @interface Subscriber
|
|
30
|
+
* @memberof PubSubAdapter
|
|
31
|
+
*/
|
|
27
32
|
exports.PubSubAdapter = PubSubAdapter;
|
|
28
33
|
var _default = PubSubAdapter;
|
|
29
34
|
exports.default = _default;
|
|
30
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQdWJTdWJBZGFwdGVyIiwiY3JlYXRlUHVibGlzaGVyIiwiY3JlYXRlU3Vic2NyaWJlciIsImV4cG9ydHMiLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvUHViU3ViL1B1YlN1YkFkYXB0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFwib2ZmXCIqL1xuLyoqXG4gKiBAaW50ZXJmYWNlXG4gKiBAbWVtYmVyb2YgbW9kdWxlOkFkYXB0ZXJzXG4gKi9cbmV4cG9ydCBjbGFzcyBQdWJTdWJBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEByZXR1cm5zIHtQdWJTdWJBZGFwdGVyLlB1Ymxpc2hlcn1cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVQdWJsaXNoZXIoKSB7fVxuICAvKipcbiAgICogQHJldHVybnMge1B1YlN1YkFkYXB0ZXIuU3Vic2NyaWJlcn1cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVTdWJzY3JpYmVyKCkge31cbn1cblxuLyoqXG4gKiBAaW50ZXJmYWNlIFB1Ymxpc2hlclxuICogQG1lbWJlcm9mIFB1YlN1YkFkYXB0ZXJcbiAqL1xuaW50ZXJmYWNlIFB1Ymxpc2hlciB7XG4gIC8qKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gY2hhbm5lbCB0aGUgY2hhbm5lbCBpbiB3aGljaCB0byBwdWJsaXNoXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBtZXNzYWdlIHRoZSBtZXNzYWdlIHRvIHB1Ymxpc2hcbiAgICovXG4gIHB1Ymxpc2goY2hhbm5lbDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpOiB2b2lkO1xufVxuXG4vKipcbiAqIEBpbnRlcmZhY2UgU3Vic2NyaWJlclxuICogQG1lbWJlcm9mIFB1YlN1YkFkYXB0ZXJcbiAqL1xuaW50ZXJmYWNlIFN1YnNjcmliZXIge1xuICAvKipcbiAgICogY2FsbGVkIHdoZW4gYSBuZXcgc3Vic2NyaXB0aW9uIHRoZSBjaGFubmVsIGlzIHJlcXVpcmVkXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBjaGFubmVsIHRoZSBjaGFubmVsIHRvIHN1YnNjcmliZVxuICAgKi9cbiAgc3Vic2NyaWJlKGNoYW5uZWw6IHN0cmluZyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIGNhbGxlZCB3aGVuIHRoZSBzdWJzY3JpcHRpb24gZnJvbSB0aGUgY2hhbm5lbCBzaG91bGQgYmUgc3RvcHBlZFxuICAgKiBAcGFyYW0ge1N0cmluZ30gY2hhbm5lbFxuICAgKi9cbiAgdW5zdWJzY3JpYmUoY2hhbm5lbDogc3RyaW5nKTogdm9pZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgUHViU3ViQWRhcHRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLGFBQWEsQ0FBQztFQUN6QjtBQUNGO0FBQ0E7RUFDRSxPQUFPQyxlQUFlQSxDQUFBLEVBQUcsQ0FBQztFQUMxQjtBQUNGO0FBQ0E7RUFDRSxPQUFPQyxnQkFBZ0JBLENBQUEsRUFBRyxDQUFDO0FBQzdCOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQVNBO0FBQ0E7QUFDQTtBQUNBO0FBSEFDLE9BQUEsQ0FBQUgsYUFBQSxHQUFBQSxhQUFBO0FBQUEsSUFBQUksUUFBQSxHQWtCZUosYUFBYTtBQUFBRyxPQUFBLENBQUFFLE9BQUEsR0FBQUQsUUFBQSJ9
|
|
@@ -33,4 +33,4 @@ const RedisPubSub = {
|
|
|
33
33
|
createSubscriber
|
|
34
34
|
};
|
|
35
35
|
exports.RedisPubSub = RedisPubSub;
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVkaXMiLCJyZXF1aXJlIiwib3duS2V5cyIsIm9iamVjdCIsImVudW1lcmFibGVPbmx5Iiwia2V5cyIsIk9iamVjdCIsImdldE93blByb3BlcnR5U3ltYm9scyIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsInRhcmdldCIsImkiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzb3VyY2UiLCJmb3JFYWNoIiwia2V5IiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm9iaiIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsImNhbGwiLCJUeXBlRXJyb3IiLCJOdW1iZXIiLCJjcmVhdGVQdWJsaXNoZXIiLCJyZWRpc1VSTCIsInJlZGlzT3B0aW9ucyIsIm5vX3JlYWR5X2NoZWNrIiwiY3JlYXRlQ2xpZW50IiwidXJsIiwiY3JlYXRlU3Vic2NyaWJlciIsIlJlZGlzUHViU3ViIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9QdWJTdWIvUmVkaXNQdWJTdWIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQ2xpZW50IH0gZnJvbSAncmVkaXMnO1xuXG5mdW5jdGlvbiBjcmVhdGVQdWJsaXNoZXIoeyByZWRpc1VSTCwgcmVkaXNPcHRpb25zID0ge30gfSk6IGFueSB7XG4gIHJlZGlzT3B0aW9ucy5ub19yZWFkeV9jaGVjayA9IHRydWU7XG4gIHJldHVybiBjcmVhdGVDbGllbnQoeyB1cmw6IHJlZGlzVVJMLCAuLi5yZWRpc09wdGlvbnMgfSk7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN1YnNjcmliZXIoeyByZWRpc1VSTCwgcmVkaXNPcHRpb25zID0ge30gfSk6IGFueSB7XG4gIHJlZGlzT3B0aW9ucy5ub19yZWFkeV9jaGVjayA9IHRydWU7XG4gIHJldHVybiBjcmVhdGVDbGllbnQoeyB1cmw6IHJlZGlzVVJMLCAuLi5yZWRpc09wdGlvbnMgfSk7XG59XG5cbmNvbnN0IFJlZGlzUHViU3ViID0ge1xuICBjcmVhdGVQdWJsaXNoZXIsXG4gIGNyZWF0ZVN1YnNjcmliZXIsXG59O1xuXG5leHBvcnQgeyBSZWRpc1B1YlN1YiB9O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLE9BQUE7QUFBcUMsU0FBQUMsUUFBQUMsTUFBQSxFQUFBQyxjQUFBLFFBQUFDLElBQUEsR0FBQUMsTUFBQSxDQUFBRCxJQUFBLENBQUFGLE1BQUEsT0FBQUcsTUFBQSxDQUFBQyxxQkFBQSxRQUFBQyxPQUFBLEdBQUFGLE1BQUEsQ0FBQUMscUJBQUEsQ0FBQUosTUFBQSxHQUFBQyxjQUFBLEtBQUFJLE9BQUEsR0FBQUEsT0FBQSxDQUFBQyxNQUFBLFdBQUFDLEdBQUEsV0FBQUosTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixNQUFBLEVBQUFPLEdBQUEsRUFBQUUsVUFBQSxPQUFBUCxJQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxJQUFBLEVBQUFHLE9BQUEsWUFBQUgsSUFBQTtBQUFBLFNBQUFVLGNBQUFDLE1BQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBRixDQUFBLFVBQUFHLE1BQUEsV0FBQUYsU0FBQSxDQUFBRCxDQUFBLElBQUFDLFNBQUEsQ0FBQUQsQ0FBQSxRQUFBQSxDQUFBLE9BQUFmLE9BQUEsQ0FBQUksTUFBQSxDQUFBYyxNQUFBLE9BQUFDLE9BQUEsV0FBQUMsR0FBQSxJQUFBQyxlQUFBLENBQUFQLE1BQUEsRUFBQU0sR0FBQSxFQUFBRixNQUFBLENBQUFFLEdBQUEsU0FBQWhCLE1BQUEsQ0FBQWtCLHlCQUFBLEdBQUFsQixNQUFBLENBQUFtQixnQkFBQSxDQUFBVCxNQUFBLEVBQUFWLE1BQUEsQ0FBQWtCLHlCQUFBLENBQUFKLE1BQUEsS0FBQWxCLE9BQUEsQ0FBQUksTUFBQSxDQUFBYyxNQUFBLEdBQUFDLE9BQUEsV0FBQUMsR0FBQSxJQUFBaEIsTUFBQSxDQUFBb0IsY0FBQSxDQUFBVixNQUFBLEVBQUFNLEdBQUEsRUFBQWhCLE1BQUEsQ0FBQUssd0JBQUEsQ0FBQVMsTUFBQSxFQUFBRSxHQUFBLGlCQUFBTixNQUFBO0FBQUEsU0FBQU8sZ0JBQUFJLEdBQUEsRUFBQUwsR0FBQSxFQUFBTSxLQUFBLElBQUFOLEdBQUEsR0FBQU8sY0FBQSxDQUFBUCxHQUFBLE9BQUFBLEdBQUEsSUFBQUssR0FBQSxJQUFBckIsTUFBQSxDQUFBb0IsY0FBQSxDQUFBQyxHQUFBLEVBQUFMLEdBQUEsSUFBQU0sS0FBQSxFQUFBQSxLQUFBLEVBQUFoQixVQUFBLFFBQUFrQixZQUFBLFFBQUFDLFFBQUEsb0JBQUFKLEdBQUEsQ0FBQUwsR0FBQSxJQUFBTSxLQUFBLFdBQUFELEdBQUE7QUFBQSxTQUFBRSxlQUFBRyxHQUFBLFFBQUFWLEdBQUEsR0FBQVcsWUFBQSxDQUFBRCxHQUFBLDJCQUFBVixHQUFBLGdCQUFBQSxHQUFBLEdBQUFZLE1BQUEsQ0FBQVosR0FBQTtBQUFBLFNBQUFXLGFBQUFFLEtBQUEsRUFBQUMsSUFBQSxlQUFBRCxLQUFBLGlCQUFBQSxLQUFBLGtCQUFBQSxLQUFBLE1BQUFFLElBQUEsR0FBQUYsS0FBQSxDQUFBRyxNQUFBLENBQUFDLFdBQUEsT0FBQUYsSUFBQSxLQUFBRyxTQUFBLFFBQUFDLEdBQUEsR0FBQUosSUFBQSxDQUFBSyxJQUFBLENBQUFQLEtBQUEsRUFBQUMsSUFBQSwyQkFBQUssR0FBQSxzQkFBQUEsR0FBQSxZQUFBRSxTQUFBLDREQUFBUCxJQUFBLGdCQUFBRixNQUFBLEdBQUFVLE1BQUEsRUFBQVQsS0FBQTtBQUVyQyxTQUFTVSxlQUFlQSxDQUFDO0VBQUVDLFFBQVE7RUFBRUMsWUFBWSxHQUFHLENBQUM7QUFBRSxDQUFDLEVBQU87RUFDN0RBLFlBQVksQ0FBQ0MsY0FBYyxHQUFHLElBQUk7RUFDbEMsT0FBTyxJQUFBQyxtQkFBWSxFQUFBbEMsYUFBQTtJQUFHbUMsR0FBRyxFQUFFSjtFQUFRLEdBQUtDLFlBQVksQ0FBRSxDQUFDO0FBQ3pEO0FBRUEsU0FBU0ksZ0JBQWdCQSxDQUFDO0VBQUVMLFFBQVE7RUFBRUMsWUFBWSxHQUFHLENBQUM7QUFBRSxDQUFDLEVBQU87RUFDOURBLFlBQVksQ0FBQ0MsY0FBYyxHQUFHLElBQUk7RUFDbEMsT0FBTyxJQUFBQyxtQkFBWSxFQUFBbEMsYUFBQTtJQUFHbUMsR0FBRyxFQUFFSjtFQUFRLEdBQUtDLFlBQVksQ0FBRSxDQUFDO0FBQ3pEO0FBRUEsTUFBTUssV0FBVyxHQUFHO0VBQ2xCUCxlQUFlO0VBQ2ZNO0FBQ0YsQ0FBQztBQUFDRSxPQUFBLENBQUFELFdBQUEsR0FBQUEsV0FBQSJ9
|
|
@@ -39,4 +39,4 @@ class PushAdapter {
|
|
|
39
39
|
exports.PushAdapter = PushAdapter;
|
|
40
40
|
var _default = PushAdapter;
|
|
41
41
|
exports.default = _default;
|
|
42
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQdXNoQWRhcHRlciIsInNlbmQiLCJib2R5IiwiaW5zdGFsbGF0aW9ucyIsInB1c2hTdGF0dXMiLCJnZXRWYWxpZFB1c2hUeXBlcyIsImV4cG9ydHMiLCJfZGVmYXVsdCIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvUHVzaC9QdXNoQWRhcHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAZmxvd1xuLyplc2xpbnQgbm8tdW51c2VkLXZhcnM6IFwib2ZmXCIqL1xuLy8gUHVzaCBBZGFwdGVyXG4vL1xuLy8gQWxsb3dzIHlvdSB0byBjaGFuZ2UgdGhlIHB1c2ggbm90aWZpY2F0aW9uIG1lY2hhbmlzbS5cbi8vXG4vLyBBZGFwdGVyIGNsYXNzZXMgbXVzdCBpbXBsZW1lbnQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6XG4vLyAqIGdldFZhbGlkUHVzaFR5cGVzKClcbi8vICogc2VuZChkZXZpY2VzLCBpbnN0YWxsYXRpb25zLCBwdXNoU3RhdHVzKVxuLy9cbi8vIERlZmF1bHQgaXMgUGFyc2VQdXNoQWRhcHRlciwgd2hpY2ggdXNlcyBHQ00gZm9yXG4vLyBhbmRyb2lkIHB1c2ggYW5kIEFQTlMgZm9yIGlvcyBwdXNoLlxuXG4vKipcbiAqIEBpbnRlcmZhY2VcbiAqIEBtZW1iZXJvZiBtb2R1bGU6QWRhcHRlcnNcbiAqL1xuZXhwb3J0IGNsYXNzIFB1c2hBZGFwdGVyIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7YW55fSBib2R5XG4gICAqIEBwYXJhbSB7UGFyc2UuSW5zdGFsbGF0aW9uW119IGluc3RhbGxhdGlvbnNcbiAgICogQHBhcmFtIHthbnl9IHB1c2hTdGF0dXNcbiAgICogQHJldHVybnMge1Byb21pc2V9XG4gICAqL1xuICBzZW5kKGJvZHk6IGFueSwgaW5zdGFsbGF0aW9uczogYW55W10sIHB1c2hTdGF0dXM6IGFueSk6ID9Qcm9taXNlPCo+IHt9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBhcnJheSBvZiB2YWxpZCBwdXNoIHR5cGVzLlxuICAgKiBAcmV0dXJucyB7QXJyYXl9IEFuIGFycmF5IG9mIHZhbGlkIHB1c2ggdHlwZXNcbiAgICovXG4gIGdldFZhbGlkUHVzaFR5cGVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUHVzaEFkYXB0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLFdBQVcsQ0FBQztFQUN2QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRUMsSUFBSUEsQ0FBQ0MsSUFBUyxFQUFFQyxhQUFvQixFQUFFQyxVQUFlLEVBQWUsQ0FBQzs7RUFFckU7QUFDRjtBQUNBO0FBQ0E7RUFDRUMsaUJBQWlCQSxDQUFBLEVBQWE7SUFDNUIsT0FBTyxFQUFFO0VBQ1g7QUFDRjtBQUFDQyxPQUFBLENBQUFOLFdBQUEsR0FBQUEsV0FBQTtBQUFBLElBQUFPLFFBQUEsR0FFY1AsV0FBVztBQUFBTSxPQUFBLENBQUFFLE9BQUEsR0FBQUQsUUFBQSJ9
|
|
@@ -201,4 +201,4 @@ class MongoCollection {
|
|
|
201
201
|
}
|
|
202
202
|
}
|
|
203
203
|
exports.default = MongoCollection;
|
|
204
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb25nb2RiIiwicmVxdWlyZSIsIkNvbGxlY3Rpb24iLCJNb25nb0NvbGxlY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm1vbmdvQ29sbGVjdGlvbiIsIl9tb25nb0NvbGxlY3Rpb24iLCJmaW5kIiwicXVlcnkiLCJza2lwIiwibGltaXQiLCJzb3J0Iiwia2V5cyIsIm1heFRpbWVNUyIsInJlYWRQcmVmZXJlbmNlIiwiaGludCIsImNhc2VJbnNlbnNpdGl2ZSIsImV4cGxhaW4iLCIkc2NvcmUiLCJzY29yZSIsIiRtZXRhIiwiX3Jhd0ZpbmQiLCJjYXRjaCIsImVycm9yIiwiY29kZSIsIm1lc3NhZ2UiLCJtYXRjaCIsImtleSIsImluZGV4IiwiY3JlYXRlSW5kZXgiLCJ0aGVuIiwiY2FzZUluc2Vuc2l0aXZlQ29sbGF0aW9uIiwibG9jYWxlIiwic3RyZW5ndGgiLCJmaW5kT3BlcmF0aW9uIiwicHJvamVjdCIsImNvbGxhdGlvbiIsInRvQXJyYXkiLCJjb3VudCIsIk9iamVjdCIsImxlbmd0aCIsImVzdGltYXRlZERvY3VtZW50Q291bnQiLCJjb3VudE9wZXJhdGlvbiIsImNvdW50RG9jdW1lbnRzIiwiZGlzdGluY3QiLCJmaWVsZCIsImFnZ3JlZ2F0ZSIsInBpcGVsaW5lIiwiaW5zZXJ0T25lIiwib2JqZWN0Iiwic2Vzc2lvbiIsInVwc2VydE9uZSIsInVwZGF0ZSIsInVwZGF0ZU9uZSIsInVwc2VydCIsInVwZGF0ZU1hbnkiLCJkZWxldGVNYW55IiwiX2Vuc3VyZVNwYXJzZVVuaXF1ZUluZGV4SW5CYWNrZ3JvdW5kIiwiaW5kZXhSZXF1ZXN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ1bmlxdWUiLCJiYWNrZ3JvdW5kIiwic3BhcnNlIiwiZHJvcCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BZGFwdGVycy9TdG9yYWdlL01vbmdvL01vbmdvQ29sbGVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBtb25nb2RiID0gcmVxdWlyZSgnbW9uZ29kYicpO1xuY29uc3QgQ29sbGVjdGlvbiA9IG1vbmdvZGIuQ29sbGVjdGlvbjtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgTW9uZ29Db2xsZWN0aW9uIHtcbiAgX21vbmdvQ29sbGVjdGlvbjogQ29sbGVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihtb25nb0NvbGxlY3Rpb246IENvbGxlY3Rpb24pIHtcbiAgICB0aGlzLl9tb25nb0NvbGxlY3Rpb24gPSBtb25nb0NvbGxlY3Rpb247XG4gIH1cblxuICAvLyBEb2VzIGEgZmluZCB3aXRoIFwic21hcnQgaW5kZXhpbmdcIi5cbiAgLy8gQ3VycmVudGx5IHRoaXMganVzdCBtZWFucywgaWYgaXQgbmVlZHMgYSBnZW9pbmRleCBhbmQgdGhlcmUgaXNcbiAgLy8gbm9uZSwgdGhlbiBidWlsZCB0aGUgZ2VvaW5kZXguXG4gIC8vIFRoaXMgY291bGQgYmUgaW1wcm92ZWQgYSBsb3QgYnV0IGl0J3Mgbm90IGNsZWFyIGlmIHRoYXQncyBhIGdvb2RcbiAgLy8gaWRlYS4gT3IgZXZlbiBpZiB0aGlzIGJlaGF2aW9yIGlzIGEgZ29vZCBpZGVhLlxuICBmaW5kKFxuICAgIHF1ZXJ5LFxuICAgIHsgc2tpcCwgbGltaXQsIHNvcnQsIGtleXMsIG1heFRpbWVNUywgcmVhZFByZWZlcmVuY2UsIGhpbnQsIGNhc2VJbnNlbnNpdGl2ZSwgZXhwbGFpbiB9ID0ge31cbiAgKSB7XG4gICAgLy8gU3VwcG9ydCBmb3IgRnVsbCBUZXh0IFNlYXJjaCAtICR0ZXh0XG4gICAgaWYgKGtleXMgJiYga2V5cy4kc2NvcmUpIHtcbiAgICAgIGRlbGV0ZSBrZXlzLiRzY29yZTtcbiAgICAgIGtleXMuc2NvcmUgPSB7ICRtZXRhOiAndGV4dFNjb3JlJyB9O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fcmF3RmluZChxdWVyeSwge1xuICAgICAgc2tpcCxcbiAgICAgIGxpbWl0LFxuICAgICAgc29ydCxcbiAgICAgIGtleXMsXG4gICAgICBtYXhUaW1lTVMsXG4gICAgICByZWFkUHJlZmVyZW5jZSxcbiAgICAgIGhpbnQsXG4gICAgICBjYXNlSW5zZW5zaXRpdmUsXG4gICAgICBleHBsYWluLFxuICAgIH0pLmNhdGNoKGVycm9yID0+IHtcbiAgICAgIC8vIENoZWNrIGZvciBcIm5vIGdlb2luZGV4XCIgZXJyb3JcbiAgICAgIGlmIChlcnJvci5jb2RlICE9IDE3MDA3ICYmICFlcnJvci5tZXNzYWdlLm1hdGNoKC91bmFibGUgdG8gZmluZCBpbmRleCBmb3IgLmdlb05lYXIvKSkge1xuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIC8vIEZpZ3VyZSBvdXQgd2hhdCBrZXkgbmVlZHMgYW4gaW5kZXhcbiAgICAgIGNvbnN0IGtleSA9IGVycm9yLm1lc3NhZ2UubWF0Y2goL2ZpZWxkPShbQS1aYS16XzAtOV0rKSAvKVsxXTtcbiAgICAgIGlmICgha2V5KSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuXG4gICAgICB2YXIgaW5kZXggPSB7fTtcbiAgICAgIGluZGV4W2tleV0gPSAnMmQnO1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5fbW9uZ29Db2xsZWN0aW9uXG4gICAgICAgICAgLmNyZWF0ZUluZGV4KGluZGV4KVxuICAgICAgICAgIC8vIFJldHJ5LCBidXQganVzdCBvbmNlLlxuICAgICAgICAgIC50aGVuKCgpID0+XG4gICAgICAgICAgICB0aGlzLl9yYXdGaW5kKHF1ZXJ5LCB7XG4gICAgICAgICAgICAgIHNraXAsXG4gICAgICAgICAgICAgIGxpbWl0LFxuICAgICAgICAgICAgICBzb3J0LFxuICAgICAgICAgICAgICBrZXlzLFxuICAgICAgICAgICAgICBtYXhUaW1lTVMsXG4gICAgICAgICAgICAgIHJlYWRQcmVmZXJlbmNlLFxuICAgICAgICAgICAgICBoaW50LFxuICAgICAgICAgICAgICBjYXNlSW5zZW5zaXRpdmUsXG4gICAgICAgICAgICAgIGV4cGxhaW4sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ29sbGF0aW9uIHRvIHN1cHBvcnQgY2FzZSBpbnNlbnNpdGl2ZSBxdWVyaWVzXG4gICAqL1xuICBzdGF0aWMgY2FzZUluc2Vuc2l0aXZlQ29sbGF0aW9uKCkge1xuICAgIHJldHVybiB7IGxvY2FsZTogJ2VuX1VTJywgc3RyZW5ndGg6IDIgfTtcbiAgfVxuXG4gIF9yYXdGaW5kKFxuICAgIHF1ZXJ5LFxuICAgIHsgc2tpcCwgbGltaXQsIHNvcnQsIGtleXMsIG1heFRpbWVNUywgcmVhZFByZWZlcmVuY2UsIGhpbnQsIGNhc2VJbnNlbnNpdGl2ZSwgZXhwbGFpbiB9ID0ge31cbiAgKSB7XG4gICAgbGV0IGZpbmRPcGVyYXRpb24gPSB0aGlzLl9tb25nb0NvbGxlY3Rpb24uZmluZChxdWVyeSwge1xuICAgICAgc2tpcCxcbiAgICAgIGxpbWl0LFxuICAgICAgc29ydCxcbiAgICAgIHJlYWRQcmVmZXJlbmNlLFxuICAgICAgaGludCxcbiAgICB9KTtcblxuICAgIGlmIChrZXlzKSB7XG4gICAgICBmaW5kT3BlcmF0aW9uID0gZmluZE9wZXJhdGlvbi5wcm9qZWN0KGtleXMpO1xuICAgIH1cblxuICAgIGlmIChjYXNlSW5zZW5zaXRpdmUpIHtcbiAgICAgIGZpbmRPcGVyYXRpb24gPSBmaW5kT3BlcmF0aW9uLmNvbGxhdGlvbihNb25nb0NvbGxlY3Rpb24uY2FzZUluc2Vuc2l0aXZlQ29sbGF0aW9uKCkpO1xuICAgIH1cblxuICAgIGlmIChtYXhUaW1lTVMpIHtcbiAgICAgIGZpbmRPcGVyYXRpb24gPSBmaW5kT3BlcmF0aW9uLm1heFRpbWVNUyhtYXhUaW1lTVMpO1xuICAgIH1cblxuICAgIHJldHVybiBleHBsYWluID8gZmluZE9wZXJhdGlvbi5leHBsYWluKGV4cGxhaW4pIDogZmluZE9wZXJhdGlvbi50b0FycmF5KCk7XG4gIH1cblxuICBjb3VudChxdWVyeSwgeyBza2lwLCBsaW1pdCwgc29ydCwgbWF4VGltZU1TLCByZWFkUHJlZmVyZW5jZSwgaGludCB9ID0ge30pIHtcbiAgICAvLyBJZiBxdWVyeSBpcyBlbXB0eSwgdGhlbiB1c2UgZXN0aW1hdGVkRG9jdW1lbnRDb3VudCBpbnN0ZWFkLlxuICAgIC8vIFRoaXMgaXMgZHVlIHRvIGNvdW50RG9jdW1lbnRzIHBlcmZvcm1pbmcgYSBzY2FuLFxuICAgIC8vIHdoaWNoIGdyZWF0bHkgaW5jcmVhc2VzIGV4ZWN1dGlvbiB0aW1lIHdoZW4gYmVpbmcgcnVuIG9uIGxhcmdlIGNvbGxlY3Rpb25zLlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vQXV0b21hdHRpYy9tb25nb29zZS9pc3N1ZXMvNjcxMyBmb3IgbW9yZSBpbmZvIHJlZ2FyZGluZyB0aGlzIHByb2JsZW0uXG4gICAgaWYgKHR5cGVvZiBxdWVyeSAhPT0gJ29iamVjdCcgfHwgIU9iamVjdC5rZXlzKHF1ZXJ5KS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB0aGlzLl9tb25nb0NvbGxlY3Rpb24uZXN0aW1hdGVkRG9jdW1lbnRDb3VudCh7XG4gICAgICAgIG1heFRpbWVNUyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IGNvdW50T3BlcmF0aW9uID0gdGhpcy5fbW9uZ29Db2xsZWN0aW9uLmNvdW50RG9jdW1lbnRzKHF1ZXJ5LCB7XG4gICAgICBza2lwLFxuICAgICAgbGltaXQsXG4gICAgICBzb3J0LFxuICAgICAgbWF4VGltZU1TLFxuICAgICAgcmVhZFByZWZlcmVuY2UsXG4gICAgICBoaW50LFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvdW50T3BlcmF0aW9uO1xuICB9XG5cbiAgZGlzdGluY3QoZmllbGQsIHF1ZXJ5KSB7XG4gICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvbi5kaXN0aW5jdChmaWVsZCwgcXVlcnkpO1xuICB9XG5cbiAgYWdncmVnYXRlKHBpcGVsaW5lLCB7IG1heFRpbWVNUywgcmVhZFByZWZlcmVuY2UsIGhpbnQsIGV4cGxhaW4gfSA9IHt9KSB7XG4gICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvblxuICAgICAgLmFnZ3JlZ2F0ZShwaXBlbGluZSwgeyBtYXhUaW1lTVMsIHJlYWRQcmVmZXJlbmNlLCBoaW50LCBleHBsYWluIH0pXG4gICAgICAudG9BcnJheSgpO1xuICB9XG5cbiAgaW5zZXJ0T25lKG9iamVjdCwgc2Vzc2lvbikge1xuICAgIHJldHVybiB0aGlzLl9tb25nb0NvbGxlY3Rpb24uaW5zZXJ0T25lKG9iamVjdCwgeyBzZXNzaW9uIH0pO1xuICB9XG5cbiAgLy8gQXRvbWljYWxseSB1cGRhdGVzIGRhdGEgaW4gdGhlIGRhdGFiYXNlIGZvciBhIHNpbmdsZSAoZmlyc3QpIG9iamVjdCB0aGF0IG1hdGNoZWQgdGhlIHF1ZXJ5XG4gIC8vIElmIHRoZXJlIGlzIG5vdGhpbmcgdGhhdCBtYXRjaGVzIHRoZSBxdWVyeSAtIGRvZXMgaW5zZXJ0XG4gIC8vIFBvc3RncmVzIE5vdGU6IGBJTlNFUlQgLi4uIE9OIENPTkZMSUNUIFVQREFURWAgdGhhdCBpcyBhdmFpbGFibGUgc2luY2UgOS41LlxuICB1cHNlcnRPbmUocXVlcnksIHVwZGF0ZSwgc2Vzc2lvbikge1xuICAgIHJldHVybiB0aGlzLl9tb25nb0NvbGxlY3Rpb24udXBkYXRlT25lKHF1ZXJ5LCB1cGRhdGUsIHtcbiAgICAgIHVwc2VydDogdHJ1ZSxcbiAgICAgIHNlc3Npb24sXG4gICAgfSk7XG4gIH1cblxuICB1cGRhdGVPbmUocXVlcnksIHVwZGF0ZSkge1xuICAgIHJldHVybiB0aGlzLl9tb25nb0NvbGxlY3Rpb24udXBkYXRlT25lKHF1ZXJ5LCB1cGRhdGUpO1xuICB9XG5cbiAgdXBkYXRlTWFueShxdWVyeSwgdXBkYXRlLCBzZXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvbi51cGRhdGVNYW55KHF1ZXJ5LCB1cGRhdGUsIHsgc2Vzc2lvbiB9KTtcbiAgfVxuXG4gIGRlbGV0ZU1hbnkocXVlcnksIHNlc3Npb24pIHtcbiAgICByZXR1cm4gdGhpcy5fbW9uZ29Db2xsZWN0aW9uLmRlbGV0ZU1hbnkocXVlcnksIHsgc2Vzc2lvbiB9KTtcbiAgfVxuXG4gIF9lbnN1cmVTcGFyc2VVbmlxdWVJbmRleEluQmFja2dyb3VuZChpbmRleFJlcXVlc3QpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5fbW9uZ29Db2xsZWN0aW9uLmNyZWF0ZUluZGV4KFxuICAgICAgICBpbmRleFJlcXVlc3QsXG4gICAgICAgIHsgdW5pcXVlOiB0cnVlLCBiYWNrZ3JvdW5kOiB0cnVlLCBzcGFyc2U6IHRydWUgfSxcbiAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIGRyb3AoKSB7XG4gICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvbi5kcm9wKCk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQ2xDLE1BQU1DLFVBQVUsR0FBR0YsT0FBTyxDQUFDRSxVQUFVO0FBRXRCLE1BQU1DLGVBQWUsQ0FBQztFQUduQ0MsV0FBVyxDQUFDQyxlQUEyQixFQUFFO0lBQ3ZDLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUdELGVBQWU7RUFDekM7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBRSxJQUFJLENBQ0ZDLEtBQUssRUFDTDtJQUFFQyxJQUFJO0lBQUVDLEtBQUs7SUFBRUMsSUFBSTtJQUFFQyxJQUFJO0lBQUVDLFNBQVM7SUFBRUMsY0FBYztJQUFFQyxJQUFJO0lBQUVDLGVBQWU7SUFBRUM7RUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQzNGO0lBQ0E7SUFDQSxJQUFJTCxJQUFJLElBQUlBLElBQUksQ0FB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
|
|
204
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb25nb2RiIiwicmVxdWlyZSIsIkNvbGxlY3Rpb24iLCJNb25nb0NvbGxlY3Rpb24iLCJjb25zdHJ1Y3RvciIsIm1vbmdvQ29sbGVjdGlvbiIsIl9tb25nb0NvbGxlY3Rpb24iLCJmaW5kIiwicXVlcnkiLCJza2lwIiwibGltaXQiLCJzb3J0Iiwia2V5cyIsIm1heFRpbWVNUyIsInJlYWRQcmVmZXJlbmNlIiwiaGludCIsImNhc2VJbnNlbnNpdGl2ZSIsImV4cGxhaW4iLCIkc2NvcmUiLCJzY29yZSIsIiRtZXRhIiwiX3Jhd0ZpbmQiLCJjYXRjaCIsImVycm9yIiwiY29kZSIsIm1lc3NhZ2UiLCJtYXRjaCIsImtleSIsImluZGV4IiwiY3JlYXRlSW5kZXgiLCJ0aGVuIiwiY2FzZUluc2Vuc2l0aXZlQ29sbGF0aW9uIiwibG9jYWxlIiwic3RyZW5ndGgiLCJmaW5kT3BlcmF0aW9uIiwicHJvamVjdCIsImNvbGxhdGlvbiIsInRvQXJyYXkiLCJjb3VudCIsIk9iamVjdCIsImxlbmd0aCIsImVzdGltYXRlZERvY3VtZW50Q291bnQiLCJjb3VudE9wZXJhdGlvbiIsImNvdW50RG9jdW1lbnRzIiwiZGlzdGluY3QiLCJmaWVsZCIsImFnZ3JlZ2F0ZSIsInBpcGVsaW5lIiwiaW5zZXJ0T25lIiwib2JqZWN0Iiwic2Vzc2lvbiIsInVwc2VydE9uZSIsInVwZGF0ZSIsInVwZGF0ZU9uZSIsInVwc2VydCIsInVwZGF0ZU1hbnkiLCJkZWxldGVNYW55IiwiX2Vuc3VyZVNwYXJzZVVuaXF1ZUluZGV4SW5CYWNrZ3JvdW5kIiwiaW5kZXhSZXF1ZXN0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJ1bmlxdWUiLCJiYWNrZ3JvdW5kIiwic3BhcnNlIiwiZHJvcCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29Db2xsZWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1vbmdvZGIgPSByZXF1aXJlKCdtb25nb2RiJyk7XG5jb25zdCBDb2xsZWN0aW9uID0gbW9uZ29kYi5Db2xsZWN0aW9uO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBNb25nb0NvbGxlY3Rpb24ge1xuICBfbW9uZ29Db2xsZWN0aW9uOiBDb2xsZWN0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKG1vbmdvQ29sbGVjdGlvbjogQ29sbGVjdGlvbikge1xuICAgIHRoaXMuX21vbmdvQ29sbGVjdGlvbiA9IG1vbmdvQ29sbGVjdGlvbjtcbiAgfVxuXG4gIC8vIERvZXMgYSBmaW5kIHdpdGggXCJzbWFydCBpbmRleGluZ1wiLlxuICAvLyBDdXJyZW50bHkgdGhpcyBqdXN0IG1lYW5zLCBpZiBpdCBuZWVkcyBhIGdlb2luZGV4IGFuZCB0aGVyZSBpc1xuICAvLyBub25lLCB0aGVuIGJ1aWxkIHRoZSBnZW9pbmRleC5cbiAgLy8gVGhpcyBjb3VsZCBiZSBpbXByb3ZlZCBhIGxvdCBidXQgaXQncyBub3QgY2xlYXIgaWYgdGhhdCdzIGEgZ29vZFxuICAvLyBpZGVhLiBPciBldmVuIGlmIHRoaXMgYmVoYXZpb3IgaXMgYSBnb29kIGlkZWEuXG4gIGZpbmQoXG4gICAgcXVlcnksXG4gICAgeyBza2lwLCBsaW1pdCwgc29ydCwga2V5cywgbWF4VGltZU1TLCByZWFkUHJlZmVyZW5jZSwgaGludCwgY2FzZUluc2Vuc2l0aXZlLCBleHBsYWluIH0gPSB7fVxuICApIHtcbiAgICAvLyBTdXBwb3J0IGZvciBGdWxsIFRleHQgU2VhcmNoIC0gJHRleHRcbiAgICBpZiAoa2V5cyAmJiBrZXlzLiRzY29yZSkge1xuICAgICAgZGVsZXRlIGtleXMuJHNjb3JlO1xuICAgICAga2V5cy5zY29yZSA9IHsgJG1ldGE6ICd0ZXh0U2NvcmUnIH07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yYXdGaW5kKHF1ZXJ5LCB7XG4gICAgICBza2lwLFxuICAgICAgbGltaXQsXG4gICAgICBzb3J0LFxuICAgICAga2V5cyxcbiAgICAgIG1heFRpbWVNUyxcbiAgICAgIHJlYWRQcmVmZXJlbmNlLFxuICAgICAgaGludCxcbiAgICAgIGNhc2VJbnNlbnNpdGl2ZSxcbiAgICAgIGV4cGxhaW4sXG4gICAgfSkuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgLy8gQ2hlY2sgZm9yIFwibm8gZ2VvaW5kZXhcIiBlcnJvclxuICAgICAgaWYgKGVycm9yLmNvZGUgIT0gMTcwMDcgJiYgIWVycm9yLm1lc3NhZ2UubWF0Y2goL3VuYWJsZSB0byBmaW5kIGluZGV4IGZvciAuZ2VvTmVhci8pKSB7XG4gICAgICAgIHRocm93IGVycm9yO1xuICAgICAgfVxuICAgICAgLy8gRmlndXJlIG91dCB3aGF0IGtleSBuZWVkcyBhbiBpbmRleFxuICAgICAgY29uc3Qga2V5ID0gZXJyb3IubWVzc2FnZS5tYXRjaCgvZmllbGQ9KFtBLVphLXpfMC05XSspIC8pWzFdO1xuICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG5cbiAgICAgIHZhciBpbmRleCA9IHt9O1xuICAgICAgaW5kZXhba2V5XSA9ICcyZCc7XG4gICAgICByZXR1cm4gKFxuICAgICAgICB0aGlzLl9tb25nb0NvbGxlY3Rpb25cbiAgICAgICAgICAuY3JlYXRlSW5kZXgoaW5kZXgpXG4gICAgICAgICAgLy8gUmV0cnksIGJ1dCBqdXN0IG9uY2UuXG4gICAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgIHRoaXMuX3Jhd0ZpbmQocXVlcnksIHtcbiAgICAgICAgICAgICAgc2tpcCxcbiAgICAgICAgICAgICAgbGltaXQsXG4gICAgICAgICAgICAgIHNvcnQsXG4gICAgICAgICAgICAgIGtleXMsXG4gICAgICAgICAgICAgIG1heFRpbWVNUyxcbiAgICAgICAgICAgICAgcmVhZFByZWZlcmVuY2UsXG4gICAgICAgICAgICAgIGhpbnQsXG4gICAgICAgICAgICAgIGNhc2VJbnNlbnNpdGl2ZSxcbiAgICAgICAgICAgICAgZXhwbGFpbixcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb2xsYXRpb24gdG8gc3VwcG9ydCBjYXNlIGluc2Vuc2l0aXZlIHF1ZXJpZXNcbiAgICovXG4gIHN0YXRpYyBjYXNlSW5zZW5zaXRpdmVDb2xsYXRpb24oKSB7XG4gICAgcmV0dXJuIHsgbG9jYWxlOiAnZW5fVVMnLCBzdHJlbmd0aDogMiB9O1xuICB9XG5cbiAgX3Jhd0ZpbmQoXG4gICAgcXVlcnksXG4gICAgeyBza2lwLCBsaW1pdCwgc29ydCwga2V5cywgbWF4VGltZU1TLCByZWFkUHJlZmVyZW5jZSwgaGludCwgY2FzZUluc2Vuc2l0aXZlLCBleHBsYWluIH0gPSB7fVxuICApIHtcbiAgICBsZXQgZmluZE9wZXJhdGlvbiA9IHRoaXMuX21vbmdvQ29sbGVjdGlvbi5maW5kKHF1ZXJ5LCB7XG4gICAgICBza2lwLFxuICAgICAgbGltaXQsXG4gICAgICBzb3J0LFxuICAgICAgcmVhZFByZWZlcmVuY2UsXG4gICAgICBoaW50LFxuICAgIH0pO1xuXG4gICAgaWYgKGtleXMpIHtcbiAgICAgIGZpbmRPcGVyYXRpb24gPSBmaW5kT3BlcmF0aW9uLnByb2plY3Qoa2V5cyk7XG4gICAgfVxuXG4gICAgaWYgKGNhc2VJbnNlbnNpdGl2ZSkge1xuICAgICAgZmluZE9wZXJhdGlvbiA9IGZpbmRPcGVyYXRpb24uY29sbGF0aW9uKE1vbmdvQ29sbGVjdGlvbi5jYXNlSW5zZW5zaXRpdmVDb2xsYXRpb24oKSk7XG4gICAgfVxuXG4gICAgaWYgKG1heFRpbWVNUykge1xuICAgICAgZmluZE9wZXJhdGlvbiA9IGZpbmRPcGVyYXRpb24ubWF4VGltZU1TKG1heFRpbWVNUyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGV4cGxhaW4gPyBmaW5kT3BlcmF0aW9uLmV4cGxhaW4oZXhwbGFpbikgOiBmaW5kT3BlcmF0aW9uLnRvQXJyYXkoKTtcbiAgfVxuXG4gIGNvdW50KHF1ZXJ5LCB7IHNraXAsIGxpbWl0LCBzb3J0LCBtYXhUaW1lTVMsIHJlYWRQcmVmZXJlbmNlLCBoaW50IH0gPSB7fSkge1xuICAgIC8vIElmIHF1ZXJ5IGlzIGVtcHR5LCB0aGVuIHVzZSBlc3RpbWF0ZWREb2N1bWVudENvdW50IGluc3RlYWQuXG4gICAgLy8gVGhpcyBpcyBkdWUgdG8gY291bnREb2N1bWVudHMgcGVyZm9ybWluZyBhIHNjYW4sXG4gICAgLy8gd2hpY2ggZ3JlYXRseSBpbmNyZWFzZXMgZXhlY3V0aW9uIHRpbWUgd2hlbiBiZWluZyBydW4gb24gbGFyZ2UgY29sbGVjdGlvbnMuXG4gICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9BdXRvbWF0dGljL21vbmdvb3NlL2lzc3Vlcy82NzEzIGZvciBtb3JlIGluZm8gcmVnYXJkaW5nIHRoaXMgcHJvYmxlbS5cbiAgICBpZiAodHlwZW9mIHF1ZXJ5ICE9PSAnb2JqZWN0JyB8fCAhT2JqZWN0LmtleXMocXVlcnkpLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvbi5lc3RpbWF0ZWREb2N1bWVudENvdW50KHtcbiAgICAgICAgbWF4VGltZU1TLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgY291bnRPcGVyYXRpb24gPSB0aGlzLl9tb25nb0NvbGxlY3Rpb24uY291bnREb2N1bWVudHMocXVlcnksIHtcbiAgICAgIHNraXAsXG4gICAgICBsaW1pdCxcbiAgICAgIHNvcnQsXG4gICAgICBtYXhUaW1lTVMsXG4gICAgICByZWFkUHJlZmVyZW5jZSxcbiAgICAgIGhpbnQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY291bnRPcGVyYXRpb247XG4gIH1cblxuICBkaXN0aW5jdChmaWVsZCwgcXVlcnkpIHtcbiAgICByZXR1cm4gdGhpcy5fbW9uZ29Db2xsZWN0aW9uLmRpc3RpbmN0KGZpZWxkLCBxdWVyeSk7XG4gIH1cblxuICBhZ2dyZWdhdGUocGlwZWxpbmUsIHsgbWF4VGltZU1TLCByZWFkUHJlZmVyZW5jZSwgaGludCwgZXhwbGFpbiB9ID0ge30pIHtcbiAgICByZXR1cm4gdGhpcy5fbW9uZ29Db2xsZWN0aW9uXG4gICAgICAuYWdncmVnYXRlKHBpcGVsaW5lLCB7IG1heFRpbWVNUywgcmVhZFByZWZlcmVuY2UsIGhpbnQsIGV4cGxhaW4gfSlcbiAgICAgIC50b0FycmF5KCk7XG4gIH1cblxuICBpbnNlcnRPbmUob2JqZWN0LCBzZXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvbi5pbnNlcnRPbmUob2JqZWN0LCB7IHNlc3Npb24gfSk7XG4gIH1cblxuICAvLyBBdG9taWNhbGx5IHVwZGF0ZXMgZGF0YSBpbiB0aGUgZGF0YWJhc2UgZm9yIGEgc2luZ2xlIChmaXJzdCkgb2JqZWN0IHRoYXQgbWF0Y2hlZCB0aGUgcXVlcnlcbiAgLy8gSWYgdGhlcmUgaXMgbm90aGluZyB0aGF0IG1hdGNoZXMgdGhlIHF1ZXJ5IC0gZG9lcyBpbnNlcnRcbiAgLy8gUG9zdGdyZXMgTm90ZTogYElOU0VSVCAuLi4gT04gQ09ORkxJQ1QgVVBEQVRFYCB0aGF0IGlzIGF2YWlsYWJsZSBzaW5jZSA5LjUuXG4gIHVwc2VydE9uZShxdWVyeSwgdXBkYXRlLCBzZXNzaW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvbi51cGRhdGVPbmUocXVlcnksIHVwZGF0ZSwge1xuICAgICAgdXBzZXJ0OiB0cnVlLFxuICAgICAgc2Vzc2lvbixcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZU9uZShxdWVyeSwgdXBkYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuX21vbmdvQ29sbGVjdGlvbi51cGRhdGVPbmUocXVlcnksIHVwZGF0ZSk7XG4gIH1cblxuICB1cGRhdGVNYW55KHF1ZXJ5LCB1cGRhdGUsIHNlc3Npb24pIHtcbiAgICByZXR1cm4gdGhpcy5fbW9uZ29Db2xsZWN0aW9uLnVwZGF0ZU1hbnkocXVlcnksIHVwZGF0ZSwgeyBzZXNzaW9uIH0pO1xuICB9XG5cbiAgZGVsZXRlTWFueShxdWVyeSwgc2Vzc2lvbikge1xuICAgIHJldHVybiB0aGlzLl9tb25nb0NvbGxlY3Rpb24uZGVsZXRlTWFueShxdWVyeSwgeyBzZXNzaW9uIH0pO1xuICB9XG5cbiAgX2Vuc3VyZVNwYXJzZVVuaXF1ZUluZGV4SW5CYWNrZ3JvdW5kKGluZGV4UmVxdWVzdCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLl9tb25nb0NvbGxlY3Rpb24uY3JlYXRlSW5kZXgoXG4gICAgICAgIGluZGV4UmVxdWVzdCxcbiAgICAgICAgeyB1bmlxdWU6IHRydWUsIGJhY2tncm91bmQ6IHRydWUsIHNwYXJzZTogdHJ1ZSB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgZHJvcCgpIHtcbiAgICByZXR1cm4gdGhpcy5fbW9uZ29Db2xsZWN0aW9uLmRyb3AoKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFDbEMsTUFBTUMsVUFBVSxHQUFHRixPQUFPLENBQUNFLFVBQVU7QUFFdEIsTUFBTUMsZUFBZSxDQUFDO0VBR25DQyxXQUFXQSxDQUFDQyxlQUEyQixFQUFFO0lBQ3ZDLElBQUksQ0FBQ0MsZ0JBQWdCLEdBQUdELGVBQWU7RUFDekM7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBRSxJQUFJQSxDQUNGQyxLQUFLLEVBQ0w7SUFBRUMsSUFBSTtJQUFFQyxLQUFLO0lBQUVDLElBQUk7SUFBRUMsSUFBSTtJQUFFQyxTQUFTO0lBQUVDLGNBQWM7SUFBRUMsSUFBSTtJQUFFQyxlQUFlO0lBQUVDO0VBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUMzRjtJQUNBO0lBQ0EsSUFB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
|
|
@@ -327,4 +327,4 @@ MongoSchemaCollection._TESTmongoSchemaToParseSchema = mongoSchemaToParseSchema;
|
|
|
327
327
|
MongoSchemaCollection.parseFieldTypeToMongoFieldType = parseFieldTypeToMongoFieldType;
|
|
328
328
|
var _default = MongoSchemaCollection;
|
|
329
329
|
exports.default = _default;
|
|
330
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJtb25nb0ZpZWxkVG9QYXJzZVNjaGVtYUZpZWxkIiwidHlwZSIsInRhcmdldENsYXNzIiwic2xpY2UiLCJzdGFydHNXaXRoIiwibGVuZ3RoIiwibm9uRmllbGRTY2hlbWFLZXlzIiwibW9uZ29TY2hlbWFGaWVsZHNUb1BhcnNlU2NoZW1hRmllbGRzIiwic2NoZW1hIiwiZmllbGROYW1lcyIsIk9iamVjdCIsImtleXMiLCJmaWx0ZXIiLCJrZXkiLCJpbmRleE9mIiwicmVzcG9uc2UiLCJyZWR1Y2UiLCJvYmoiLCJmaWVsZE5hbWUiLCJfbWV0YWRhdGEiLCJmaWVsZHNfb3B0aW9ucyIsImFzc2lnbiIsIkFDTCIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsIm9iamVjdElkIiwiZW1wdHlDTFBTIiwiZnJlZXplIiwiZmluZCIsImNvdW50IiwiZ2V0IiwiY3JlYXRlIiwidXBkYXRlIiwiZGVsZXRlIiwiYWRkRmllbGQiLCJwcm90ZWN0ZWRGaWVsZHMiLCJkZWZhdWx0Q0xQUyIsIm1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYSIsIm1vbmdvU2NoZW1hIiwiY2xwcyIsImluZGV4ZXMiLCJjbGFzc19wZXJtaXNzaW9ucyIsImNsYXNzTmFtZSIsIl9pZCIsImZpZWxkcyIsImNsYXNzTGV2ZWxQZXJtaXNzaW9ucyIsIl9tb25nb1NjaGVtYVF1ZXJ5RnJvbU5hbWVRdWVyeSIsIm5hbWUiLCJxdWVyeSIsIm9iamVjdCIsImZvckVhY2giLCJwYXJzZUZpZWxkVHlwZVRvTW9uZ29GaWVsZFR5cGUiLCJNb25nb1NjaGVtYUNvbGxlY3Rpb24iLCJjb25zdHJ1Y3RvciIsImNvbGxlY3Rpb24iLCJfY29sbGVjdGlvbiIsIl9mZXRjaEFsbFNjaGVtYXNGcm9tX1NDSEVNQSIsIl9yYXdGaW5kIiwidGhlbiIsInNjaGVtYXMiLCJtYXAiLCJfZmV0Y2hPbmVTY2hlbWFGcm9tX1NDSEVNQSIsImxpbWl0IiwicmVzdWx0cyIsInVuZGVmaW5lZCIsImZpbmRBbmREZWxldGVTY2hlbWEiLCJfbW9uZ29Db2xsZWN0aW9uIiwiZmluZE9uZUFuZERlbGV0ZSIsImluc2VydFNjaGVtYSIsImluc2VydE9uZSIsImNhdGNoIiwiZXJyb3IiLCJjb2RlIiwiUGFyc2UiLCJFcnJvciIsIkRVUExJQ0FURV9WQUxVRSIsInVwZGF0ZVNjaGVtYSIsInVwZGF0ZU9uZSIsInVwc2VydFNjaGVtYSIsInVwc2VydE9uZSIsImFkZEZpZWxkSWZOb3RFeGlzdHMiLCJmaWVsZFR5cGUiLCJzb21lIiwiZXhpc3RpbmdGaWVsZCIsIklOQ09SUkVDVF9UWVBFIiwiZmllbGRPcHRpb25zIiwiJGV4aXN0cyIsIiRzZXQiLCJ1cGRhdGVGaWVsZE9wdGlvbnMiLCJfVEVTVG1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9BZGFwdGVycy9TdG9yYWdlL01vbmdvL01vbmdvU2NoZW1hQ29sbGVjdGlvbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTW9uZ29Db2xsZWN0aW9uIGZyb20gJy4vTW9uZ29Db2xsZWN0aW9uJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcblxuZnVuY3Rpb24gbW9uZ29GaWVsZFRvUGFyc2VTY2hlbWFGaWVsZCh0eXBlKSB7XG4gIGlmICh0eXBlWzBdID09PSAnKicpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogJ1BvaW50ZXInLFxuICAgICAgdGFyZ2V0Q2xhc3M6IHR5cGUuc2xpY2UoMSksXG4gICAgfTtcbiAgfVxuICBpZiAodHlwZS5zdGFydHNXaXRoKCdyZWxhdGlvbjwnKSkge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnUmVsYXRpb24nLFxuICAgICAgdGFyZ2V0Q2xhc3M6IHR5cGUuc2xpY2UoJ3JlbGF0aW9uPCcubGVuZ3RoLCB0eXBlLmxlbmd0aCAtIDEpLFxuICAgIH07XG4gIH1cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdOdW1iZXInIH07XG4gICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdTdHJpbmcnIH07XG4gICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICByZXR1cm4geyB0eXBlOiAnQm9vbGVhbicgfTtcbiAgICBjYXNlICdkYXRlJzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdEYXRlJyB9O1xuICAgIGNhc2UgJ21hcCc6XG4gICAgY2FzZSAnb2JqZWN0JzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdPYmplY3QnIH07XG4gICAgY2FzZSAnYXJyYXknOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ0FycmF5JyB9O1xuICAgIGNhc2UgJ2dlb3BvaW50JzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdHZW9Qb2ludCcgfTtcbiAgICBjYXNlICdmaWxlJzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdGaWxlJyB9O1xuICAgIGNhc2UgJ2J5dGVzJzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdCeXRlcycgfTtcbiAgICBjYXNlICdwb2x5Z29uJzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdQb2x5Z29uJyB9O1xuICB9XG59XG5cbmNvbnN0IG5vbkZpZWxkU2NoZW1hS2V5cyA9IFsnX2lkJywgJ19tZXRhZGF0YScsICdfY2xpZW50X3Blcm1pc3Npb25zJ107XG5mdW5jdGlvbiBtb25nb1NjaGVtYUZpZWxkc1RvUGFyc2VTY2hlbWFGaWVsZHMoc2NoZW1hKSB7XG4gIHZhciBmaWVsZE5hbWVzID0gT2JqZWN0LmtleXMoc2NoZW1hKS5maWx0ZXIoa2V5ID0+IG5vbkZpZWxkU2NoZW1hS2V5cy5pbmRleE9mKGtleSkgPT09IC0xKTtcbiAgdmFyIHJlc3BvbnNlID0gZmllbGROYW1lcy5yZWR1Y2UoKG9iaiwgZmllbGROYW1lKSA9PiB7XG4gICAgb2JqW2ZpZWxkTmFtZV0gPSBtb25nb0ZpZWxkVG9QYXJzZVNjaGVtYUZpZWxkKHNjaGVtYVtmaWVsZE5hbWVdKTtcbiAgICBpZiAoXG4gICAgICBzY2hlbWEuX21ldGFkYXRhICYmXG4gICAgICBzY2hlbWEuX21ldGFkYXRhLmZpZWxkc19vcHRpb25zICYmXG4gICAgICBzY2hlbWEuX21ldGFkYXRhLmZpZWxkc19vcHRpb25zW2ZpZWxkTmFtZV1cbiAgICApIHtcbiAgICAgIG9ialtmaWVsZE5hbWVdID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAge30sXG4gICAgICAgIG9ialtmaWVsZE5hbWVdLFxuICAgICAgICBzY2hlbWEuX21ldGFkYXRhLmZpZWxkc19vcHRpb25zW2ZpZWxkTmFtZV1cbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sIHt9KTtcbiAgcmVzcG9uc2UuQUNMID0geyB0eXBlOiAnQUNMJyB9O1xuICByZXNwb25zZS5jcmVhdGVkQXQgPSB7IHR5cGU6ICdEYXRlJyB9O1xuICByZXNwb25zZS51cGRhdGVkQXQgPSB7IHR5cGU6ICdEYXRlJyB9O1xuICByZXNwb25zZS5vYmplY3RJZCA9IHsgdHlwZTogJ1N0cmluZycgfTtcbiAgcmV0dXJuIHJlc3BvbnNlO1xufVxuXG5jb25zdCBlbXB0eUNMUFMgPSBPYmplY3QuZnJlZXplKHtcbiAgZmluZDoge30sXG4gIGNvdW50OiB7fSxcbiAgZ2V0OiB7fSxcbiAgY3JlYXRlOiB7fSxcbiAgdXBkYXRlOiB7fSxcbiAgZGVsZXRlOiB7fSxcbiAgYWRkRmllbGQ6IHt9LFxuICBwcm90ZWN0ZWRGaWVsZHM6IHt9LFxufSk7XG5cbmNvbnN0IGRlZmF1bHRDTFBTID0gT2JqZWN0LmZyZWV6ZSh7XG4gIGZpbmQ6IHsgJyonOiB0cnVlIH0sXG4gIGNvdW50OiB7ICcqJzogdHJ1ZSB9LFxuICBnZXQ6IHsgJyonOiB0cnVlIH0sXG4gIGNyZWF0ZTogeyAnKic6IHRydWUgfSxcbiAgdXBkYXRlOiB7ICcqJzogdHJ1ZSB9LFxuICBkZWxldGU6IHsgJyonOiB0cnVlIH0sXG4gIGFkZEZpZWxkOiB7ICcqJzogdHJ1ZSB9LFxuICBwcm90ZWN0ZWRGaWVsZHM6IHsgJyonOiBbXSB9LFxufSk7XG5cbmZ1bmN0aW9uIG1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYShtb25nb1NjaGVtYSkge1xuICBsZXQgY2xwcyA9IGRlZmF1bHRDTFBTO1xuICBsZXQgaW5kZXhlcyA9IHt9O1xuICBpZiAobW9uZ29TY2hlbWEuX21ldGFkYXRhKSB7XG4gICAgaWYgKG1vbmdvU2NoZW1hLl9tZXRhZGF0YS5jbGFzc19wZXJtaXNzaW9ucykge1xuICAgICAgY2xwcyA9IHsgLi4uZW1wdHlDTFBTLCAuLi5tb25nb1NjaGVtYS5fbWV0YWRhdGEuY2xhc3NfcGVybWlzc2lvbnMgfTtcbiAgICB9XG4gICAgaWYgKG1vbmdvU2NoZW1hLl9tZXRhZGF0YS5pbmRleGVzKSB7XG4gICAgICBpbmRleGVzID0geyAuLi5tb25nb1NjaGVtYS5fbWV0YWRhdGEuaW5kZXhlcyB9O1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIGNsYXNzTmFtZTogbW9uZ29TY2hlbWEuX2lkLFxuICAgIGZpZWxkczogbW9uZ29TY2hlbWFGaWVsZHNUb1BhcnNlU2NoZW1hRmllbGRzKG1vbmdvU2NoZW1hKSxcbiAgICBjbGFzc0xldmVsUGVybWlzc2lvbnM6IGNscHMsXG4gICAgaW5kZXhlczogaW5kZXhlcyxcbiAgfTtcbn1cblxuZnVuY3Rpb24gX21vbmdvU2NoZW1hUXVlcnlGcm9tTmFtZVF1ZXJ5KG5hbWU6IHN0cmluZywgcXVlcnkpIHtcbiAgY29uc3Qgb2JqZWN0ID0geyBfaWQ6IG5hbWUgfTtcbiAgaWYgKHF1ZXJ5KSB7XG4gICAgT2JqZWN0LmtleXMocXVlcnkpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIG9iamVjdFtrZXldID0gcXVlcnlba2V5XTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gb2JqZWN0O1xufVxuXG4vLyBSZXR1cm5zIGEgdHlwZSBzdWl0YWJsZSBmb3IgaW5zZXJ0aW5nIGludG8gbW9uZ28gX1NDSEVNQSBjb2xsZWN0aW9uLlxuLy8gRG9lcyBubyB2YWxpZGF0aW9uLiBUaGF0IGlzIGV4cGVjdGVkIHRvIGJlIGRvbmUgaW4gUGFyc2UgU2VydmVyLlxuZnVuY3Rpb24gcGFyc2VGaWVsZFR5cGVUb01vbmdvRmllbGRUeXBlKHsgdHlwZSwgdGFyZ2V0Q2xhc3MgfSkge1xuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdQb2ludGVyJzpcbiAgICAgIHJldHVybiBgKiR7dGFyZ2V0Q2xhc3N9YDtcbiAgICBjYXNlICdSZWxhdGlvbic6XG4gICAgICByZXR1cm4gYHJlbGF0aW9uPCR7dGFyZ2V0Q2xhc3N9PmA7XG4gICAgY2FzZSAnTnVtYmVyJzpcbiAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICBjYXNlICdTdHJpbmcnOlxuICAgICAgcmV0dXJuICdzdHJpbmcnO1xuICAgIGNhc2UgJ0Jvb2xlYW4nOlxuICAgICAgcmV0dXJuICdib29sZWFuJztcbiAgICBjYXNlICdEYXRlJzpcbiAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgY2FzZSAnT2JqZWN0JzpcbiAgICAgIHJldHVybiAnb2JqZWN0JztcbiAgICBjYXNlICdBcnJheSc6XG4gICAgICByZXR1cm4gJ2FycmF5JztcbiAgICBjYXNlICdHZW9Qb2ludCc6XG4gICAgICByZXR1cm4gJ2dlb3BvaW50JztcbiAgICBjYXNlICdGaWxlJzpcbiAgICAgIHJldHVybiAnZmlsZSc7XG4gICAgY2FzZSAnQnl0ZXMnOlxuICAgICAgcmV0dXJuICdieXRlcyc7XG4gICAgY2FzZSAnUG9seWdvbic6XG4gICAgICByZXR1cm4gJ3BvbHlnb24nO1xuICB9XG59XG5cbmNsYXNzIE1vbmdvU2NoZW1hQ29sbGVjdGlvbiB7XG4gIF9jb2xsZWN0aW9uOiBNb25nb0NvbGxlY3Rpb247XG5cbiAgY29uc3RydWN0b3IoY29sbGVjdGlvbjogTW9uZ29Db2xsZWN0aW9uKSB7XG4gICAgdGhpcy5fY29sbGVjdGlvbiA9IGNvbGxlY3Rpb247XG4gIH1cblxuICBfZmV0Y2hBbGxTY2hlbWFzRnJvbV9TQ0hFTUEoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb24uX3Jhd0ZpbmQoe30pLnRoZW4oc2NoZW1hcyA9PiBzY2hlbWFzLm1hcChtb25nb1NjaGVtYVRvUGFyc2VTY2hlbWEpKTtcbiAgfVxuXG4gIF9mZXRjaE9uZVNjaGVtYUZyb21fU0NIRU1BKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uXG4gICAgICAuX3Jhd0ZpbmQoX21vbmdvU2NoZW1hUXVlcnlGcm9tTmFtZVF1ZXJ5KG5hbWUpLCB7IGxpbWl0OiAxIH0pXG4gICAgICAudGhlbihyZXN1bHRzID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgcmV0dXJuIG1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYShyZXN1bHRzWzBdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgLy8gQXRvbWljYWxseSBmaW5kIGFuZCBkZWxldGUgYW4gb2JqZWN0IGJhc2VkIG9uIHF1ZXJ5LlxuICBmaW5kQW5kRGVsZXRlU2NoZW1hKG5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uLl9tb25nb0NvbGxlY3Rpb24uZmluZE9uZUFuZERlbGV0ZShfbW9uZ29TY2hlbWFRdWVyeUZyb21OYW1lUXVlcnkobmFtZSkpO1xuICB9XG5cbiAgaW5zZXJ0U2NoZW1hKHNjaGVtYTogYW55KSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb25cbiAgICAgIC5pbnNlcnRPbmUoc2NoZW1hKVxuICAgICAgLnRoZW4oKCkgPT4gbW9uZ29TY2hlbWFUb1BhcnNlU2NoZW1hKHNjaGVtYSkpXG4gICAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgICBpZiAoZXJyb3IuY29kZSA9PT0gMTEwMDApIHtcbiAgICAgICAgICAvL01vbmdvJ3MgZHVwbGljYXRlIGtleSBlcnJvclxuICAgICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5EVVBMSUNBVEVfVkFMVUUsICdDbGFzcyBhbHJlYWR5IGV4aXN0cy4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICB1cGRhdGVTY2hlbWEobmFtZTogc3RyaW5nLCB1cGRhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbi51cGRhdGVPbmUoX21vbmdvU2NoZW1hUXVlcnlGcm9tTmFtZVF1ZXJ5KG5hbWUpLCB1cGRhdGUpO1xuICB9XG5cbiAgdXBzZXJ0U2NoZW1hKG5hbWU6IHN0cmluZywgcXVlcnk6IHN0cmluZywgdXBkYXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb24udXBzZXJ0T25lKF9tb25nb1NjaGVtYVF1ZXJ5RnJvbU5hbWVRdWVyeShuYW1lLCBxdWVyeSksIHVwZGF0ZSk7XG4gIH1cblxuICAvLyBBZGQgYSBmaWVsZCB0byB0aGUgc2NoZW1hLiBJZiBkYXRhYmFzZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBmaWVsZFxuICAvLyB0eXBlIChlLmcuIG1vbmdvIGRvZXNuJ3Qgc3VwcG9ydCBtb3JlIHRoYW4gb25lIEdlb1BvaW50IGluIGEgY2xhc3MpIHJlamVjdCB3aXRoIGFuIFwiSW5jb3JyZWN0IFR5cGVcIlxuICAvLyBQYXJzZSBlcnJvciB3aXRoIGEgZGVzY2lwdGl2ZSBtZXNzYWdlLiBJZiB0aGUgZmllbGQgYWxyZWFkeSBleGlzdHMsIHRoaXMgZnVuY3Rpb24gbXVzdFxuICAvLyBub3QgbW9kaWZ5IHRoZSBzY2hlbWEsIGFuZCBtdXN0IHJlamVjdCB3aXRoIERVUExJQ0FURV9WQUxVRSBlcnJvci5cbiAgLy8gSWYgdGhpcyBpcyBjYWxsZWQgZm9yIGEgY2xhc3MgdGhhdCBkb2Vzbid0IGV4aXN0LCB0aGlzIGZ1bmN0aW9uIG11c3QgY3JlYXRlIHRoYXQgY2xhc3MuXG5cbiAgLy8gVE9ETzogdGhyb3cgYW4gZXJyb3IgaWYgYW4gdW5zdXBwb3J0ZWQgZmllbGQgdHlwZSBpcyBwYXNzZWQuIERlY2lkaW5nIHdoZXRoZXIgYSB0eXBlIGlzIHN1cHBvcnRlZFxuICAvLyBzaG91bGQgYmUgdGhlIGpvYiBvZiB0aGUgYWRhcHRlci4gU29tZSBhZGFwdGVycyBtYXkgbm90IHN1cHBvcnQgR2VvUG9pbnQgYXQgYWxsLiBPdGhlcnMgbWF5XG4gIC8vIFN1cHBvcnQgYWRkaXRpb25hbCB0eXBlcyB0aGF0IE1vbmdvIGRvZXNuJ3QsIGxpa2UgTW9uZXksIG9yIHNvbWV0aGluZy5cblxuICAvLyBUT0RPOiBkb24ndCBzcGVuZCBhbiBleHRyYSBxdWVyeSBvbiBmaW5kaW5nIHRoZSBzY2hlbWEgaWYgdGhlIHR5cGUgd2UgYXJlIHRyeWluZyB0byBhZGQgaXNuJ3QgYSBHZW9Qb2ludC5cbiAgYWRkRmllbGRJZk5vdEV4aXN0cyhjbGFzc05hbWU6IHN0cmluZywgZmllbGROYW1lOiBzdHJpbmcsIGZpZWxkVHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZldGNoT25lU2NoZW1hRnJvbV9TQ0hFTUEoY2xhc3NOYW1lKVxuICAgICAgLnRoZW4oXG4gICAgICAgIHNjaGVtYSA9PiB7XG4gICAgICAgICAgLy8gSWYgYSBmaWVsZCB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cywgaXQgd2lsbCBiZSBoYW5kbGVkIGVsc2V3aGVyZS5cbiAgICAgICAgICBpZiAoc2NoZW1hLmZpZWxkc1tmaWVsZE5hbWVdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gVGhlIHNjaGVtYSBleGlzdHMuIENoZWNrIGZvciBleGlzdGluZyBHZW9Qb2ludHMuXG4gICAgICAgICAgaWYgKGZpZWxkVHlwZS50eXBlID09PSAnR2VvUG9pbnQnKSB7XG4gICAgICAgICAgICAvLyBNYWtlIHN1cmUgdGhlcmUgYXJlIG5vdCBvdGhlciBnZW9wb2ludCBmaWVsZHNcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgT2JqZWN0LmtleXMoc2NoZW1hLmZpZWxkcykuc29tZShcbiAgICAgICAgICAgICAgICBleGlzdGluZ0ZpZWxkID0+IHNjaGVtYS5maWVsZHNbZXhpc3RpbmdGaWVsZF0udHlwZSA9PT0gJ0dlb1BvaW50J1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgICAgICAgIFBhcnNlLkVycm9yLklOQ09SUkVDVF9UWVBFLFxuICAgICAgICAgICAgICAgICdNb25nb0RCIG9ubHkgc3VwcG9ydHMgb25lIEdlb1BvaW50IGZpZWxkIGluIGEgY2xhc3MuJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICAvLyBJZiBlcnJvciBpcyB1bmRlZmluZWQsIHRoZSBzY2hlbWEgZG9lc24ndCBleGlzdCwgYW5kIHdlIGNhbiBjcmVhdGUgdGhlIHNjaGVtYSB3aXRoIHRoZSBmaWVsZC5cbiAgICAgICAgICAvLyBJZiBzb21lIG90aGVyIGVycm9yLCByZWplY3Qgd2l0aCBpdC5cbiAgICAgICAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICBjb25zdCB7IHR5cGUsIHRhcmdldENsYXNzLCAuLi5maWVsZE9wdGlvbnMgfSA9IGZpZWxkVHlwZTtcbiAgICAgICAgLy8gV2UgdXNlICRleGlzdHMgYW5kICRzZXQgdG8gYXZvaWQgb3ZlcndyaXRpbmcgdGhlIGZpZWxkIHR5cGUgaWYgaXRcbiAgICAgICAgLy8gYWxyZWFkeSBleGlzdHMuIChpdCBjb3VsZCBoYXZlIGFkZGVkIGluYmV0d2VlbiB0aGUgbGFzdCBxdWVyeSBhbmQgdGhlIHVwZGF0ZSlcbiAgICAgICAgaWYgKGZpZWxkT3B0aW9ucyAmJiBPYmplY3Qua2V5cyhmaWVsZE9wdGlvbnMpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy51cHNlcnRTY2hlbWEoXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICB7IFtmaWVsZE5hbWVdOiB7ICRleGlzdHM6IGZhbHNlIH0gfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgJHNldDoge1xuICAgICAgICAgICAgICAgIFtmaWVsZE5hbWVdOiBwYXJzZUZpZWxkVHlwZVRvTW9uZ29GaWVsZFR5cGUoe1xuICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgIHRhcmdldENsYXNzLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIFtgX21ldGFkYXRhLmZpZWxkc19vcHRpb25zLiR7ZmllbGROYW1lfWBdOiBmaWVsZE9wdGlvbnMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gdGhpcy51cHNlcnRTY2hlbWEoXG4gICAgICAgICAgICBjbGFzc05hbWUsXG4gICAgICAgICAgICB7IFtmaWVsZE5hbWVdOiB7ICRleGlzdHM6IGZhbHNlIH0gfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgJHNldDoge1xuICAgICAgICAgICAgICAgIFtmaWVsZE5hbWVdOiBwYXJzZUZpZWxkVHlwZVRvTW9uZ29GaWVsZFR5cGUoe1xuICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgIHRhcmdldENsYXNzLFxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgdXBkYXRlRmllbGRPcHRpb25zKGNsYXNzTmFtZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgZmllbGRUeXBlOiBhbnkpIHtcbiAgICBjb25zdCB7IC4uLmZpZWxkT3B0aW9ucyB9ID0gZmllbGRUeXBlO1xuICAgIGRlbGV0ZSBmaWVsZE9wdGlvbnMudHlwZTtcbiAgICBkZWxldGUgZmllbGRPcHRpb25zLnRhcmdldENsYXNzO1xuXG4gICAgYXdhaXQgdGhpcy51cHNlcnRTY2hlbWEoXG4gICAgICBjbGFzc05hbWUsXG4gICAgICB7IFtmaWVsZE5hbWVdOiB7ICRleGlzdHM6IHRydWUgfSB9LFxuICAgICAge1xuICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgW2BfbWV0YWRhdGEuZmllbGRzX29wdGlvbnMuJHtmaWVsZE5hbWV9YF06IGZpZWxkT3B0aW9ucyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG5cbi8vIEV4cG9ydGVkIGZvciB0ZXN0aW5nIHJlYXNvbnMgYW5kIGJlY2F1c2Ugd2UgaGF2ZW4ndCBtb3ZlZCBhbGwgbW9uZ28gc2NoZW1hIGZvcm1hdFxuLy8gcmVsYXRlZCBsb2dpYyBpbnRvIHRoZSBkYXRhYmFzZSBhZGFwdGVyIHlldC5cbk1vbmdvU2NoZW1hQ29sbGVjdGlvbi5fVEVTVG1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYSA9IG1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYTtcbk1vbmdvU2NoZW1hQ29sbGVjdGlvbi5wYXJzZUZpZWxkVHlwZVRvTW9uZ29GaWVsZFR5cGUgPSBwYXJzZUZpZWxkVHlwZVRvTW9uZ29GaWVsZFR5cGU7XG5cbmV4cG9ydCBkZWZhdWx0IE1vbmdvU2NoZW1hQ29sbGVjdGlvbjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUErQjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFL0IsU0FBU0EsNEJBQTRCLENBQUNDLElBQUksRUFBRTtFQUMxQyxJQUFJQSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO0lB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
|
|
330
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfTW9uZ29Db2xsZWN0aW9uIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfbm9kZSIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwidGFyZ2V0IiwiaSIsImFyZ3VtZW50cyIsImxlbmd0aCIsInNvdXJjZSIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiZXhjbHVkZWQiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInNvdXJjZVN5bWJvbEtleXMiLCJpbmRleE9mIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJzb3VyY2VLZXlzIiwia2V5cyIsIm93bktleXMiLCJvYmplY3QiLCJlbnVtZXJhYmxlT25seSIsInN5bWJvbHMiLCJmaWx0ZXIiLCJzeW0iLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsInZhbHVlIiwiX3RvUHJvcGVydHlLZXkiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImFyZyIsIl90b1ByaW1pdGl2ZSIsIlN0cmluZyIsImlucHV0IiwiaGludCIsInByaW0iLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsInVuZGVmaW5lZCIsInJlcyIsIlR5cGVFcnJvciIsIk51bWJlciIsIm1vbmdvRmllbGRUb1BhcnNlU2NoZW1hRmllbGQiLCJ0eXBlIiwidGFyZ2V0Q2xhc3MiLCJzbGljZSIsInN0YXJ0c1dpdGgiLCJub25GaWVsZFNjaGVtYUtleXMiLCJtb25nb1NjaGVtYUZpZWxkc1RvUGFyc2VTY2hlbWFGaWVsZHMiLCJzY2hlbWEiLCJmaWVsZE5hbWVzIiwicmVzcG9uc2UiLCJyZWR1Y2UiLCJmaWVsZE5hbWUiLCJfbWV0YWRhdGEiLCJmaWVsZHNfb3B0aW9ucyIsIkFDTCIsImNyZWF0ZWRBdCIsInVwZGF0ZWRBdCIsIm9iamVjdElkIiwiZW1wdHlDTFBTIiwiZnJlZXplIiwiZmluZCIsImNvdW50IiwiZ2V0IiwiY3JlYXRlIiwidXBkYXRlIiwiZGVsZXRlIiwiYWRkRmllbGQiLCJwcm90ZWN0ZWRGaWVsZHMiLCJkZWZhdWx0Q0xQUyIsIm1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYSIsIm1vbmdvU2NoZW1hIiwiY2xwcyIsImluZGV4ZXMiLCJjbGFzc19wZXJtaXNzaW9ucyIsImNsYXNzTmFtZSIsIl9pZCIsImZpZWxkcyIsImNsYXNzTGV2ZWxQZXJtaXNzaW9ucyIsIl9tb25nb1NjaGVtYVF1ZXJ5RnJvbU5hbWVRdWVyeSIsIm5hbWUiLCJxdWVyeSIsInBhcnNlRmllbGRUeXBlVG9Nb25nb0ZpZWxkVHlwZSIsIk1vbmdvU2NoZW1hQ29sbGVjdGlvbiIsImNvbnN0cnVjdG9yIiwiY29sbGVjdGlvbiIsIl9jb2xsZWN0aW9uIiwiX2ZldGNoQWxsU2NoZW1hc0Zyb21fU0NIRU1BIiwiX3Jhd0ZpbmQiLCJ0aGVuIiwic2NoZW1hcyIsIm1hcCIsIl9mZXRjaE9uZVNjaGVtYUZyb21fU0NIRU1BIiwibGltaXQiLCJyZXN1bHRzIiwiZmluZEFuZERlbGV0ZVNjaGVtYSIsIl9tb25nb0NvbGxlY3Rpb24iLCJmaW5kT25lQW5kRGVsZXRlIiwiaW5zZXJ0U2NoZW1hIiwiaW5zZXJ0T25lIiwiY2F0Y2giLCJlcnJvciIsImNvZGUiLCJQYXJzZSIsIkVycm9yIiwiRFVQTElDQVRFX1ZBTFVFIiwidXBkYXRlU2NoZW1hIiwidXBkYXRlT25lIiwidXBzZXJ0U2NoZW1hIiwidXBzZXJ0T25lIiwiYWRkRmllbGRJZk5vdEV4aXN0cyIsImZpZWxkVHlwZSIsInNvbWUiLCJleGlzdGluZ0ZpZWxkIiwiSU5DT1JSRUNUX1RZUEUiLCJmaWVsZE9wdGlvbnMiLCIkZXhpc3RzIiwiJHNldCIsInVwZGF0ZUZpZWxkT3B0aW9ucyIsIl9URVNUbW9uZ29TY2hlbWFUb1BhcnNlU2NoZW1hIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL1N0b3JhZ2UvTW9uZ28vTW9uZ29TY2hlbWFDb2xsZWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBNb25nb0NvbGxlY3Rpb24gZnJvbSAnLi9Nb25nb0NvbGxlY3Rpb24nO1xuaW1wb3J0IFBhcnNlIGZyb20gJ3BhcnNlL25vZGUnO1xuXG5mdW5jdGlvbiBtb25nb0ZpZWxkVG9QYXJzZVNjaGVtYUZpZWxkKHR5cGUpIHtcbiAgaWYgKHR5cGVbMF0gPT09ICcqJykge1xuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiAnUG9pbnRlcicsXG4gICAgICB0YXJnZXRDbGFzczogdHlwZS5zbGljZSgxKSxcbiAgICB9O1xuICB9XG4gIGlmICh0eXBlLnN0YXJ0c1dpdGgoJ3JlbGF0aW9uPCcpKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHR5cGU6ICdSZWxhdGlvbicsXG4gICAgICB0YXJnZXRDbGFzczogdHlwZS5zbGljZSgncmVsYXRpb248Jy5sZW5ndGgsIHR5cGUubGVuZ3RoIC0gMSksXG4gICAgfTtcbiAgfVxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlICdudW1iZXInOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ051bWJlcicgfTtcbiAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ1N0cmluZycgfTtcbiAgICBjYXNlICdib29sZWFuJzpcbiAgICAgIHJldHVybiB7IHR5cGU6ICdCb29sZWFuJyB9O1xuICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ0RhdGUnIH07XG4gICAgY2FzZSAnbWFwJzpcbiAgICBjYXNlICdvYmplY3QnOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ09iamVjdCcgfTtcbiAgICBjYXNlICdhcnJheSc6XG4gICAgICByZXR1cm4geyB0eXBlOiAnQXJyYXknIH07XG4gICAgY2FzZSAnZ2VvcG9pbnQnOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ0dlb1BvaW50JyB9O1xuICAgIGNhc2UgJ2ZpbGUnOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ0ZpbGUnIH07XG4gICAgY2FzZSAnYnl0ZXMnOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ0J5dGVzJyB9O1xuICAgIGNhc2UgJ3BvbHlnb24nOlxuICAgICAgcmV0dXJuIHsgdHlwZTogJ1BvbHlnb24nIH07XG4gIH1cbn1cblxuY29uc3Qgbm9uRmllbGRTY2hlbWFLZXlzID0gWydfaWQnLCAnX21ldGFkYXRhJywgJ19jbGllbnRfcGVybWlzc2lvbnMnXTtcbmZ1bmN0aW9uIG1vbmdvU2NoZW1hRmllbGRzVG9QYXJzZVNjaGVtYUZpZWxkcyhzY2hlbWEpIHtcbiAgdmFyIGZpZWxkTmFtZXMgPSBPYmplY3Qua2V5cyhzY2hlbWEpLmZpbHRlcihrZXkgPT4gbm9uRmllbGRTY2hlbWFLZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEpO1xuICB2YXIgcmVzcG9uc2UgPSBmaWVsZE5hbWVzLnJlZHVjZSgob2JqLCBmaWVsZE5hbWUpID0+IHtcbiAgICBvYmpbZmllbGROYW1lXSA9IG1vbmdvRmllbGRUb1BhcnNlU2NoZW1hRmllbGQoc2NoZW1hW2ZpZWxkTmFtZV0pO1xuICAgIGlmIChcbiAgICAgIHNjaGVtYS5fbWV0YWRhdGEgJiZcbiAgICAgIHNjaGVtYS5fbWV0YWRhdGEuZmllbGRzX29wdGlvbnMgJiZcbiAgICAgIHNjaGVtYS5fbWV0YWRhdGEuZmllbGRzX29wdGlvbnNbZmllbGROYW1lXVxuICAgICkge1xuICAgICAgb2JqW2ZpZWxkTmFtZV0gPSBPYmplY3QuYXNzaWduKFxuICAgICAgICB7fSxcbiAgICAgICAgb2JqW2ZpZWxkTmFtZV0sXG4gICAgICAgIHNjaGVtYS5fbWV0YWRhdGEuZmllbGRzX29wdGlvbnNbZmllbGROYW1lXVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSwge30pO1xuICByZXNwb25zZS5BQ0wgPSB7IHR5cGU6ICdBQ0wnIH07XG4gIHJlc3BvbnNlLmNyZWF0ZWRBdCA9IHsgdHlwZTogJ0RhdGUnIH07XG4gIHJlc3BvbnNlLnVwZGF0ZWRBdCA9IHsgdHlwZTogJ0RhdGUnIH07XG4gIHJlc3BvbnNlLm9iamVjdElkID0geyB0eXBlOiAnU3RyaW5nJyB9O1xuICByZXR1cm4gcmVzcG9uc2U7XG59XG5cbmNvbnN0IGVtcHR5Q0xQUyA9IE9iamVjdC5mcmVlemUoe1xuICBmaW5kOiB7fSxcbiAgY291bnQ6IHt9LFxuICBnZXQ6IHt9LFxuICBjcmVhdGU6IHt9LFxuICB1cGRhdGU6IHt9LFxuICBkZWxldGU6IHt9LFxuICBhZGRGaWVsZDoge30sXG4gIHByb3RlY3RlZEZpZWxkczoge30sXG59KTtcblxuY29uc3QgZGVmYXVsdENMUFMgPSBPYmplY3QuZnJlZXplKHtcbiAgZmluZDogeyAnKic6IHRydWUgfSxcbiAgY291bnQ6IHsgJyonOiB0cnVlIH0sXG4gIGdldDogeyAnKic6IHRydWUgfSxcbiAgY3JlYXRlOiB7ICcqJzogdHJ1ZSB9LFxuICB1cGRhdGU6IHsgJyonOiB0cnVlIH0sXG4gIGRlbGV0ZTogeyAnKic6IHRydWUgfSxcbiAgYWRkRmllbGQ6IHsgJyonOiB0cnVlIH0sXG4gIHByb3RlY3RlZEZpZWxkczogeyAnKic6IFtdIH0sXG59KTtcblxuZnVuY3Rpb24gbW9uZ29TY2hlbWFUb1BhcnNlU2NoZW1hKG1vbmdvU2NoZW1hKSB7XG4gIGxldCBjbHBzID0gZGVmYXVsdENMUFM7XG4gIGxldCBpbmRleGVzID0ge307XG4gIGlmIChtb25nb1NjaGVtYS5fbWV0YWRhdGEpIHtcbiAgICBpZiAobW9uZ29TY2hlbWEuX21ldGFkYXRhLmNsYXNzX3Blcm1pc3Npb25zKSB7XG4gICAgICBjbHBzID0geyAuLi5lbXB0eUNMUFMsIC4uLm1vbmdvU2NoZW1hLl9tZXRhZGF0YS5jbGFzc19wZXJtaXNzaW9ucyB9O1xuICAgIH1cbiAgICBpZiAobW9uZ29TY2hlbWEuX21ldGFkYXRhLmluZGV4ZXMpIHtcbiAgICAgIGluZGV4ZXMgPSB7IC4uLm1vbmdvU2NoZW1hLl9tZXRhZGF0YS5pbmRleGVzIH07XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgY2xhc3NOYW1lOiBtb25nb1NjaGVtYS5faWQsXG4gICAgZmllbGRzOiBtb25nb1NjaGVtYUZpZWxkc1RvUGFyc2VTY2hlbWFGaWVsZHMobW9uZ29TY2hlbWEpLFxuICAgIGNsYXNzTGV2ZWxQZXJtaXNzaW9uczogY2xwcyxcbiAgICBpbmRleGVzOiBpbmRleGVzLFxuICB9O1xufVxuXG5mdW5jdGlvbiBfbW9uZ29TY2hlbWFRdWVyeUZyb21OYW1lUXVlcnkobmFtZTogc3RyaW5nLCBxdWVyeSkge1xuICBjb25zdCBvYmplY3QgPSB7IF9pZDogbmFtZSB9O1xuICBpZiAocXVlcnkpIHtcbiAgICBPYmplY3Qua2V5cyhxdWVyeSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgb2JqZWN0W2tleV0gPSBxdWVyeVtrZXldO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBvYmplY3Q7XG59XG5cbi8vIFJldHVybnMgYSB0eXBlIHN1aXRhYmxlIGZvciBpbnNlcnRpbmcgaW50byBtb25nbyBfU0NIRU1BIGNvbGxlY3Rpb24uXG4vLyBEb2VzIG5vIHZhbGlkYXRpb24uIFRoYXQgaXMgZXhwZWN0ZWQgdG8gYmUgZG9uZSBpbiBQYXJzZSBTZXJ2ZXIuXG5mdW5jdGlvbiBwYXJzZUZpZWxkVHlwZVRvTW9uZ29GaWVsZFR5cGUoeyB0eXBlLCB0YXJnZXRDbGFzcyB9KSB7XG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgJ1BvaW50ZXInOlxuICAgICAgcmV0dXJuIGAqJHt0YXJnZXRDbGFzc31gO1xuICAgIGNhc2UgJ1JlbGF0aW9uJzpcbiAgICAgIHJldHVybiBgcmVsYXRpb248JHt0YXJnZXRDbGFzc30+YDtcbiAgICBjYXNlICdOdW1iZXInOlxuICAgICAgcmV0dXJuICdudW1iZXInO1xuICAgIGNhc2UgJ1N0cmluZyc6XG4gICAgICByZXR1cm4gJ3N0cmluZyc7XG4gICAgY2FzZSAnQm9vbGVhbic6XG4gICAgICByZXR1cm4gJ2Jvb2xlYW4nO1xuICAgIGNhc2UgJ0RhdGUnOlxuICAgICAgcmV0dXJuICdkYXRlJztcbiAgICBjYXNlICdPYmplY3QnOlxuICAgICAgcmV0dXJuICdvYmplY3QnO1xuICAgIGNhc2UgJ0FycmF5JzpcbiAgICAgIHJldHVybiAnYXJyYXknO1xuICAgIGNhc2UgJ0dlb1BvaW50JzpcbiAgICAgIHJldHVybiAnZ2VvcG9pbnQnO1xuICAgIGNhc2UgJ0ZpbGUnOlxuICAgICAgcmV0dXJuICdmaWxlJztcbiAgICBjYXNlICdCeXRlcyc6XG4gICAgICByZXR1cm4gJ2J5dGVzJztcbiAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgIHJldHVybiAncG9seWdvbic7XG4gIH1cbn1cblxuY2xhc3MgTW9uZ29TY2hlbWFDb2xsZWN0aW9uIHtcbiAgX2NvbGxlY3Rpb246IE1vbmdvQ29sbGVjdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihjb2xsZWN0aW9uOiBNb25nb0NvbGxlY3Rpb24pIHtcbiAgICB0aGlzLl9jb2xsZWN0aW9uID0gY29sbGVjdGlvbjtcbiAgfVxuXG4gIF9mZXRjaEFsbFNjaGVtYXNGcm9tX1NDSEVNQSgpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbi5fcmF3RmluZCh7fSkudGhlbihzY2hlbWFzID0+IHNjaGVtYXMubWFwKG1vbmdvU2NoZW1hVG9QYXJzZVNjaGVtYSkpO1xuICB9XG5cbiAgX2ZldGNoT25lU2NoZW1hRnJvbV9TQ0hFTUEobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb25cbiAgICAgIC5fcmF3RmluZChfbW9uZ29TY2hlbWFRdWVyeUZyb21OYW1lUXVlcnkobmFtZSksIHsgbGltaXQ6IDEgfSlcbiAgICAgIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAgICBpZiAocmVzdWx0cy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICByZXR1cm4gbW9uZ29TY2hlbWFUb1BhcnNlU2NoZW1hKHJlc3VsdHNbMF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICAvLyBBdG9taWNhbGx5IGZpbmQgYW5kIGRlbGV0ZSBhbiBvYmplY3QgYmFzZWQgb24gcXVlcnkuXG4gIGZpbmRBbmREZWxldGVTY2hlbWEobmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbGxlY3Rpb24uX21vbmdvQ29sbGVjdGlvbi5maW5kT25lQW5kRGVsZXRlKF9tb25nb1NjaGVtYVF1ZXJ5RnJvbU5hbWVRdWVyeShuYW1lKSk7XG4gIH1cblxuICBpbnNlcnRTY2hlbWEoc2NoZW1hOiBhbnkpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvblxuICAgICAgLmluc2VydE9uZShzY2hlbWEpXG4gICAgICAudGhlbigoKSA9PiBtb25nb1NjaGVtYVRvUGFyc2VTY2hlbWEoc2NoZW1hKSlcbiAgICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICAgIGlmIChlcnJvci5jb2RlID09PSAxMTAwMCkge1xuICAgICAgICAgIC8vTW9uZ28ncyBkdXBsaWNhdGUga2V5IGVycm9yXG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLkRVUExJQ0FURV9WQUxVRSwgJ0NsYXNzIGFscmVhZHkgZXhpc3RzLicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVNjaGVtYShuYW1lOiBzdHJpbmcsIHVwZGF0ZSkge1xuICAgIHJldHVybiB0aGlzLl9jb2xsZWN0aW9uLnVwZGF0ZU9uZShfbW9uZ29TY2hlbWFRdWVyeUZyb21OYW1lUXVlcnkobmFtZSksIHVwZGF0ZSk7XG4gIH1cblxuICB1cHNlcnRTY2hlbWEobmFtZTogc3RyaW5nLCBxdWVyeTogc3RyaW5nLCB1cGRhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5fY29sbGVjdGlvbi51cHNlcnRPbmUoX21vbmdvU2NoZW1hUXVlcnlGcm9tTmFtZVF1ZXJ5KG5hbWUsIHF1ZXJ5KSwgdXBkYXRlKTtcbiAgfVxuXG4gIC8vIEFkZCBhIGZpZWxkIHRvIHRoZSBzY2hlbWEuIElmIGRhdGFiYXNlIGRvZXMgbm90IHN1cHBvcnQgdGhlIGZpZWxkXG4gIC8vIHR5cGUgKGUuZy4gbW9uZ28gZG9lc24ndCBzdXBwb3J0IG1vcmUgdGhhbiBvbmUgR2VvUG9pbnQgaW4gYSBjbGFzcykgcmVqZWN0IHdpdGggYW4gXCJJbmNvcnJlY3QgVHlwZVwiXG4gIC8vIFBhcnNlIGVycm9yIHdpdGggYSBkZXNjaXB0aXZlIG1lc3NhZ2UuIElmIHRoZSBmaWVsZCBhbHJlYWR5IGV4aXN0cywgdGhpcyBmdW5jdGlvbiBtdXN0XG4gIC8vIG5vdCBtb2RpZnkgdGhlIHNjaGVtYSwgYW5kIG11c3QgcmVqZWN0IHdpdGggRFVQTElDQVRFX1ZBTFVFIGVycm9yLlxuICAvLyBJZiB0aGlzIGlzIGNhbGxlZCBmb3IgYSBjbGFzcyB0aGF0IGRvZXNuJ3QgZXhpc3QsIHRoaXMgZnVuY3Rpb24gbXVzdCBjcmVhdGUgdGhhdCBjbGFzcy5cblxuICAvLyBUT0RPOiB0aHJvdyBhbiBlcnJvciBpZiBhbiB1bnN1cHBvcnRlZCBmaWVsZCB0eXBlIGlzIHBhc3NlZC4gRGVjaWRpbmcgd2hldGhlciBhIHR5cGUgaXMgc3VwcG9ydGVkXG4gIC8vIHNob3VsZCBiZSB0aGUgam9iIG9mIHRoZSBhZGFwdGVyLiBTb21lIGFkYXB0ZXJzIG1heSBub3Qgc3VwcG9ydCBHZW9Qb2ludCBhdCBhbGwuIE90aGVycyBtYXlcbiAgLy8gU3VwcG9ydCBhZGRpdGlvbmFsIHR5cGVzIHRoYXQgTW9uZ28gZG9lc24ndCwgbGlrZSBNb25leSwgb3Igc29tZXRoaW5nLlxuXG4gIC8vIFRPRE86IGRvbid0IHNwZW5kIGFuIGV4dHJhIHF1ZXJ5IG9uIGZpbmRpbmcgdGhlIHNjaGVtYSBpZiB0aGUgdHlwZSB3ZSBhcmUgdHJ5aW5nIHRvIGFkZCBpc24ndCBhIEdlb1BvaW50LlxuICBhZGRGaWVsZElmTm90RXhpc3RzKGNsYXNzTmFtZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZywgZmllbGRUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5fZmV0Y2hPbmVTY2hlbWFGcm9tX1NDSEVNQShjbGFzc05hbWUpXG4gICAgICAudGhlbihcbiAgICAgICAgc2NoZW1hID0+IHtcbiAgICAgICAgICAvLyBJZiBhIGZpZWxkIHdpdGggdGhpcyBuYW1lIGFscmVhZHkgZXhpc3RzLCBpdCB3aWxsIGJlIGhhbmRsZWQgZWxzZXdoZXJlLlxuICAgICAgICAgIGlmIChzY2hlbWEuZmllbGRzW2ZpZWxkTmFtZV0gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBUaGUgc2NoZW1hIGV4aXN0cy4gQ2hlY2sgZm9yIGV4aXN0aW5nIEdlb1BvaW50cy5cbiAgICAgICAgICBpZiAoZmllbGRUeXBlLnR5cGUgPT09ICdHZW9Qb2ludCcpIHtcbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGVyZSBhcmUgbm90IG90aGVyIGdlb3BvaW50IGZpZWxkc1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhzY2hlbWEuZmllbGRzKS5zb21lKFxuICAgICAgICAgICAgICAgIGV4aXN0aW5nRmllbGQgPT4gc2NoZW1hLmZpZWxkc1tleGlzdGluZ0ZpZWxkXS50eXBlID09PSAnR2VvUG9pbnQnXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgICAgICAgICAgUGFyc2UuRXJyb3IuSU5DT1JSRUNUX1RZUEUsXG4gICAgICAgICAgICAgICAgJ01vbmdvREIgb25seSBzdXBwb3J0cyBvbmUgR2VvUG9pbnQgZmllbGQgaW4gYSBjbGFzcy4nXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgIC8vIElmIGVycm9yIGlzIHVuZGVmaW5lZCwgdGhlIHNjaGVtYSBkb2Vzbid0IGV4aXN0LCBhbmQgd2UgY2FuIGNyZWF0ZSB0aGUgc2NoZW1hIHdpdGggdGhlIGZpZWxkLlxuICAgICAgICAgIC8vIElmIHNvbWUgb3RoZXIgZXJyb3IsIHJlamVjdCB3aXRoIGl0LlxuICAgICAgICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICApXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgdHlwZSwgdGFyZ2V0Q2xhc3MsIC4uLmZpZWxkT3B0aW9ucyB9ID0gZmllbGRUeXBlO1xuICAgICAgICAvLyBXZSB1c2UgJGV4aXN0cyBhbmQgJHNldCB0byBhdm9pZCBvdmVyd3JpdGluZyB0aGUgZmllbGQgdHlwZSBpZiBpdFxuICAgICAgICAvLyBhbHJlYWR5IGV4aXN0cy4gKGl0IGNvdWxkIGhhdmUgYWRkZWQgaW5iZXR3ZWVuIHRoZSBsYXN0IHF1ZXJ5IGFuZCB0aGUgdXBkYXRlKVxuICAgICAgICBpZiAoZmllbGRPcHRpb25zICYmIE9iamVjdC5rZXlzKGZpZWxkT3B0aW9ucykubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnVwc2VydFNjaGVtYShcbiAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgIHsgW2ZpZWxkTmFtZV06IHsgJGV4aXN0czogZmFsc2UgfSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgICAgICAgW2ZpZWxkTmFtZV06IHBhcnNlRmllbGRUeXBlVG9Nb25nb0ZpZWxkVHlwZSh7XG4gICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2xhc3MsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgW2BfbWV0YWRhdGEuZmllbGRzX29wdGlvbnMuJHtmaWVsZE5hbWV9YF06IGZpZWxkT3B0aW9ucyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB0aGlzLnVwc2VydFNjaGVtYShcbiAgICAgICAgICAgIGNsYXNzTmFtZSxcbiAgICAgICAgICAgIHsgW2ZpZWxkTmFtZV06IHsgJGV4aXN0czogZmFsc2UgfSB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAkc2V0OiB7XG4gICAgICAgICAgICAgICAgW2ZpZWxkTmFtZV06IHBhcnNlRmllbGRUeXBlVG9Nb25nb0ZpZWxkVHlwZSh7XG4gICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgdGFyZ2V0Q2xhc3MsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBhc3luYyB1cGRhdGVGaWVsZE9wdGlvbnMoY2xhc3NOYW1lOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nLCBmaWVsZFR5cGU6IGFueSkge1xuICAgIGNvbnN0IHsgLi4uZmllbGRPcHRpb25zIH0gPSBmaWVsZFR5cGU7XG4gICAgZGVsZXRlIGZpZWxkT3B0aW9ucy50eXBlO1xuICAgIGRlbGV0ZSBmaWVsZE9wdGlvbnMudGFyZ2V0Q2xhc3M7XG5cbiAgICBhd2FpdCB0aGlzLnVwc2VydFNjaGVtYShcbiAgICAgIGNsYXNzTmFtZSxcbiAgICAgIHsgW2ZpZWxkTmFtZV06IHsgJGV4aXN0czogdHJ1ZSB9IH0sXG4gICAgICB7XG4gICAgICAgICRzZXQ6IHtcbiAgICAgICAgICBbYF9tZXRhZGF0YS5maWVsZHNfb3B0aW9ucy4ke2ZpZWxkTmFtZX1gXTogZmllbGRPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgICk7XG4gIH1cbn1cblxuLy8gRXhwb3J0ZWQgZm9yIHRlc3RpbmcgcmVhc29ucyBhbmQgYmVjYXVzZSB3ZSBoYXZlbid0IG1vdmVkIGFsbCBtb25nbyBzY2hlbWEgZm9ybWF0XG4vLyByZWxhdGVkIGxvZ2ljIGludG8gdGhlIGRhdGFiYXNlIGFkYXB0ZXIgeWV0LlxuTW9uZ29TY2hlbWFDb2xsZWN0aW9uLl9URVNUbW9uZ29TY2hlbWFUb1BhcnNlU2NoZW1hID0gbW9uZ29TY2hlbWFUb1BhcnNlU2NoZW1hO1xuTW9uZ29TY2hlbWFDb2xsZWN0aW9uLnBhcnNlRmllbGRUeXBlVG9Nb25nb0ZpZWxkVHlwZSA9IHBhcnNlRmllbGRUeXBlVG9Nb25nb0ZpZWxkVHlwZTtcblxuZXhwb3J0IGRlZmF1bHQgTW9uZ29TY2hlbWFDb2xsZWN0aW9uO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxnQkFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsS0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQStCLFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsS0FBQUUsT0FBQSxFQUFBRixHQUFBO0FBQUEsU0FBQUcsU0FBQSxJQUFBQSxRQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxHQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsSUFBQSxlQUFBQyxNQUFBLGFBQUFDLENBQUEsTUFBQUEsQ0FBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUYsQ0FBQSxVQUFBRyxNQUFBLEdBQUFGLFNBQUEsQ0FBQUQsQ0FB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
|