payload 3.0.0-alpha.2 → 3.0.0-alpha.21
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/auth.js +5 -44
- package/bin.js +40 -1
- package/components.d.ts +14 -0
- package/components.js +71 -0
- package/config.js +10 -59
- package/database.js +21 -108
- package/dist/admin/RichText.js +2 -5
- package/dist/admin/elements/Cell.js +2 -5
- package/dist/admin/elements/DatePicker.js +2 -5
- package/dist/admin/elements/PreviewButton.js +2 -5
- package/dist/admin/elements/PublishButton.js +2 -5
- package/dist/admin/elements/SaveButton.js +2 -5
- package/dist/admin/elements/SaveDraftButton.js +2 -5
- package/dist/admin/elements/Tab.js +2 -5
- package/dist/admin/forms/Error.js +2 -5
- package/dist/admin/forms/FieldDescription.js +2 -5
- package/dist/admin/forms/FieldTypes.js +2 -5
- package/dist/admin/forms/Form.d.ts +22 -0
- package/dist/admin/forms/Form.d.ts.map +1 -1
- package/dist/admin/forms/Form.js +2 -5
- package/dist/admin/forms/Label.js +2 -5
- package/dist/admin/forms/RowLabel.js +2 -5
- package/dist/admin/types.d.ts +2 -1
- package/dist/admin/types.d.ts.map +1 -1
- package/dist/admin/types.js +2 -5
- package/dist/admin/views/types.d.ts +41 -0
- package/dist/admin/views/types.d.ts.map +1 -0
- package/dist/admin/views/types.js +3 -0
- package/dist/assets/assets.d.js +0 -1
- package/dist/auth/baseFields/accountLock.js +2 -12
- package/dist/auth/baseFields/apiKey.js +6 -21
- package/dist/auth/baseFields/auth.js +6 -16
- package/dist/auth/baseFields/verification.js +4 -14
- package/dist/auth/cookies.js +6 -33
- package/dist/auth/crypto.js +7 -30
- package/dist/auth/defaultAccess.js +2 -12
- package/dist/auth/defaultUser.js +4 -14
- package/dist/auth/executeAccess.js +5 -15
- package/dist/auth/extractJWT.js +4 -14
- package/dist/auth/getAccessResults.js +5 -15
- package/dist/auth/getAuthenticatedUser.js +2 -12
- package/dist/auth/getFieldsToSign.js +5 -15
- package/dist/auth/index.js +4 -27
- package/dist/auth/isLocked.js +2 -12
- package/dist/auth/operations/access.js +12 -22
- package/dist/auth/operations/forgotPassword.js +17 -32
- package/dist/auth/operations/init.js +2 -12
- package/dist/auth/operations/local/forgotPassword.js +8 -18
- package/dist/auth/operations/local/index.js +12 -27
- package/dist/auth/operations/local/login.js +8 -18
- package/dist/auth/operations/local/resetPassword.js +8 -18
- package/dist/auth/operations/local/unlock.js +8 -18
- package/dist/auth/operations/local/verifyEmail.js +8 -18
- package/dist/auth/operations/login.js +32 -47
- package/dist/auth/operations/logout.js +6 -21
- package/dist/auth/operations/me.js +4 -19
- package/dist/auth/operations/refresh.js +19 -34
- package/dist/auth/operations/registerFirstUser.js +10 -20
- package/dist/auth/operations/resetPassword.js +20 -43
- package/dist/auth/operations/unlock.js +16 -39
- package/dist/auth/operations/verifyEmail.js +14 -37
- package/dist/auth/sendVerificationEmail.js +4 -14
- package/dist/auth/strategies/apiKey.js +4 -19
- package/dist/auth/strategies/jwt.js +6 -21
- package/dist/auth/strategies/local/authenticate.js +6 -21
- package/dist/auth/strategies/local/generatePasswordSaltHash.js +7 -22
- package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -12
- package/dist/auth/strategies/local/register.js +6 -16
- package/dist/auth/strategies/local/resetLoginAttempts.js +2 -12
- package/dist/auth/types.js +2 -12
- package/dist/bin/generateTypes.js +12 -27
- package/dist/bin/index.js +11 -53
- package/dist/bin/loadEnv.js +13 -26
- package/dist/bin/migrate.js +15 -30
- package/dist/bundlers/mocks/db-mongodb.js +0 -1
- package/dist/bundlers/mocks/db-postgres.js +2 -12
- package/dist/bundlers/mocks/dotENV.js +2 -12
- package/dist/bundlers/mocks/emptyModule.js +2 -12
- package/dist/bundlers/mocks/fileMock.js +2 -12
- package/dist/bundlers/types.js +2 -5
- package/dist/collections/config/build.js +2 -12
- package/dist/collections/config/defaults.js +9 -32
- package/dist/collections/config/sanitize.js +34 -49
- package/dist/collections/config/schema.js +157 -172
- package/dist/collections/config/types.d.ts +5 -5
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +2 -5
- package/dist/collections/dataloader.js +8 -23
- package/dist/collections/operations/create.js +38 -53
- package/dist/collections/operations/delete.js +27 -42
- package/dist/collections/operations/deleteByID.js +27 -42
- package/dist/collections/operations/docAccess.js +10 -20
- package/dist/collections/operations/find.js +25 -40
- package/dist/collections/operations/findByID.js +21 -36
- package/dist/collections/operations/findVersionByID.js +19 -34
- package/dist/collections/operations/findVersions.js +20 -35
- package/dist/collections/operations/local/create.js +10 -25
- package/dist/collections/operations/local/delete.js +10 -20
- package/dist/collections/operations/local/find.js +8 -18
- package/dist/collections/operations/local/findByID.js +8 -18
- package/dist/collections/operations/local/findVersionByID.js +8 -18
- package/dist/collections/operations/local/findVersions.js +8 -18
- package/dist/collections/operations/local/index.js +20 -35
- package/dist/collections/operations/local/restoreVersion.js +8 -18
- package/dist/collections/operations/local/update.js +12 -27
- package/dist/collections/operations/restoreVersion.js +26 -41
- package/dist/collections/operations/update.js +43 -58
- package/dist/collections/operations/updateByID.js +44 -59
- package/dist/collections/operations/utils.js +3 -12
- package/dist/config/build.js +9 -15
- package/dist/config/clientFiles.js +2 -12
- package/dist/config/createClientConfig.d.ts.map +1 -1
- package/dist/config/createClientConfig.js +12 -25
- package/dist/config/defaults.js +4 -19
- package/dist/config/find.js +18 -33
- package/dist/config/load.d.ts +1 -3
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +8 -37
- package/dist/config/sanitize.js +25 -40
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +116 -133
- package/dist/config/shared/adminViewSchema.js +9 -24
- package/dist/config/shared/componentSchema.js +21 -50
- package/dist/config/types.d.ts +12 -21
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +9 -21
- package/dist/config/validate.js +15 -71
- package/dist/database/combineQueries.js +4 -14
- package/dist/database/createDatabaseAdapter.js +14 -24
- package/dist/database/flattenWhereToOperators.js +2 -12
- package/dist/database/getLocalizedPaths.js +7 -22
- package/dist/database/migrations/createMigration.js +7 -22
- package/dist/database/migrations/getMigrations.js +4 -12
- package/dist/database/migrations/migrate.js +12 -22
- package/dist/database/migrations/migrateDown.js +12 -22
- package/dist/database/migrations/migrateRefresh.js +16 -24
- package/dist/database/migrations/migrateReset.js +12 -22
- package/dist/database/migrations/migrateStatus.js +8 -18
- package/dist/database/migrations/migrationTemplate.js +2 -12
- package/dist/database/migrations/migrationsCollection.js +2 -12
- package/dist/database/migrations/readMigrationFiles.d.ts.map +1 -1
- package/dist/database/migrations/readMigrationFiles.js +12 -24
- package/dist/database/queryValidation/types.js +2 -5
- package/dist/database/queryValidation/validateQueryPaths.js +13 -28
- package/dist/database/queryValidation/validateSearchParams.js +13 -21
- package/dist/database/types.d.ts +5 -2
- package/dist/database/types.d.ts.map +1 -1
- package/dist/database/types.js +2 -5
- package/dist/email/build.js +11 -26
- package/dist/email/defaults.js +2 -12
- package/dist/email/mockHandler.js +8 -23
- package/dist/email/sendEmail.js +2 -12
- package/dist/email/types.js +2 -5
- package/dist/errors/APIError.js +4 -19
- package/dist/errors/AuthenticationError.js +7 -22
- package/dist/errors/DuplicateCollection.js +4 -19
- package/dist/errors/DuplicateFieldName.js +4 -19
- package/dist/errors/DuplicateGlobal.js +4 -19
- package/dist/errors/ErrorDeletingFile.js +7 -22
- package/dist/errors/FileUploadError.js +7 -22
- package/dist/errors/Forbidden.js +7 -22
- package/dist/errors/InvalidConfiguration.js +6 -21
- package/dist/errors/InvalidFieldName.js +4 -19
- package/dist/errors/InvalidFieldRelationship.js +4 -19
- package/dist/errors/InvalidSchema.js +6 -21
- package/dist/errors/LockedAuth.js +7 -22
- package/dist/errors/MissingCollectionLabel.js +4 -19
- package/dist/errors/MissingFieldInputOptions.js +4 -19
- package/dist/errors/MissingFieldType.js +6 -21
- package/dist/errors/MissingFile.js +7 -22
- package/dist/errors/NotFound.js +7 -22
- package/dist/errors/QueryError.js +6 -21
- package/dist/errors/TimestampsRequired.js +4 -19
- package/dist/errors/UnathorizedError.js +7 -22
- package/dist/errors/ValidationError.js +8 -23
- package/dist/errors/index.js +20 -94
- package/dist/errors/types.js +2 -19
- package/dist/exports/auth.js +5 -44
- package/dist/exports/components/utilities.d.ts +0 -1
- package/dist/exports/components/utilities.js +0 -1
- package/dist/exports/config.js +10 -59
- package/dist/exports/database.js +21 -108
- package/dist/exports/errors.js +2 -68
- package/dist/exports/fields/index.js +3 -26
- package/dist/exports/fields/validations.js +2 -19
- package/dist/exports/operations.js +29 -125
- package/dist/exports/types.js +4 -74
- package/dist/exports/utilities.js +28 -141
- package/dist/exports/versions.js +9 -45
- package/dist/express/middleware/errorHandler.d.ts +0 -1
- package/dist/express/middleware/errorHandler.js +0 -1
- package/dist/express/middleware/index.d.ts +0 -1
- package/dist/express/middleware/index.js +0 -1
- package/dist/fields/baseFields/baseBlockFields.js +4 -14
- package/dist/fields/baseFields/baseIDField.js +4 -19
- package/dist/fields/config/sanitize.js +24 -39
- package/dist/fields/config/sanitize.spec.js +25 -29
- package/dist/fields/config/schema.js +329 -424
- package/dist/fields/config/types.js +15 -69
- package/dist/fields/getDefaultValue.js +2 -12
- package/dist/fields/hooks/afterChange/index.js +6 -16
- package/dist/fields/hooks/afterChange/promise.js +14 -22
- package/dist/fields/hooks/afterChange/traverseFields.js +4 -14
- package/dist/fields/hooks/afterRead/index.js +6 -16
- package/dist/fields/hooks/afterRead/promise.js +28 -36
- package/dist/fields/hooks/afterRead/relationshipPopulationPromise.js +5 -15
- package/dist/fields/hooks/afterRead/traverseFields.js +4 -14
- package/dist/fields/hooks/beforeChange/cloneDataFromOriginalDoc.js +2 -12
- package/dist/fields/hooks/beforeChange/getExistingRowDoc.js +2 -12
- package/dist/fields/hooks/beforeChange/index.js +8 -18
- package/dist/fields/hooks/beforeChange/promise.js +26 -35
- package/dist/fields/hooks/beforeChange/traverseFields.js +4 -14
- package/dist/fields/hooks/beforeValidate/index.js +6 -16
- package/dist/fields/hooks/beforeValidate/promise.js +30 -39
- package/dist/fields/hooks/beforeValidate/traverseFields.js +4 -14
- package/dist/fields/mergeBaseFields.js +8 -23
- package/dist/fields/sortableFieldTypes.js +2 -12
- package/dist/fields/validations.js +31 -97
- package/dist/fields/validations.spec.js +93 -87
- package/dist/globals/config/build.d.ts +0 -1
- package/dist/globals/config/build.js +0 -1
- package/dist/globals/config/sanitize.js +17 -32
- package/dist/globals/config/schema.js +55 -70
- package/dist/globals/config/types.d.ts +5 -5
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/globals/config/types.js +2 -5
- package/dist/globals/graphql/resolvers/docAccess.d.ts +0 -1
- package/dist/globals/graphql/resolvers/docAccess.js +0 -1
- package/dist/globals/operations/docAccess.js +10 -20
- package/dist/globals/operations/findOne.js +14 -29
- package/dist/globals/operations/findVersionByID.js +18 -33
- package/dist/globals/operations/findVersions.js +20 -35
- package/dist/globals/operations/local/findOne.js +8 -18
- package/dist/globals/operations/local/findVersionByID.js +8 -18
- package/dist/globals/operations/local/findVersions.js +8 -18
- package/dist/globals/operations/local/index.js +12 -27
- package/dist/globals/operations/local/restoreVersion.js +8 -18
- package/dist/globals/operations/local/update.js +8 -18
- package/dist/globals/operations/restoreVersion.js +16 -31
- package/dist/globals/operations/update.js +23 -38
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +50 -70
- package/dist/localization/middleware.js +2 -12
- package/dist/localization/sanitizeFallbackLocale.js +2 -12
- package/dist/preferences/deleteUserPreferences.js +2 -12
- package/dist/preferences/operations/delete.js +10 -25
- package/dist/preferences/operations/findOne.js +2 -12
- package/dist/preferences/operations/update.js +8 -23
- package/dist/preferences/preferencesCollection.js +8 -18
- package/dist/preferences/requestHandlers/delete.js +6 -21
- package/dist/preferences/requestHandlers/findOne.js +6 -21
- package/dist/preferences/requestHandlers/update.js +6 -21
- package/dist/preferences/types.js +2 -5
- package/dist/translations/extractTranslations.js +4 -14
- package/dist/translations/getLocalI18n.js +5 -15
- package/dist/types/constants.js +2 -12
- package/dist/types/index.js +2 -12
- package/dist/uploads/canResizeImage.js +2 -12
- package/dist/uploads/cropImage.d.ts +3 -7
- package/dist/uploads/cropImage.d.ts.map +1 -1
- package/dist/uploads/cropImage.js +4 -28
- package/dist/uploads/deleteAssociatedFiles.js +11 -26
- package/dist/uploads/docWithFilenameExists.js +2 -12
- package/dist/uploads/fileExists.js +4 -19
- package/dist/uploads/formatFilesize.js +2 -12
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +40 -53
- package/dist/uploads/getBaseFields.js +6 -16
- package/dist/uploads/getExternalFile.js +5 -15
- package/dist/uploads/getFileByPath.js +10 -25
- package/dist/uploads/getImageSize.js +7 -22
- package/dist/uploads/getSafeFilename.js +8 -23
- package/dist/uploads/imageResizer.d.ts +3 -1
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +28 -44
- package/dist/uploads/isImage.js +2 -12
- package/dist/uploads/mimeTypeValidator.js +2 -12
- package/dist/uploads/mimeTypeValidator.spec.js +11 -15
- package/dist/uploads/saveBufferToFile.js +6 -21
- package/dist/uploads/types.d.ts +7 -1
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js +2 -5
- package/dist/uploads/unlinkTempFiles.js +9 -22
- package/dist/uploads/uploadFiles.js +6 -21
- package/dist/utilities/checkDuplicateCollections.js +4 -14
- package/dist/utilities/combineMerge.js +4 -19
- package/dist/utilities/commitTransaction.js +4 -12
- package/dist/utilities/configToJSONSchema.js +22 -41
- package/dist/utilities/configToJSONSchema.spec.js +5 -9
- package/dist/utilities/convertData.js +3 -23
- package/dist/utilities/createArrayFromCommaDelineated.js +2 -12
- package/dist/utilities/createLocalReq.js +6 -16
- package/dist/utilities/deepCopyObject.js +2 -12
- package/dist/utilities/deepMerge.js +2 -12
- package/dist/utilities/fieldSchemaToJSON.js +2 -12
- package/dist/utilities/flattenTopLevelFields.js +6 -16
- package/dist/utilities/formatLabels.js +9 -70
- package/dist/utilities/formatLabels.spec.js +8 -12
- package/dist/utilities/getCSSVariable.js +2 -12
- package/dist/utilities/getEntityPolicies.js +4 -14
- package/dist/utilities/getIDType.js +2 -12
- package/dist/utilities/getObjectDotNotation.js +2 -12
- package/dist/utilities/getUniqueListBy.js +2 -12
- package/dist/utilities/initTransaction.js +5 -12
- package/dist/utilities/isEntityHidden.js +2 -12
- package/dist/utilities/isNumber.js +2 -12
- package/dist/utilities/isValidID.js +5 -20
- package/dist/utilities/isolateObjectProperty.js +2 -12
- package/dist/utilities/killTransaction.js +4 -12
- package/dist/utilities/logger.d.ts.map +1 -1
- package/dist/utilities/logger.js +16 -37
- package/dist/utilities/mapAsync.js +2 -12
- package/dist/utilities/overwriteMerge.js +2 -12
- package/dist/utilities/parseCookies.js +4 -14
- package/dist/utilities/pinoPretty.d.ts +1 -0
- package/dist/utilities/pinoPretty.d.ts.map +1 -0
- package/dist/utilities/pinoPretty.js +2 -0
- package/dist/utilities/sanitizeInternalFields.js +2 -12
- package/dist/utilities/setsAreEqual.js +2 -12
- package/dist/utilities/telemetry/events/adminInit.js +7 -17
- package/dist/utilities/telemetry/events/serverInit.js +4 -14
- package/dist/utilities/telemetry/index.js +17 -40
- package/dist/utilities/telemetry/oneWayHash.js +4 -14
- package/dist/utilities/timestamp.js +2 -12
- package/dist/utilities/toKebabCase.js +2 -12
- package/dist/utilities/wait.js +2 -12
- package/dist/utilities/wordBoundariesRegex.js +3 -13
- package/dist/versions/baseFields.js +5 -23
- package/dist/versions/buildCollectionFields.js +2 -12
- package/dist/versions/buildGlobalFields.js +2 -12
- package/dist/versions/deleteCollectionVersions.js +2 -12
- package/dist/versions/drafts/appendVersionToQueryKey.js +2 -12
- package/dist/versions/drafts/getQueryDraftsSort.js +2 -12
- package/dist/versions/drafts/replaceWithDraftIfAvailable.js +12 -27
- package/dist/versions/enforceMaxVersions.js +2 -12
- package/dist/versions/getLatestCollectionVersion.js +4 -14
- package/dist/versions/getLatestGlobalVersion.js +4 -14
- package/dist/versions/getVersionsModelName.js +2 -12
- package/dist/versions/saveVersion.js +8 -23
- package/dist/versions/types.js +2 -5
- package/errors.js +2 -68
- package/graphql.d.ts +3 -0
- package/graphql.js +27 -0
- package/operations.js +29 -125
- package/package.json +17 -5
- package/types.js +4 -74
- package/utilities.js +28 -141
- package/versions.js +9 -45
package/dist/config/types.js
CHANGED
|
@@ -1,26 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: all[name]
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
hasTransport: function() {
|
|
13
|
-
return hasTransport;
|
|
14
|
-
},
|
|
15
|
-
hasTransportOptions: function() {
|
|
16
|
-
return hasTransportOptions;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
function hasTransport(emailConfig) {
|
|
1
|
+
/**
|
|
2
|
+
* type guard for EmailOptions
|
|
3
|
+
* @param emailConfig
|
|
4
|
+
*/ export function hasTransport(emailConfig) {
|
|
20
5
|
return emailConfig.transport !== undefined;
|
|
21
6
|
}
|
|
22
|
-
|
|
7
|
+
/**
|
|
8
|
+
* type guard for EmailOptions
|
|
9
|
+
* @param emailConfig
|
|
10
|
+
*/ export function hasTransportOptions(emailConfig) {
|
|
23
11
|
return emailConfig.transportOptions !== undefined;
|
|
24
12
|
}
|
|
25
13
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJMThuT3B0aW9ucyB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBSZXF1aXJlZCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5cbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uJ1xuaW1wb3J0IHR5cGUgeyBEb2N1bWVudFRhYiwgUmljaFRleHRBZGFwdGVyIH0gZnJvbSAnLi4vYWRtaW4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuLi9hdXRoL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBZnRlckVycm9ySG9vayxcbiAgQ29sbGVjdGlvbixcbiAgQ29sbGVjdGlvbkNvbmZpZyxcbiAgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyxcbn0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhYmFzZUFkYXB0ZXJSZXN1bHQgfSBmcm9tICcuLi9kYXRhYmFzZS90eXBlcydcbmltcG9ydCB0eXBlIHsgQ2xpZW50Q29uZmlnRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBHbG9iYWxDb25maWcsIEdsb2JhbHMsIFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgV2hlcmUgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZExvZ2dlciB9IGZyb20gJy4uL3V0aWxpdGllcy9sb2dnZXInXG5cbmV4cG9ydCB0eXBlIEJpblNjcmlwdENvbmZpZyA9IHtcbiAga2V5OiBzdHJpbmdcbiAgc2NyaXB0UGF0aDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEJpblNjcmlwdCA9IChjb25maWc6IFNhbml0aXplZENvbmZpZykgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcblxudHlwZSBQcmV0dGlmeTxUPiA9IHtcbiAgW0sgaW4ga2V5b2YgVF06IFRbS11cbn0gJiBOb25OdWxsYWJsZTx1bmtub3duPlxuXG50eXBlIEVtYWlsID0ge1xuICBmcm9tQWRkcmVzczogc3RyaW5nXG4gIGZyb21OYW1lOiBzdHJpbmdcbiAgbG9nTW9ja0NyZWRlbnRpYWxzPzogYm9vbGVhblxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdXNlLWJlZm9yZS1kZWZpbmVcbmV4cG9ydCB0eXBlIFBsdWdpbiA9IChjb25maWc6IENvbmZpZykgPT4gQ29uZmlnIHwgUHJvbWlzZTxDb25maWc+XG5cbmV4cG9ydCB0eXBlIExpdmVQcmV2aWV3Q29uZmlnID0ge1xuICAvKipcbiAgIERldmljZSBicmVha3BvaW50cyB0byB1c2UgZm9yIHRoZSBgaWZyYW1lYCBvZiB0aGUgTGl2ZSBQcmV2aWV3IHdpbmRvdy5cbiAgIE9wdGlvbnMgYXJlIGRpc3BsYXllZCBpbiB0aGUgTGl2ZSBQcmV2aWV3IHRvb2xiYXIuXG4gICBUaGUgYHJlc3BvbnNpdmVgIGJyZWFrcG9pbnQgaXMgaW5jbHVkZWQgYnkgZGVmYXVsdC5cbiAgICovXG4gIGJyZWFrcG9pbnRzPzoge1xuICAgIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbGFiZWw6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIHdpZHRoOiBudW1iZXIgfCBzdHJpbmdcbiAgfVtdXG4gIC8qKlxuICAgVGhlIFVSTCBvZiB0aGUgZnJvbnRlbmQgYXBwbGljYXRpb24uIFRoaXMgd2lsbCBiZSByZW5kZXJlZCB3aXRoaW4gYW4gYGlmcmFtZWAgYXMgaXRzIGBzcmNgLlxuICAgUGF5bG9hZCB3aWxsIHNlbmQgYSBgd2luZG93LnBvc3RNZXNzYWdlKClgIHRvIHRoaXMgVVJMIHdpdGggdGhlIGRvY3VtZW50IGRhdGEgaW4gcmVhbC10aW1lLlxuICAgVGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciByZWNlaXZpbmcgdGhlIG1lc3NhZ2UgYW5kIHVwZGF0aW5nIHRoZSBVSSBhY2NvcmRpbmdseS5cbiAgIFVzZSB0aGUgYHVzZUxpdmVQcmV2aWV3YCBob29rIHRvIGdldCBzdGFydGVkIGluIFJlYWN0IGFwcGxpY2F0aW9ucy5cbiAgICovXG4gIHVybD86XG4gICAgfCAoKGFyZ3M6IHtcbiAgICAgICAgZGF0YTogUmVjb3JkPHN0cmluZywgYW55PlxuICAgICAgICBkb2N1bWVudEluZm86IGFueSAvLyBUT0RPOiByZW1vdmUgb3IgcG9wdWxhdGUgdGhpc1xuICAgICAgICBsb2NhbGU6IExvY2FsZVxuICAgICAgfSkgPT4gUHJvbWlzZTxzdHJpbmc+IHwgc3RyaW5nKVxuICAgIHwgc3RyaW5nXG59XG5cbnR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMT3B0aW9ucyA9IHtcbiAgbG9jYWxlOiBzdHJpbmdcbiAgdG9rZW46IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBHZW5lcmF0ZVByZXZpZXdVUkwgPSAoXG4gIGRvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIG9wdGlvbnM6IEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMsXG4pID0+IFByb21pc2U8bnVsbCB8IHN0cmluZz4gfCBudWxsIHwgc3RyaW5nXG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0ID0gRW1haWwgJiB7XG4gIHRyYW5zcG9ydDogVHJhbnNwb3J0ZXJcbiAgdHJhbnNwb3J0T3B0aW9ucz86IFNNVFBDb25uZWN0aW9uLk9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgRW1haWxUcmFuc3BvcnRPcHRpb25zID0gRW1haWwgJiB7XG4gIHRyYW5zcG9ydD86IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM6IFNNVFBDb25uZWN0aW9uLk9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgRW1haWxPcHRpb25zID0gRW1haWwgfCBFbWFpbFRyYW5zcG9ydCB8IEVtYWlsVHJhbnNwb3J0T3B0aW9uc1xuXG4vKipcbiAqIHR5cGUgZ3VhcmQgZm9yIEVtYWlsT3B0aW9uc1xuICogQHBhcmFtIGVtYWlsQ29uZmlnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBoYXNUcmFuc3BvcnQoZW1haWxDb25maWc6IEVtYWlsT3B0aW9ucyk6IGVtYWlsQ29uZmlnIGlzIEVtYWlsVHJhbnNwb3J0IHtcbiAgcmV0dXJuIChlbWFpbENvbmZpZyBhcyBFbWFpbFRyYW5zcG9ydCkudHJhbnNwb3J0ICE9PSB1bmRlZmluZWRcbn1cblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0T3B0aW9ucyhcbiAgZW1haWxDb25maWc6IEVtYWlsT3B0aW9ucyxcbik6IGVtYWlsQ29uZmlnIGlzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnRPcHRpb25zKS50cmFuc3BvcnRPcHRpb25zICE9PSB1bmRlZmluZWRcbn1cblxuZXhwb3J0IHR5cGUgR3JhcGhRTEluZm8gPSB7XG4gIE11dGF0aW9uOiB7XG4gICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgUXVlcnk6IHtcbiAgICBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICBuYW1lOiBzdHJpbmdcbiAgfVxuICBjb2xsZWN0aW9uczoge1xuICAgIFtzbHVnOiBudW1iZXIgfCBzdHJpbmcgfCBzeW1ib2xdOiBDb2xsZWN0aW9uXG4gIH1cbiAgZ2xvYmFsczogR2xvYmFsc1xuICB0eXBlczoge1xuICAgIGFycmF5VHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTFR5cGU+XG4gICAgYmxvY2tJbnB1dFR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxJbnB1dE9iamVjdFR5cGU+XG4gICAgYmxvY2tUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMT2JqZWN0VHlwZT5cbiAgICBmYWxsYmFja0xvY2FsZUlucHV0VHlwZT86IEdyYXBoUUwuR3JhcGhRTEVudW1UeXBlIHwgR3JhcGhRTC5HcmFwaFFMU2NhbGFyVHlwZVxuICAgIGdyb3VwVHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTE9iamVjdFR5cGU+XG4gICAgbG9jYWxlSW5wdXRUeXBlPzogR3JhcGhRTC5HcmFwaFFMRW51bVR5cGUgfCBHcmFwaFFMLkdyYXBoUUxTY2FsYXJUeXBlXG4gICAgdGFiVHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTE9iamVjdFR5cGU+XG4gIH1cbn1cbmV4cG9ydCB0eXBlIEdyYXBoUUxFeHRlbnNpb24gPSAoXG4gIGdyYXBoUUw6IHR5cGVvZiBHcmFwaFFMLFxuICBjb250ZXh0OiB7XG4gICAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbiAgfSAmIEdyYXBoUUxJbmZvLFxuKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG5leHBvcnQgdHlwZSBJbml0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2l0aCB0aGUgbG9jYWwgQVBJLCB5b3UgbWlnaHQgbmVlZCB0byBwYXNzIGEgY29uZmlnIGZpbGUgZGlyZWN0bHksIGZvciBleGFtcGxlLCBzZXJ2ZXJsZXNzIG9uIFZlcmNlbFxuICAgKiBUaGUgcGFzc2VkIGNvbmZpZyBzaG91bGQgbWF0Y2ggdGhlIGNvbmZpZyBmaWxlLCBhbmQgaWYgaXQgZG9lc24ndCwgdGhlcmUgY291bGQgYmUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBhZG1pbiBVSVxuICAgKiBhbmQgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgY29uZmlnOiBQcm9taXNlPFNhbml0aXplZENvbmZpZz4gfCBTYW5pdGl6ZWRDb25maWdcbiAgLyoqXG4gICAqIERpc2FibGUgY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugb24gaW5pdFxuICAgKi9cbiAgZGlzYWJsZURCQ29ubmVjdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogRGlzYWJsZSBydW5uaW5nIG9mIHRoZSBgb25Jbml0YCBmdW5jdGlvblxuICAgKi9cbiAgZGlzYWJsZU9uSW5pdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgUGF5bG9hZCdzIGVtYWlsIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG5cbiAgLyoqXG4gICAqIEEgcHJldmlvdXNseSBpbnN0YW50aWF0ZWQgbG9nZ2VyIGluc3RhbmNlLiBNdXN0IGNvbmZvcm0gdG8gdGhlIFBheWxvYWRMb2dnZXIgaW50ZXJmYWNlIHdoaWNoIHVzZXMgUGlub1xuICAgKiBUaGlzIGFsbG93cyB5b3UgdG8gYnJpbmcgeW91ciBvd24gbG9nZ2VyIGluc3RhbmNlIGFuZCBsZXQgcGF5bG9hZCB1c2UgaXRcbiAgICovXG4gIGxvZ2dlcj86IFBheWxvYWRMb2dnZXJcblxuICBsb2dnZXJEZXN0aW5hdGlvbj86IERlc3RpbmF0aW9uU3RyZWFtXG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgb3B0aW9ucyBmb3IgdGhlIGJ1aWx0LWluIFBpbm8gbG9nZ2VyIHRoYXQgUGF5bG9hZCB1c2VzIGZvciBpbnRlcm5hbCBsb2dnaW5nLlxuICAgKlxuICAgKiBTZWUgUGlubyBEb2NzIGZvciBvcHRpb25zOiBodHRwczovL2dldHBpbm8uaW8vIy9kb2NzL2FwaT9pZD1vcHRpb25zXG4gICAqL1xuICBsb2dnZXJPcHRpb25zPzogTG9nZ2VyT3B0aW9uc1xuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0J3Mgb25seSBhcmd1bWVudC5cbiAgICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxufVxuXG4vKipcbiAqIFRoaXMgcmVzdWx0IGlzIGNhbGN1bGF0ZWQgb24gdGhlIHNlcnZlclxuICogYW5kIHRoZW4gc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogSWYgdGhlIHJlc3VsdCBpcyBgdHJ1ZWAsIHRoZSB1c2VyIGhhcyBhY2Nlc3MuXG4gKiBJZiB0aGUgcmVzdWx0IGlzIGFuIG9iamVjdCwgaXQgaXMgaW50ZXJwcmV0ZWQgYXMgYSBNb25nb0RCIHF1ZXJ5LlxuICpcbiAqIEBleGFtcGxlIGB7IGNyZWF0ZWRCeTogeyBlcXVhbHM6IGlkIH0gfWBcbiAqXG4gKiBAZXhhbXBsZSBgeyB0ZW5hbnQ6IHsgaW46IHRlbmFudElkcyB9IH1gXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzUmVzdWx0ID0gV2hlcmUgfCBib29sZWFuXG5cbmV4cG9ydCB0eXBlIEFjY2Vzc0FyZ3M8VCA9IGFueSwgVSA9IGFueT4gPSB7XG4gIC8qKlxuICAgKiBUaGUgcmVsZXZhbnQgcmVzb3VyY2UgdGhhdCBpcyBiZWluZyBhY2Nlc3NlZC5cbiAgICpcbiAgICogYGRhdGFgIGlzIG51bGwgd2hlbiBhIGxpc3QgaXMgcmVxdWVzdGVkXG4gICAqL1xuICBkYXRhPzogVFxuICAvKiogSUQgb2YgdGhlIHJlc291cmNlIGJlaW5nIGFjY2Vzc2VkICovXG4gIGlkPzogbnVtYmVyIHwgc3RyaW5nXG4gIC8qKiBJZiB0cnVlLCB0aGUgcmVxdWVzdCBpcyBmb3IgYSBzdGF0aWMgZmlsZSAqL1xuICBpc1JlYWRpbmdTdGF0aWNGaWxlPzogYm9vbGVhblxuICAvKiogVGhlIG9yaWdpbmFsIHJlcXVlc3QgdGhhdCByZXF1aXJlcyBhbiBhY2Nlc3MgY2hlY2sgKi9cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdDxVPlxufVxuXG4vKipcbiAqIEFjY2VzcyBmdW5jdGlvbiBydW5zIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCBpcyBzZW50IHRvIHRoZSBjbGllbnQgYWxsb3dpbmcgdGhlIGRhc2hib2FyZCB0byBzaG93IGFjY2Vzc2libGUgZGF0YSBhbmQgYWN0aW9ucy5cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBBY2Nlc3M8VCA9IGFueSwgVSA9IGFueT4gPSAoXG4gIGFyZ3M6IEFjY2Vzc0FyZ3M8VCwgVT4sXG4pID0+IEFjY2Vzc1Jlc3VsdCB8IFByb21pc2U8QWNjZXNzUmVzdWx0PlxuXG4vKiogV2ViIFJlcXVlc3QvUmVzcG9uc2UgbW9kZWwsIGJ1dCB0aGUgdGhlIHJlcSBoYXMgbW9yZSBwYXlsb2FkIHNwZWNpZmljIHByb3BlcnRpZXMgYWRkZWQgdG8gaXQuICovXG5leHBvcnQgdHlwZSBQYXlsb2FkSGFuZGxlciA9IChyZXE6IFBheWxvYWRSZXF1ZXN0KSA9PiBQcm9taXNlPFJlc3BvbnNlPiB8IFJlc3BvbnNlXG5cbi8qKlxuICogRG9jczogaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3Jlc3QtYXBpL292ZXJ2aWV3I2N1c3RvbS1lbmRwb2ludHNcbiAqL1xuZXhwb3J0IHR5cGUgRW5kcG9pbnQ8VSA9IFVzZXI+ID0ge1xuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqXG4gICAqIE1pZGRsZXdhcmUgdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBwYXRoL21ldGhvZCBtYXRjaGVzXG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCBXZWIgUmVxdWVzdC9SZXNwb25zZSBNb2RlbFxuICAgKi9cbiAgaGFuZGxlcjogUGF5bG9hZEhhbmRsZXJcbiAgLyoqIEhUVFAgbWV0aG9kIChvciBcImFsbFwiKSAqL1xuICBtZXRob2Q6ICdjb25uZWN0JyB8ICdkZWxldGUnIHwgJ2dldCcgfCAnaGVhZCcgfCAnb3B0aW9ucycgfCAncGF0Y2gnIHwgJ3Bvc3QnIHwgJ3B1dCdcbiAgLyoqXG4gICAqIFBhdHRlcm4gdGhhdCBzaG91bGQgbWF0Y2ggdGhlIHBhdGggb2YgdGhlIGluY29taW5nIHJlcXVlc3RcbiAgICpcbiAgICogQ29tcGF0aWJsZSB3aXRoIHRoZSBFeHByZXNzIHJvdXRlclxuICAgKi9cbiAgcGF0aDogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBpbiAzLjBcbiAgICpcbiAgICogUGxlYXNlIGFkZCBcInJvb3RcIiByb3V0ZXMgdW5kZXIgdGhlIC9hcGkgZm9sZGVyIGluIHRoZSBQYXlsb2FkIFByb2plY3QuXG4gICAqIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2ZpbGUtY29udmVudGlvbnMvcm91dGVcbiAgICovXG4gIHJvb3Q/OiBuZXZlclxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb25maWcgPSB7XG4gIENvbXBvbmVudDogQWRtaW5WaWV3Q29tcG9uZW50XG4gIC8qKiBXaGV0aGVyIHRoZSBwYXRoIHNob3VsZCBiZSBtYXRjaGVkIGV4YWN0bHkgb3IgYXMgYSBwcmVmaXggKi9cbiAgZXhhY3Q/OiBib29sZWFuXG4gIHBhdGg6IHN0cmluZ1xuICBzZW5zaXRpdmU/OiBib29sZWFuXG4gIHN0cmljdD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgQWRtaW5WaWV3UHJvcHMgPSB7XG4gIGNhbkFjY2Vzc0FkbWluPzogYm9vbGVhblxuICB1c2VyOiBVc2VyIHwgbnVsbCB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXdDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPEFkbWluVmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBBZG1pblZpZXcgPSBBZG1pblZpZXdDb21wb25lbnQgfCBBZG1pblZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdQcm9wcyA9IHtcbiAgY29sbGVjdGlvblNsdWc/OiBzdHJpbmdcbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBFZGl0Vmlld0NvbXBvbmVudCA9IFJlYWN0LkNvbXBvbmVudFR5cGU8RWRpdFZpZXdQcm9wcz5cblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb25maWcgPVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogQWRkIGEgbmV3IEVkaXQgdmlldyB0byB0aGUgYWRtaW4gcGFuZWxcbiAgICAgICAqIGkuZS4geW91IGNhbiByZW5kZXIgYSBjdXN0b20gdmlldyB0aGF0IGhhcyBubyB0YWIsIGlmIGRlc2lyZWRcbiAgICAgICAqIE9yIG92ZXJyaWRlIGEgc3BlY2lmaWMgcHJvcGVydGllcyBvZiBhbiBleGlzdGluZyBvbmVcbiAgICAgICAqIGkuZS4geW91IGNhbiBjdXN0b21pemUgdGhlIGBEZWZhdWx0YCB2aWV3IHRhYiBsYWJlbCwgaWYgZGVzaXJlZFxuICAgICAgICovXG4gICAgICBUYWI/OiBEb2N1bWVudFRhYlxuICAgICAgcGF0aD86IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBDb21wb25lbnQ6IEFkbWluVmlld0NvbXBvbmVudCAvLyBUT0RPOiBUaGUgYEVkaXRgIHZpZXcgQ29tcG9uZW50IGlzIG9mIHR5cGUgYFJlYWN0LkZDPEVkaXRWaWV3UHJvcHM+YFxuICAgICAgcGF0aDogc3RyaW5nXG4gICAgfVxuICB8IHtcbiAgICAgIGFjdGlvbnM/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgIH1cblxuLyoqXG4gKiBPdmVycmlkZSBleGlzdGluZyB2aWV3c1xuICogaS5lLiBEYXNoYm9hcmQsIEFjY291bnQsIEFQSSwgTGl2ZVByZXZpZXcsIGV0Yy5cbiAqIFBhdGggaXMgbm90IGF2YWlsYWJsZSBoZXJlXG4gKiBBbGwgVGFiIHByb3BlcnRpZXMgYmVjb21lIG9wdGlvbmFsXG4gKiBpLmUuIHlvdSBjYW4gY2hhbmdlIGp1c3QgdGhlIGxhYmVsLCBpZiBkZXNpcmVkXG4gKi9cbmV4cG9ydCB0eXBlIEVkaXRWaWV3ID0gQWRtaW5WaWV3Q29tcG9uZW50IHwgRWRpdFZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0ge1xuICAvKipcbiAgICogdmFsdWUgb2Ygc3VwcG9ydGVkIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBcImVuXCJcbiAgICovXG4gIGNvZGU6IHN0cmluZ1xuICAvKipcbiAgICogQ29kZSBvZiBhbm90aGVyIGxvY2FsZSB0byB1c2Ugd2hlbiByZWFkaW5nIGRvY3VtZW50cyB3aXRoIGZhbGxiYWNrLCBpZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHRMb2NhbGUgaXMgdXNlZFxuICAgKi9cbiAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIGxhYmVsIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJFbmdsaXNoXCJcbiAgICovXG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIC8qKlxuICAgKiBpZiB0cnVlLCBkZWZhdWx0cyB0ZXh0QWxpZ21uZW50IG9uIHRleHQgZmllbGRzIHRvIFJUTFxuICAgKi9cbiAgcnRsPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCYXNlTG9jYWxpemF0aW9uQ29uZmlnID0ge1xuICAvKipcbiAgICogTG9jYWxlIGZvciB1c2VycyB0aGF0IGhhdmUgbm90IGV4cHJlc3NlZCB0aGVpciBwcmVmZXJlbmNlIGZvciBhIHNwZWNpZmljIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBgXCJlblwiYFxuICAgKi9cbiAgZGVmYXVsdExvY2FsZTogc3RyaW5nXG4gIC8qKiBTZXQgdG8gYHRydWVgIHRvIGxldCBtaXNzaW5nIHZhbHVlcyBpbiBsb2NhbGlzZWQgZmllbGRzIGZhbGwgYmFjayB0byB0aGUgdmFsdWVzIGluIGBkZWZhdWx0TG9jYWxlYCAqL1xuICBmYWxsYmFjaz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlczogc3RyaW5nW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyB3aXRoIGxhYmVsc1xuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgKiAgdmFsdWU6ICdlbicsXG4gICAgICogIHJ0bDogZmFsc2VcbiAgICAgKiB9XG4gICAgICovXG4gICAgbG9jYWxlczogTG9jYWxlW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVDb2Rlczogc3RyaW5nW11cbiAgfVxuPlxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vbG9jYWxpemF0aW9uI2xvY2FsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyB8IExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVsc1xuPlxuXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNlbnRyYWwgY29uZmlndXJhdGlvblxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0ge1xuICAvKiogQ29uZmlndXJlIGFkbWluIGRhc2hib2FyZCAqL1xuICBhZG1pbj86IHtcbiAgICAvKiogQXV0b21hdGljYWxseSBsb2cgaW4gYXMgYSB1c2VyIHdoZW4gdmlzaXRpbmcgdGhlIGFkbWluIGRhc2hib2FyZC4gKi9cbiAgICBhdXRvTG9naW4/OlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgdG8gbG9naW4gYXNcbiAgICAgICAgICAgKlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmdcbiAgICAgICAgICAvKiogVGhlIHBhc3N3b3JkIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzICovXG4gICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZ1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIElmIHNldCB0byB0cnVlLCB0aGUgbG9naW4gY3JlZGVudGlhbHMgd2lsbCBiZSBwcmVmaWxsZWQgYnV0IHRoZSB1c2VyIHdpbGwgc3RpbGwgbmVlZCB0byBjbGljayB0aGUgbG9naW4gYnV0dG9uLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwcmVmaWxsT25seT86IGJvb2xlYW5cbiAgICAgICAgfVxuICAgICAgfCBmYWxzZVxuXG4gICAgLyoqIFNldCBhY2NvdW50IHByb2ZpbGUgcGljdHVyZS4gT3B0aW9uczogZ3JhdmF0YXIsIGRlZmF1bHQgb3IgYSBjdXN0b20gUmVhY3QgY29tcG9uZW50LiAqL1xuICAgIGF2YXRhcj86ICdkZWZhdWx0JyB8ICdncmF2YXRhcicgfCBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IGFuIGFic29sdXRlIHBhdGggZm9yIHdoZXJlIHRvIHN0b3JlIHRoZSBidWlsdCBBZG1pbiBwYW5lbCBidW5kbGUgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCIvYnVpbGRcIlxuICAgICAqICovXG4gICAgYnVpbGRQYXRoPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogQWRkIGV4dHJhIGFuZC9vciByZXBsYWNlIGJ1aWx0LWluIGNvbXBvbmVudHMgd2l0aCBjdXN0b20gY29tcG9uZW50c1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWRtaW4vY29tcG9uZW50c1xuICAgICAqL1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFJlcGxhY2UgdGhlIG5hdmlnYXRpb24gd2l0aCBhIGN1c3RvbSBjb21wb25lbnRcbiAgICAgICAqL1xuICAgICAgTmF2PzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyB0byB0aGUgdG9wIHJpZ2h0IG9mIHRoZSBBZG1pbiBQYW5lbFxuICAgICAgICovXG4gICAgICBhY3Rpb25zPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBjb2xsZWN0aW9uIG92ZXJ2aWV3XG4gICAgICAgKi9cbiAgICAgIGFmdGVyRGFzaGJvYXJkPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBhZnRlckxvZ2luPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGFmdGVyIHRoZSBuYXZpZ2F0aW9uIGxpbmtzXG4gICAgICAgKi9cbiAgICAgIGFmdGVyTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBjb2xsZWN0aW9uIG92ZXJ2aWV3XG4gICAgICAgKi9cbiAgICAgIGJlZm9yZURhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIGVtYWlsL3Bhc3N3b3JkIGZpZWxkXG4gICAgICAgKi9cbiAgICAgIGJlZm9yZUxvZ2luPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBiZWZvcmVOYXZMaW5rcz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKiogUmVwbGFjZSBncmFwaGljYWwgY29tcG9uZW50cyAqL1xuICAgICAgZ3JhcGhpY3M/OiB7XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBpY29uIGluIHRoZSBuYXZpZ2F0aW9uICovXG4gICAgICAgIEljb24/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ28gb24gdGhlIGxvZ2luIHBhZ2UgKi9cbiAgICAgICAgTG9nbz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqIFJlcGxhY2UgbG9nb3V0IHJlbGF0ZWQgY29tcG9uZW50cyAqL1xuICAgICAgbG9nb3V0Pzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgbG9nb3V0IGJ1dHRvbiAgKi9cbiAgICAgICAgQnV0dG9uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICB9XG4gICAgICAvKipcbiAgICAgICAqIFdyYXAgdGhlIGFkbWluIGRhc2hib2FyZCBpbiBjdXN0b20gY29udGV4dCBwcm92aWRlcnNcbiAgICAgICAqL1xuICAgICAgcHJvdmlkZXJzPzogUmVhY3QuQ29tcG9uZW50VHlwZTx7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIG9yIG1vZGlmeSB0b3AtbGV2ZWwgYWRtaW4gcm91dGVzLCBvciBhZGQgbmV3IG9uZXM6XG4gICAgICAgKiArIGBBY2NvdW50YCAtIGAvYWRtaW4vYWNjb3VudGBcbiAgICAgICAqICsgYERhc2hib2FyZGAgLSBgL2FkbWluYFxuICAgICAgICogKyBgOnBhdGhgIC0gYC9hZG1pbi86cGF0aGBcbiAgICAgICAqL1xuICAgICAgdmlld3M/OiB7XG4gICAgICAgIC8qKiBBZGQgY3VzdG9tIGFkbWluIHZpZXdzICovXG4gICAgICAgIFtrZXk6IHN0cmluZ106IEFkbWluVmlld1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWNjb3VudCBzY3JlZW4gKi9cbiAgICAgICAgQWNjb3VudD86IEFkbWluVmlld1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWRtaW4gaG9tZXBhZ2UgKi9cbiAgICAgICAgRGFzaGJvYXJkPzogQWRtaW5WaWV3XG4gICAgICB9XG4gICAgfVxuICAgIC8qKiBHbG9iYWwgZGF0ZSBmb3JtYXQgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFsbCBkYXRlcyBpbiB0aGUgQWRtaW4gcGFuZWwuIEFueSB2YWxpZCBkYXRlLWZucyBmb3JtYXQgcGF0dGVybiBjYW4gYmUgdXNlZC4gKi9cbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nXG4gICAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgZW50aXJlIEFkbWluIHBhbmVsIHdpbGwgYmUgZGlzYWJsZWQuICovXG4gICAgZGlzYWJsZT86IGJvb2xlYW5cbiAgICAvKiogVGhlIHJvdXRlIHRoZSB1c2VyIHdpbGwgYmUgcmVkaXJlY3RlZCB0byBhZnRlciBiZWluZyBpbmFjdGl2ZSBmb3IgdG9vIGxvbmcuICovXG4gICAgaW5hY3Rpdml0eVJvdXRlPzogc3RyaW5nXG4gICAgbGl2ZVByZXZpZXc/OiBMaXZlUHJldmlld0NvbmZpZyAmIHtcbiAgICAgIGNvbGxlY3Rpb25zPzogc3RyaW5nW11cbiAgICAgIGdsb2JhbHM/OiBzdHJpbmdbXVxuICAgIH1cbiAgICAvKiogVGhlIHJvdXRlIGZvciB0aGUgbG9nb3V0IHBhZ2UuICovXG4gICAgbG9nb3V0Um91dGU/OiBzdHJpbmdcbiAgICAvKiogQmFzZSBtZXRhIGRhdGEgdG8gdXNlIGZvciB0aGUgQWRtaW4gcGFuZWwuIEluY2x1ZGVkIHByb3BlcnRpZXMgYXJlIHRpdGxlU3VmZml4LCBvZ0ltYWdlLCBhbmQgZmF2aWNvbi4gKi9cbiAgICBtZXRhPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBQdWJsaWMgcGF0aCB0byBhbiBpY29uXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGluIHRoZSBicm93c2VyIG5leHQgdG8gdGhlIHRpdGxlIG9mIHRoZSBwYWdlXG4gICAgICAgKi9cbiAgICAgIGZhdmljb24/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaW1hZ2VcbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGltYWdlIG1heSBiZSBkaXNwbGF5ZWQgYXMgcHJldmlldyB3aGVuIHRoZSBsaW5rIGlzIHNoYXJlZCBvbiBzb2NpYWwgbWVkaWFcbiAgICAgICAqL1xuICAgICAgb2dJbWFnZT86IHN0cmluZ1xuICAgICAgLyoqXG4gICAgICAgKiBTdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSA8dGl0bGU+IG9mIGFkbWluIHBhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSBgXCIgLSBNeSBCcmFuZFwiYFxuICAgICAgICovXG4gICAgICB0aXRsZVN1ZmZpeD86IHN0cmluZ1xuICAgIH1cbiAgICAvKiogVGhlIHNsdWcgb2YgYSBDb2xsZWN0aW9uIHRoYXQgeW91IHdhbnQgYmUgdXNlZCB0byBsb2cgaW4gdG8gdGhlIEFkbWluIGRhc2hib2FyZC4gKi9cbiAgICB1c2VyPzogc3RyaW5nXG4gIH1cbiAgLyoqIEN1c3RvbSBQYXlsb2FkIGJpbiBzY3JpcHRzIGNhbiBiZSBpbmplY3RlZCB2aWEgdGhlIGNvbmZpZy4gKi9cbiAgYmluPzogQmluU2NyaXB0Q29uZmlnW11cbiAgLyoqXG4gICAqIE1hbmFnZSB0aGUgZGF0YW1vZGVsIG9mIHlvdXIgYXBwbGljYXRpb25cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9jb2xsZWN0aW9ucyNjb2xsZWN0aW9uLWNvbmZpZ3NcbiAgICovXG4gIGNvbGxlY3Rpb25zPzogQ29sbGVjdGlvbkNvbmZpZ1tdXG4gIC8qKlxuICAgKiBSZXBsYWNlIHRoZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIG9uZXNcbiAgICovXG4gIGNvbXBvbmVudHM/OiB7IFtrZXk6IHN0cmluZ106ICgoKSA9PiBKU1guRWxlbWVudCkgfCBKU1guRWxlbWVudCB9XG4gIC8qKlxuICAgKiBQcmVmaXggYSBzdHJpbmcgdG8gYWxsIGNvb2tpZXMgdGhhdCBQYXlsb2FkIHNldHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFwicGF5bG9hZFwiXG4gICAqL1xuICBjb29raWVQcmVmaXg/OiBzdHJpbmdcbiAgLyoqIEVpdGhlciBhIHdoaXRlbGlzdCBhcnJheSBvZiBVUkxTIHRvIGFsbG93IENPUlMgcmVxdWVzdHMgZnJvbSwgb3IgYSB3aWxkY2FyZCBzdHJpbmcgKCcqJykgdG8gYWNjZXB0IGluY29taW5nIHJlcXVlc3RzIGZyb20gYW55IGRvbWFpbi4gKi9cbiAgY29ycz86ICcqJyB8IHN0cmluZ1tdXG4gIC8qKiBBIHdoaXRlbGlzdCBhcnJheSBvZiBVUkxzIHRvIGFsbG93IFBheWxvYWQgY29va2llcyB0byBiZSBhY2NlcHRlZCBmcm9tIGFzIGEgZm9ybSBvZiBDU1JGIHByb3RlY3Rpb24uICovXG4gIGNzcmY/OiBzdHJpbmdbXVxuXG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cblxuICAvKiogUGFzcyBpbiBhIGRhdGFiYXNlIGFkYXB0ZXIgZm9yIHVzZSBvbiB0aGlzIHByb2plY3QuICovXG4gIGRiOiBEYXRhYmFzZUFkYXB0ZXJSZXN1bHRcbiAgLyoqIEVuYWJsZSB0byBleHBvc2UgbW9yZSBkZXRhaWxlZCBlcnJvciBpbmZvcm1hdGlvbi4gKi9cbiAgZGVidWc/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiBhIHVzZXIgZG9lcyBub3Qgc3BlY2lmeSBgZGVwdGhgIHdoaWxlIHJlcXVlc3RpbmcgYSByZXNvdXJjZSwgdGhpcyBkZXB0aCB3aWxsIGJlIHVzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9jb25jZXB0cyNkZXB0aFxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICBkZWZhdWx0RGVwdGg/OiBudW1iZXJcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgZGVwdGggdG8gYmUgcGVybWl0dGVkIGFwcGxpY2F0aW9uLXdpZGUuIFRoaXMgc2V0dGluZyBoZWxwcyBwcmV2ZW50IGFnYWluc3QgbWFsaWNpb3VzIHF1ZXJpZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDQwMDAwXG4gICAqL1xuICBkZWZhdWx0TWF4VGV4dExlbmd0aD86IG51bWJlclxuICAvKiogRGVmYXVsdCByaWNodGV4dCBlZGl0b3IgdG8gdXNlIGZvciByaWNoVGV4dCBmaWVsZHMgKi9cbiAgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXI8YW55LCBhbnksIGFueT5cbiAgLyoqXG4gICAqIEVtYWlsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4gVGhpcyB2YWx1ZSBpcyBvdmVycmlkZGVuIGJ5IGBlbWFpbGAgaW4gUGF5bG9hZC5pbml0IGlmIHBhc3NlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG4gIC8qKiBDdXN0b20gUkVTVCBlbmRwb2ludHMgKi9cbiAgZW5kcG9pbnRzPzogRW5kcG9pbnRbXVxuICAvKipcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9nbG9iYWxzI2dsb2JhbC1jb25maWdzXG4gICAqL1xuICBnbG9iYWxzPzogR2xvYmFsQ29uZmlnW11cbiAgLyoqXG4gICAqIE1hbmFnZSB0aGUgR3JhcGhRTCBBUElcbiAgICpcbiAgICogWW91IGNhbiBhZGQgeW91ciBvd24gR3JhcGhRTCBxdWVyaWVzIGFuZCBtdXRhdGlvbnMgdG8gUGF5bG9hZCwgbWFraW5nIHVzZSBvZiBhbGwgdGhlIHR5cGVzIHRoYXQgUGF5bG9hZCBoYXMgZGVmaW5lZCBmb3IgeW91LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9ncmFwaHFsL292ZXJ2aWV3XG4gICAqL1xuICBncmFwaFFMPzoge1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgZGlzYWJsZVBsYXlncm91bmRJblByb2R1Y3Rpb24/OiBib29sZWFuXG4gICAgbWF4Q29tcGxleGl0eT86IG51bWJlclxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIG11dGF0aW9uc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9leHRlbmRpbmdcbiAgICAgKi9cbiAgICBtdXRhdGlvbnM/OiBHcmFwaFFMRXh0ZW5zaW9uXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIGtleXMgdG8gY3VzdG9tIEdyYXBoUUwgcXVlcmllc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9leHRlbmRpbmdcbiAgICAgKi9cbiAgICBxdWVyaWVzPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIHNjaGVtYU91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogVGFwIGludG8gUGF5bG9hZC13aWRlIGhvb2tzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9ob29rcy9vdmVydmlld1xuICAgKi9cbiAgaG9va3M/OiB7XG4gICAgYWZ0ZXJFcnJvcj86IEFmdGVyRXJyb3JIb29rXG4gIH1cbiAgLyoqIGkxOG4gY29uZmlnIHNldHRpbmdzICovXG4gIGkxOG4/OiBJMThuT3B0aW9uc1xuICAvKiogQXV0b21hdGljYWxseSBpbmRleCBhbGwgc29ydGFibGUgdG9wLWxldmVsIGZpZWxkcyBpbiB0aGUgZGF0YWJhc2UgdG8gaW1wcm92ZSBzb3J0IHBlcmZvcm1hbmNlIGFuZCBhZGQgZGF0YWJhc2UgY29tcGF0aWJpbGl0eSBmb3IgQXp1cmUgQ29zbW9zIGFuZCBzaW1pbGFyLiAqL1xuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICAvKipcbiAgICogVHJhbnNsYXRlIHlvdXIgY29udGVudCB0byBkaWZmZXJlbnQgbGFuZ3VhZ2VzL2xvY2FsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIC8vIGRpc2FibGUgbG9jYWxpemF0aW9uXG4gICAqL1xuICBsb2NhbGl6YXRpb24/OiBMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZVxuICAvKipcbiAgICogVGhlIG1heGltdW0gYWxsb3dlZCBkZXB0aCB0byBiZSBwZXJtaXR0ZWQgYXBwbGljYXRpb24td2lkZS4gVGhpcyBzZXR0aW5nIGhlbHBzIHByZXZlbnQgYWdhaW5zdCBtYWxpY2lvdXMgcXVlcmllcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkL2NvbmNlcHRzI2RlcHRoXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICBtYXhEZXB0aD86IG51bWJlclxuICAvKiogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0cyBvbmx5IGFyZ3VtZW50LiAqL1xuICBvbkluaXQ/OiAocGF5bG9hZDogUGF5bG9hZCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIFBheWxvYWQgcGx1Z2lucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvcGx1Z2lucy9vdmVydmlld1xuICAgKi9cbiAgcGx1Z2lucz86IFBsdWdpbltdXG4gIC8qKiBDb250cm9sIHRoZSByb3V0aW5nIHN0cnVjdHVyZSB0aGF0IFBheWxvYWQgYmluZHMgaXRzZWxmIHRvLiAqL1xuICByb3V0ZXM/OiB7XG4gICAgLyoqIEBkZWZhdWx0IFwiL2FkbWluXCIgKi9cbiAgICBhZG1pbj86IHN0cmluZ1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hcGlcIiAgKi9cbiAgICBhcGk/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvZ3JhcGhxbFwiICAqL1xuICAgIGdyYXBoUUw/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvZ3JhcGhxbC1wbGF5Z3JvdW5kXCIgKi9cbiAgICBncmFwaFFMUGxheWdyb3VuZD86IHN0cmluZ1xuICB9XG4gIC8qKiBTZWN1cmUgc3RyaW5nIHRoYXQgUGF5bG9hZCB3aWxsIHVzZSBmb3IgYW55IGVuY3J5cHRpb24gd29ya2Zsb3dzICovXG4gIHNlY3JldDogc3RyaW5nXG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGFic29sdXRlIFVSTCBvZiB5b3VyIGFwcCBpbmNsdWRpbmcgdGhlIHByb3RvY29sLCBmb3IgZXhhbXBsZSBgaHR0cHM6Ly9leGFtcGxlLm9yZ2AuXG4gICAqIE5vIHBhdGhzIGFsbG93ZWQsIG9ubHkgcHJvdG9jb2wsIGRvbWFpbiBhbmQgKG9wdGlvbmFsbHkpIHBvcnQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vb3ZlcnZpZXcjb3B0aW9uc1xuICAgKi9cbiAgc2VydmVyVVJMPzogc3RyaW5nXG4gIC8qKiBTZW5kIGFub255bW91cyB0ZWxlbWV0cnkgZGF0YSBhYm91dCBnZW5lcmFsIHVzYWdlLiAqL1xuICB0ZWxlbWV0cnk/OiBib29sZWFuXG4gIC8qKiBDb250cm9sIGhvdyB0eXBlc2NyaXB0IGludGVyZmFjZXMgYXJlIGdlbmVyYXRlZCBmcm9tIHlvdXIgY29sbGVjdGlvbnMuICovXG4gIHR5cGVzY3JpcHQ/OiB7XG4gICAgLyoqIERpc2FibGUgZGVjbGFyZSBibG9jayBpbiBnZW5lcmF0ZWQgdHlwZXMgZmlsZSAqL1xuICAgIGRlY2xhcmU/OiBmYWxzZVxuICAgIC8qKiBGaWxlbmFtZSB0byB3cml0ZSB0aGUgZ2VuZXJhdGVkIHR5cGVzIHRvICovXG4gICAgb3V0cHV0RmlsZT86IHN0cmluZ1xuICB9XG4gIC8qKlxuICAgKiBDdXN0b21pemUgdGhlIGhhbmRsaW5nIG9mIGluY29taW5nIGZpbGUgdXBsb2FkcyBmb3IgY29sbGVjdGlvbnMgdGhhdCBoYXZlIHVwbG9hZHMgZW5hYmxlZC5cbiAgICovXG4gIHVwbG9hZD86IEV4cHJlc3NGaWxlVXBsb2FkT3B0aW9uc1xufVxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRDb25maWcgPSBPbWl0PFxuICBEZWVwUmVxdWlyZWQ8Q29uZmlnPixcbiAgJ2NvbGxlY3Rpb25zJyB8ICdlbmRwb2ludCcgfCAnZ2xvYmFscycgfCAnbG9jYWxpemF0aW9uJ1xuPiAmIHtcbiAgY29sbGVjdGlvbnM6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdbXVxuICBlbmRwb2ludHM6IEVuZHBvaW50W11cbiAgZ2xvYmFsczogU2FuaXRpemVkR2xvYmFsQ29uZmlnW11cbiAgbG9jYWxpemF0aW9uOiBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZVxuICBwYXRoczoge1xuICAgIGNvbmZpZzogc3RyaW5nXG4gICAgY29uZmlnRGlyOiBzdHJpbmdcbiAgICByYXdDb25maWc6IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIENsaWVudENvbmZpZyA9IE9taXQ8U2FuaXRpemVkQ29uZmlnLCAnZGInIHwgJ2VuZHBvaW50cyc+ICYge1xuICBjb2xsZWN0aW9uczogKE9taXQ8U2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZywgJ2FjY2VzcycgfCAnZW5kcG9pbnRzJyB8ICdmaWVsZHMnIHwgJ2hvb2tzJz4gJiB7XG4gICAgZmllbGRzOiBDbGllbnRDb25maWdGaWVsZFtdXG4gIH0pW11cbiAgZ2xvYmFsczogKE9taXQ8U2FuaXRpemVkR2xvYmFsQ29uZmlnLCAnYWNjZXNzJyB8ICdlbmRwb2ludHMnIHwgJ2ZpZWxkcycgfCAnaG9va3MnPiAmIHtcbiAgICBmaWVsZHM6IENsaWVudENvbmZpZ0ZpZWxkW11cbiAgfSlbXVxufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlEZXNjcmlwdGlvbiA9XG4gIHwgKCgpID0+IHN0cmluZylcbiAgfCBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIHwgc3RyaW5nXG4iXSwibmFtZXMiOlsiaGFzVHJhbnNwb3J0IiwiaGFzVHJhbnNwb3J0T3B0aW9ucyIsImVtYWlsQ29uZmlnIiwidHJhbnNwb3J0IiwidW5kZWZpbmVkIiwidHJhbnNwb3J0T3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUFpR2dCQSxZQUFZO2VBQVpBOztJQVFBQyxtQkFBbUI7ZUFBbkJBOzs7QUFSVCxTQUFTRCxhQUFhRSxXQUF5QjtJQUNwRCxPQUFPLEFBQUNBLFlBQStCQyxTQUFTLEtBQUtDO0FBQ3ZEO0FBTU8sU0FBU0gsb0JBQ2RDLFdBQXlCO0lBRXpCLE9BQU8sQUFBQ0EsWUFBc0NHLGdCQUFnQixLQUFLRDtBQUNyRSJ9
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJMThuT3B0aW9ucyB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgc2hhcnAgfSBmcm9tICdzaGFycCdcbmltcG9ydCB0eXBlIHsgRGVlcFJlcXVpcmVkIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4nXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50VGFiLCBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9hZG1pbi90eXBlcydcbmltcG9ydCB0eXBlIHsgQWRtaW5WaWV3LCBTZXJ2ZXJTaWRlRWRpdFZpZXdQcm9wcyB9IGZyb20gJy4uL2FkbWluL3ZpZXdzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi4vYXV0aC90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQWZ0ZXJFcnJvckhvb2ssXG4gIENvbGxlY3Rpb24sXG4gIENvbGxlY3Rpb25Db25maWcsXG4gIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG59IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRGF0YWJhc2VBZGFwdGVyUmVzdWx0IH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IENsaWVudENvbmZpZ0ZpZWxkIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2xvYmFsQ29uZmlnLCBHbG9iYWxzLCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QsIFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRMb2dnZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvbG9nZ2VyJ1xuXG5leHBvcnQgdHlwZSBCaW5TY3JpcHRDb25maWcgPSB7XG4gIGtleTogc3RyaW5nXG4gIHNjcmlwdFBhdGg6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBCaW5TY3JpcHQgPSAoY29uZmlnOiBTYW5pdGl6ZWRDb25maWcpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG5cbnR5cGUgUHJldHRpZnk8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdXG59ICYgTm9uTnVsbGFibGU8dW5rbm93bj5cblxudHlwZSBFbWFpbCA9IHtcbiAgZnJvbUFkZHJlc3M6IHN0cmluZ1xuICBmcm9tTmFtZTogc3RyaW5nXG4gIGxvZ01vY2tDcmVkZW50aWFscz86IGJvb2xlYW5cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBQbHVnaW4gPSAoY29uZmlnOiBDb25maWcpID0+IENvbmZpZyB8IFByb21pc2U8Q29uZmlnPlxuXG5leHBvcnQgdHlwZSBMaXZlUHJldmlld0NvbmZpZyA9IHtcbiAgLyoqXG4gICBEZXZpY2UgYnJlYWtwb2ludHMgdG8gdXNlIGZvciB0aGUgYGlmcmFtZWAgb2YgdGhlIExpdmUgUHJldmlldyB3aW5kb3cuXG4gICBPcHRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIExpdmUgUHJldmlldyB0b29sYmFyLlxuICAgVGhlIGByZXNwb25zaXZlYCBicmVha3BvaW50IGlzIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gICAqL1xuICBicmVha3BvaW50cz86IHtcbiAgICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIH1bXVxuICAvKipcbiAgIFRoZSBVUkwgb2YgdGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uLiBUaGlzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aGluIGFuIGBpZnJhbWVgIGFzIGl0cyBgc3JjYC5cbiAgIFBheWxvYWQgd2lsbCBzZW5kIGEgYHdpbmRvdy5wb3N0TWVzc2FnZSgpYCB0byB0aGlzIFVSTCB3aXRoIHRoZSBkb2N1bWVudCBkYXRhIGluIHJlYWwtdGltZS5cbiAgIFRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIHRoZSBtZXNzYWdlIGFuZCB1cGRhdGluZyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICBVc2UgdGhlIGB1c2VMaXZlUHJldmlld2AgaG9vayB0byBnZXQgc3RhcnRlZCBpbiBSZWFjdCBhcHBsaWNhdGlvbnMuXG4gICAqL1xuICB1cmw/OlxuICAgIHwgKChhcmdzOiB7XG4gICAgICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICAgICAgZG9jdW1lbnRJbmZvOiBhbnkgLy8gVE9ETzogcmVtb3ZlIG9yIHBvcHVsYXRlIHRoaXNcbiAgICAgICAgbG9jYWxlOiBMb2NhbGVcbiAgICAgIH0pID0+IFByb21pc2U8c3RyaW5nPiB8IHN0cmluZylcbiAgICB8IHN0cmluZ1xufVxuXG50eXBlIEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMgPSB7XG4gIGxvY2FsZTogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMID0gKFxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBvcHRpb25zOiBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zLFxuKSA9PiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydCA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ/OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zOiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsT3B0aW9ucyA9IEVtYWlsIHwgRW1haWxUcmFuc3BvcnQgfCBFbWFpbFRyYW5zcG9ydE9wdGlvbnNcblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0KGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMpOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydCB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnQpLnRyYW5zcG9ydCAhPT0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydE9wdGlvbnMoXG4gIGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMsXG4pOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucykudHJhbnNwb3J0T3B0aW9ucyAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxJbmZvID0ge1xuICBNdXRhdGlvbjoge1xuICAgIGZpZWxkczogUmVjb3JkPHN0cmluZywgYW55PlxuICAgIG5hbWU6IHN0cmluZ1xuICB9XG4gIFF1ZXJ5OiB7XG4gICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgY29sbGVjdGlvbnM6IHtcbiAgICBbc2x1ZzogbnVtYmVyIHwgc3RyaW5nIHwgc3ltYm9sXTogQ29sbGVjdGlvblxuICB9XG4gIGdsb2JhbHM6IEdsb2JhbHNcbiAgdHlwZXM6IHtcbiAgICBhcnJheVR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxUeXBlPlxuICAgIGJsb2NrSW5wdXRUeXBlczogUmVjb3JkPHN0cmluZywgR3JhcGhRTC5HcmFwaFFMSW5wdXRPYmplY3RUeXBlPlxuICAgIGJsb2NrVHlwZXM6IFJlY29yZDxzdHJpbmcsIEdyYXBoUUwuR3JhcGhRTE9iamVjdFR5cGU+XG4gICAgZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGU/OiBHcmFwaFFMLkdyYXBoUUxFbnVtVHlwZSB8IEdyYXBoUUwuR3JhcGhRTFNjYWxhclR5cGVcbiAgICBncm91cFR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxPYmplY3RUeXBlPlxuICAgIGxvY2FsZUlucHV0VHlwZT86IEdyYXBoUUwuR3JhcGhRTEVudW1UeXBlIHwgR3JhcGhRTC5HcmFwaFFMU2NhbGFyVHlwZVxuICAgIHRhYlR5cGVzOiBSZWNvcmQ8c3RyaW5nLCBHcmFwaFFMLkdyYXBoUUxPYmplY3RUeXBlPlxuICB9XG59XG5leHBvcnQgdHlwZSBHcmFwaFFMRXh0ZW5zaW9uID0gKFxuICBncmFwaFFMOiB0eXBlb2YgR3JhcGhRTCxcbiAgY29udGV4dDoge1xuICAgIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnXG4gIH0gJiBHcmFwaFFMSW5mbyxcbikgPT4gUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuZXhwb3J0IHR5cGUgSW5pdE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBTb21ldGltZXMsIHdpdGggdGhlIGxvY2FsIEFQSSwgeW91IG1pZ2h0IG5lZWQgdG8gcGFzcyBhIGNvbmZpZyBmaWxlIGRpcmVjdGx5LCBmb3IgZXhhbXBsZSwgc2VydmVybGVzcyBvbiBWZXJjZWxcbiAgICogVGhlIHBhc3NlZCBjb25maWcgc2hvdWxkIG1hdGNoIHRoZSBjb25maWcgZmlsZSwgYW5kIGlmIGl0IGRvZXNuJ3QsIHRoZXJlIGNvdWxkIGJlIG1pc21hdGNoZXMgYmV0d2VlbiB0aGUgYWRtaW4gVUlcbiAgICogYW5kIHRoZSBiYWNrZW5kIGZ1bmN0aW9uYWxpdHlcbiAgICovXG4gIGNvbmZpZzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+IHwgU2FuaXRpemVkQ29uZmlnXG4gIC8qKlxuICAgKiBEaXNhYmxlIGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIG9uIGluaXRcbiAgICovXG4gIGRpc2FibGVEQkNvbm5lY3Q/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIERpc2FibGUgcnVubmluZyBvZiB0aGUgYG9uSW5pdGAgZnVuY3Rpb25cbiAgICovXG4gIGRpc2FibGVPbkluaXQ/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gZm9yIFBheWxvYWQncyBlbWFpbCBmdW5jdGlvbmFsaXR5XG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuXG4gIC8qKlxuICAgKiBBIHByZXZpb3VzbHkgaW5zdGFudGlhdGVkIGxvZ2dlciBpbnN0YW5jZS4gTXVzdCBjb25mb3JtIHRvIHRoZSBQYXlsb2FkTG9nZ2VyIGludGVyZmFjZSB3aGljaCB1c2VzIFBpbm9cbiAgICogVGhpcyBhbGxvd3MgeW91IHRvIGJyaW5nIHlvdXIgb3duIGxvZ2dlciBpbnN0YW5jZSBhbmQgbGV0IHBheWxvYWQgdXNlIGl0XG4gICAqL1xuICBsb2dnZXI/OiBQYXlsb2FkTG9nZ2VyXG5cbiAgbG9nZ2VyRGVzdGluYXRpb24/OiBEZXN0aW5hdGlvblN0cmVhbVxuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIHRoZSBidWlsdC1pbiBQaW5vIGxvZ2dlciB0aGF0IFBheWxvYWQgdXNlcyBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cbiAgICpcbiAgICogU2VlIFBpbm8gRG9jcyBmb3Igb3B0aW9uczogaHR0cHM6Ly9nZXRwaW5vLmlvLyMvZG9jcy9hcGk/aWQ9b3B0aW9uc1xuICAgKi9cbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnNcbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0dXAgdGhhdCByZWNlaXZlcyB0aGUgUGF5bG9hZCBpbnN0YW5jZSBhcyBpdCdzIG9ubHkgYXJndW1lbnQuXG4gICAqL1xuICBvbkluaXQ/OiAocGF5bG9hZDogUGF5bG9hZCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcbn1cblxuLyoqXG4gKiBUaGlzIHJlc3VsdCBpcyBjYWxjdWxhdGVkIG9uIHRoZSBzZXJ2ZXJcbiAqIGFuZCB0aGVuIHNlbnQgdG8gdGhlIGNsaWVudCBhbGxvd2luZyB0aGUgZGFzaGJvYXJkIHRvIHNob3cgYWNjZXNzaWJsZSBkYXRhIGFuZCBhY3Rpb25zLlxuICpcbiAqIElmIHRoZSByZXN1bHQgaXMgYHRydWVgLCB0aGUgdXNlciBoYXMgYWNjZXNzLlxuICogSWYgdGhlIHJlc3VsdCBpcyBhbiBvYmplY3QsIGl0IGlzIGludGVycHJldGVkIGFzIGEgTW9uZ29EQiBxdWVyeS5cbiAqXG4gKiBAZXhhbXBsZSBgeyBjcmVhdGVkQnk6IHsgZXF1YWxzOiBpZCB9IH1gXG4gKlxuICogQGV4YW1wbGUgYHsgdGVuYW50OiB7IGluOiB0ZW5hbnRJZHMgfSB9YFxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FjY2Vzcy1jb250cm9sL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIEFjY2Vzc1Jlc3VsdCA9IFdoZXJlIHwgYm9vbGVhblxuXG5leHBvcnQgdHlwZSBBY2Nlc3NBcmdzPFQgPSBhbnksIFUgPSBhbnk+ID0ge1xuICAvKipcbiAgICogVGhlIHJlbGV2YW50IHJlc291cmNlIHRoYXQgaXMgYmVpbmcgYWNjZXNzZWQuXG4gICAqXG4gICAqIGBkYXRhYCBpcyBudWxsIHdoZW4gYSBsaXN0IGlzIHJlcXVlc3RlZFxuICAgKi9cbiAgZGF0YT86IFRcbiAgLyoqIElEIG9mIHRoZSByZXNvdXJjZSBiZWluZyBhY2Nlc3NlZCAqL1xuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICAvKiogSWYgdHJ1ZSwgdGhlIHJlcXVlc3QgaXMgZm9yIGEgc3RhdGljIGZpbGUgKi9cbiAgaXNSZWFkaW5nU3RhdGljRmlsZT86IGJvb2xlYW5cbiAgLyoqIFRoZSBvcmlnaW5hbCByZXF1ZXN0IHRoYXQgcmVxdWlyZXMgYW4gYWNjZXNzIGNoZWNrICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbn1cblxuLyoqXG4gKiBBY2Nlc3MgZnVuY3Rpb24gcnVucyBvbiB0aGUgc2VydmVyXG4gKiBhbmQgaXMgc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzPFQgPSBhbnksIFUgPSBhbnk+ID0gKFxuICBhcmdzOiBBY2Nlc3NBcmdzPFQsIFU+LFxuKSA9PiBBY2Nlc3NSZXN1bHQgfCBQcm9taXNlPEFjY2Vzc1Jlc3VsdD5cblxuLyoqIFdlYiBSZXF1ZXN0L1Jlc3BvbnNlIG1vZGVsLCBidXQgdGhlIHRoZSByZXEgaGFzIG1vcmUgcGF5bG9hZCBzcGVjaWZpYyBwcm9wZXJ0aWVzIGFkZGVkIHRvIGl0LiAqL1xuZXhwb3J0IHR5cGUgUGF5bG9hZEhhbmRsZXIgPSAocmVxOiBQYXlsb2FkUmVxdWVzdCkgPT4gUHJvbWlzZTxSZXNwb25zZT4gfCBSZXNwb25zZVxuXG4vKipcbiAqIERvY3M6IGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9yZXN0LWFwaS9vdmVydmlldyNjdXN0b20tZW5kcG9pbnRzXG4gKi9cbmV4cG9ydCB0eXBlIEVuZHBvaW50PFUgPSBVc2VyPiA9IHtcbiAgLyoqIEV4dGVuc2lvbiBwb2ludCB0byBhZGQgeW91ciBjdXN0b20gZGF0YS4gKi9cbiAgY3VzdG9tPzogUmVjb3JkPHN0cmluZywgYW55PlxuXG4gIC8qKlxuICAgKiBNaWRkbGV3YXJlIHRoYXQgd2lsbCBiZSBjYWxsZWQgd2hlbiB0aGUgcGF0aC9tZXRob2QgbWF0Y2hlc1xuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggV2ViIFJlcXVlc3QvUmVzcG9uc2UgTW9kZWxcbiAgICovXG4gIGhhbmRsZXI6IFBheWxvYWRIYW5kbGVyXG4gIC8qKiBIVFRQIG1ldGhvZCAob3IgXCJhbGxcIikgKi9cbiAgbWV0aG9kOiAnY29ubmVjdCcgfCAnZGVsZXRlJyB8ICdnZXQnIHwgJ2hlYWQnIHwgJ29wdGlvbnMnIHwgJ3BhdGNoJyB8ICdwb3N0JyB8ICdwdXQnXG4gIC8qKlxuICAgKiBQYXR0ZXJuIHRoYXQgc2hvdWxkIG1hdGNoIHRoZSBwYXRoIG9mIHRoZSBpbmNvbWluZyByZXF1ZXN0XG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCB0aGUgRXhwcmVzcyByb3V0ZXJcbiAgICovXG4gIHBhdGg6IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgaW4gMy4wXG4gICAqXG4gICAqIFBsZWFzZSBhZGQgXCJyb290XCIgcm91dGVzIHVuZGVyIHRoZSAvYXBpIGZvbGRlciBpbiB0aGUgUGF5bG9hZCBQcm9qZWN0LlxuICAgKiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9maWxlLWNvbnZlbnRpb25zL3JvdXRlXG4gICAqL1xuICByb290PzogbmV2ZXJcbn1cblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb21wb25lbnQgPSBSZWFjdC5Db21wb25lbnRUeXBlPFNlcnZlclNpZGVFZGl0Vmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBFZGl0Vmlld0NvbmZpZyA9XG4gIHwge1xuICAgICAgLyoqXG4gICAgICAgKiBBZGQgYSBuZXcgRWRpdCB2aWV3IHRvIHRoZSBhZG1pbiBwYW5lbFxuICAgICAgICogaS5lLiB5b3UgY2FuIHJlbmRlciBhIGN1c3RvbSB2aWV3IHRoYXQgaGFzIG5vIHRhYiwgaWYgZGVzaXJlZFxuICAgICAgICogT3Igb3ZlcnJpZGUgYSBzcGVjaWZpYyBwcm9wZXJ0aWVzIG9mIGFuIGV4aXN0aW5nIG9uZVxuICAgICAgICogaS5lLiB5b3UgY2FuIGN1c3RvbWl6ZSB0aGUgYERlZmF1bHRgIHZpZXcgdGFiIGxhYmVsLCBpZiBkZXNpcmVkXG4gICAgICAgKi9cbiAgICAgIFRhYj86IERvY3VtZW50VGFiXG4gICAgICBwYXRoPzogc3RyaW5nXG4gICAgfVxuICB8IHtcbiAgICAgIENvbXBvbmVudDogRWRpdFZpZXdDb21wb25lbnRcbiAgICAgIHBhdGg6IHN0cmluZ1xuICAgIH1cbiAgfCB7XG4gICAgICBhY3Rpb25zPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICB9XG5cbi8qKlxuICogT3ZlcnJpZGUgZXhpc3Rpbmcgdmlld3NcbiAqIGkuZS4gRGFzaGJvYXJkLCBBY2NvdW50LCBBUEksIExpdmVQcmV2aWV3LCBldGMuXG4gKiBQYXRoIGlzIG5vdCBhdmFpbGFibGUgaGVyZVxuICogQWxsIFRhYiBwcm9wZXJ0aWVzIGJlY29tZSBvcHRpb25hbFxuICogaS5lLiB5b3UgY2FuIGNoYW5nZSBqdXN0IHRoZSBsYWJlbCwgaWYgZGVzaXJlZFxuICovXG5leHBvcnQgdHlwZSBFZGl0VmlldyA9IEVkaXRWaWV3Q29tcG9uZW50IHwgRWRpdFZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgTG9jYWxlID0ge1xuICAvKipcbiAgICogdmFsdWUgb2Ygc3VwcG9ydGVkIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBcImVuXCJcbiAgICovXG4gIGNvZGU6IHN0cmluZ1xuICAvKipcbiAgICogQ29kZSBvZiBhbm90aGVyIGxvY2FsZSB0byB1c2Ugd2hlbiByZWFkaW5nIGRvY3VtZW50cyB3aXRoIGZhbGxiYWNrLCBpZiBub3Qgc3BlY2lmaWVkIGRlZmF1bHRMb2NhbGUgaXMgdXNlZFxuICAgKi9cbiAgZmFsbGJhY2tMb2NhbGU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIGxhYmVsIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJFbmdsaXNoXCJcbiAgICovXG4gIGxhYmVsOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgc3RyaW5nXG4gIC8qKlxuICAgKiBpZiB0cnVlLCBkZWZhdWx0cyB0ZXh0QWxpZ21uZW50IG9uIHRleHQgZmllbGRzIHRvIFJUTFxuICAgKi9cbiAgcnRsPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCYXNlTG9jYWxpemF0aW9uQ29uZmlnID0ge1xuICAvKipcbiAgICogTG9jYWxlIGZvciB1c2VycyB0aGF0IGhhdmUgbm90IGV4cHJlc3NlZCB0aGVpciBwcmVmZXJlbmNlIGZvciBhIHNwZWNpZmljIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBgXCJlblwiYFxuICAgKi9cbiAgZGVmYXVsdExvY2FsZTogc3RyaW5nXG4gIC8qKiBTZXQgdG8gYHRydWVgIHRvIGxldCBtaXNzaW5nIHZhbHVlcyBpbiBsb2NhbGlzZWQgZmllbGRzIGZhbGwgYmFjayB0byB0aGUgdmFsdWVzIGluIGBkZWZhdWx0TG9jYWxlYCAqL1xuICBmYWxsYmFjaz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlczogc3RyaW5nW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyB3aXRoIGxhYmVsc1xuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgKiAgdmFsdWU6ICdlbicsXG4gICAgICogIHJ0bDogZmFsc2VcbiAgICAgKiB9XG4gICAgICovXG4gICAgbG9jYWxlczogTG9jYWxlW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVDb2Rlczogc3RyaW5nW11cbiAgfVxuPlxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vbG9jYWxpemF0aW9uI2xvY2FsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyB8IExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVsc1xuPlxuXG5leHBvcnQgdHlwZSBTaGFycERlcGVuZGVuY3kgPSAoXG4gIGlucHV0PzpcbiAgICB8IEFycmF5QnVmZmVyXG4gICAgfCBCdWZmZXJcbiAgICB8IEZsb2F0MzJBcnJheVxuICAgIHwgRmxvYXQ2NEFycmF5XG4gICAgfCBJbnQ4QXJyYXlcbiAgICB8IEludDE2QXJyYXlcbiAgICB8IEludDMyQXJyYXlcbiAgICB8IFVpbnQ4QXJyYXlcbiAgICB8IFVpbnQ4Q2xhbXBlZEFycmF5XG4gICAgfCBVaW50MTZBcnJheVxuICAgIHwgVWludDMyQXJyYXlcbiAgICB8IHN0cmluZyxcbiAgb3B0aW9ucz86IHNoYXJwLlNoYXJwT3B0aW9ucyxcbikgPT4gc2hhcnAuU2hhcnBcblxuLyoqXG4gKiBUaGlzIGlzIHRoZSBjZW50cmFsIGNvbmZpZ3VyYXRpb25cbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3XG4gKi9cbmV4cG9ydCB0eXBlIENvbmZpZyA9IHtcbiAgLyoqIENvbmZpZ3VyZSBhZG1pbiBkYXNoYm9hcmQgKi9cbiAgYWRtaW4/OiB7XG4gICAgLyoqIEF1dG9tYXRpY2FsbHkgbG9nIGluIGFzIGEgdXNlciB3aGVuIHZpc2l0aW5nIHRoZSBhZG1pbiBkYXNoYm9hcmQuICovXG4gICAgYXV0b0xvZ2luPzpcbiAgICAgIHwge1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIFRoZSBlbWFpbCBhZGRyZXNzIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBlbWFpbDogc3RyaW5nXG4gICAgICAgICAgLyoqIFRoZSBwYXNzd29yZCBvZiB0aGUgdXNlciB0byBsb2dpbiBhcyAqL1xuICAgICAgICAgIHBhc3N3b3JkOiBzdHJpbmdcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGxvZ2luIGNyZWRlbnRpYWxzIHdpbGwgYmUgcHJlZmlsbGVkIGJ1dCB0aGUgdXNlciB3aWxsIHN0aWxsIG5lZWQgdG8gY2xpY2sgdGhlIGxvZ2luIGJ1dHRvbi5cbiAgICAgICAgICAgKlxuICAgICAgICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICAgICAgICovXG4gICAgICAgICAgcHJlZmlsbE9ubHk/OiBib29sZWFuXG4gICAgICAgIH1cbiAgICAgIHwgZmFsc2VcblxuICAgIC8qKiBTZXQgYWNjb3VudCBwcm9maWxlIHBpY3R1cmUuIE9wdGlvbnM6IGdyYXZhdGFyLCBkZWZhdWx0IG9yIGEgY3VzdG9tIFJlYWN0IGNvbXBvbmVudC4gKi9cbiAgICBhdmF0YXI/OiAnZGVmYXVsdCcgfCAnZ3JhdmF0YXInIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgLyoqXG4gICAgICogU3BlY2lmeSBhbiBhYnNvbHV0ZSBwYXRoIGZvciB3aGVyZSB0byBzdG9yZSB0aGUgYnVpbHQgQWRtaW4gcGFuZWwgYnVuZGxlIHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IFwiL2J1aWxkXCJcbiAgICAgKiAqL1xuICAgIGJ1aWxkUGF0aD86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIEFkZCBleHRyYSBhbmQvb3IgcmVwbGFjZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIGNvbXBvbmVudHNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FkbWluL2NvbXBvbmVudHNcbiAgICAgKi9cbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9uIHdpdGggYSBjdXN0b20gY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIE5hdj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgdG8gdGhlIHRvcCByaWdodCBvZiB0aGUgQWRtaW4gUGFuZWxcbiAgICAgICAqL1xuICAgICAgYWN0aW9ucz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBhZnRlckRhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgZW1haWwvcGFzc3dvcmQgZmllbGRcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBhZnRlck5hdkxpbmtzPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBiZWZvcmVEYXNoYm9hcmQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBiZWZvcmVMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIG5hdmlnYXRpb24gbGlua3NcbiAgICAgICAqL1xuICAgICAgYmVmb3JlTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqIFJlcGxhY2UgZ3JhcGhpY2FsIGNvbXBvbmVudHMgKi9cbiAgICAgIGdyYXBoaWNzPzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgaWNvbiBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICAgICAgICBJY29uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBsb2dvIG9uIHRoZSBsb2dpbiBwYWdlICovXG4gICAgICAgIExvZ28/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIH1cbiAgICAgIC8qKiBSZXBsYWNlIGxvZ291dCByZWxhdGVkIGNvbXBvbmVudHMgKi9cbiAgICAgIGxvZ291dD86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ291dCBidXR0b24gICovXG4gICAgICAgIEJ1dHRvbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAgKiBXcmFwIHRoZSBhZG1pbiBkYXNoYm9hcmQgaW4gY3VzdG9tIGNvbnRleHQgcHJvdmlkZXJzXG4gICAgICAgKi9cbiAgICAgIHByb3ZpZGVycz86IFJlYWN0LkNvbXBvbmVudFR5cGU8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+W11cbiAgICAgIC8qKlxuICAgICAgICogUmVwbGFjZSBvciBtb2RpZnkgdG9wLWxldmVsIGFkbWluIHJvdXRlcywgb3IgYWRkIG5ldyBvbmVzOlxuICAgICAgICogKyBgQWNjb3VudGAgLSBgL2FkbWluL2FjY291bnRgXG4gICAgICAgKiArIGBEYXNoYm9hcmRgIC0gYC9hZG1pbmBcbiAgICAgICAqICsgYDpwYXRoYCAtIGAvYWRtaW4vOnBhdGhgXG4gICAgICAgKi9cbiAgICAgIHZpZXdzPzoge1xuICAgICAgICAvKiogQWRkIGN1c3RvbSBhZG1pbiB2aWV3cyAqL1xuICAgICAgICBba2V5OiBzdHJpbmddOiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFjY291bnQgc2NyZWVuICovXG4gICAgICAgIEFjY291bnQ/OiBBZG1pblZpZXdcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFkbWluIGhvbWVwYWdlICovXG4gICAgICAgIERhc2hib2FyZD86IEFkbWluVmlld1xuICAgICAgfVxuICAgIH1cbiAgICAvKiogR2xvYmFsIGRhdGUgZm9ybWF0IHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbGwgZGF0ZXMgaW4gdGhlIEFkbWluIHBhbmVsLiBBbnkgdmFsaWQgZGF0ZS1mbnMgZm9ybWF0IHBhdHRlcm4gY2FuIGJlIHVzZWQuICovXG4gICAgZGF0ZUZvcm1hdD86IHN0cmluZ1xuICAgIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGVudGlyZSBBZG1pbiBwYW5lbCB3aWxsIGJlIGRpc2FibGVkLiAqL1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgLyoqIFRoZSByb3V0ZSB0aGUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gYWZ0ZXIgYmVpbmcgaW5hY3RpdmUgZm9yIHRvbyBsb25nLiAqL1xuICAgIGluYWN0aXZpdHlSb3V0ZT86IHN0cmluZ1xuICAgIGxpdmVQcmV2aWV3PzogTGl2ZVByZXZpZXdDb25maWcgJiB7XG4gICAgICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdXG4gICAgICBnbG9iYWxzPzogc3RyaW5nW11cbiAgICB9XG4gICAgLyoqIFRoZSByb3V0ZSBmb3IgdGhlIGxvZ291dCBwYWdlLiAqL1xuICAgIGxvZ291dFJvdXRlPzogc3RyaW5nXG4gICAgLyoqIEJhc2UgbWV0YSBkYXRhIHRvIHVzZSBmb3IgdGhlIEFkbWluIHBhbmVsLiBJbmNsdWRlZCBwcm9wZXJ0aWVzIGFyZSB0aXRsZVN1ZmZpeCwgb2dJbWFnZSwgYW5kIGZhdmljb24uICovXG4gICAgbWV0YT86IHtcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaWNvblxuICAgICAgICpcbiAgICAgICAqIFRoaXMgaW1hZ2UgbWF5IGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlciBuZXh0IHRvIHRoZSB0aXRsZSBvZiB0aGUgcGFnZVxuICAgICAgICovXG4gICAgICBmYXZpY29uPzogc3RyaW5nXG4gICAgICAvKipcbiAgICAgICAqIFB1YmxpYyBwYXRoIHRvIGFuIGltYWdlXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGFzIHByZXZpZXcgd2hlbiB0aGUgbGluayBpcyBzaGFyZWQgb24gc29jaWFsIG1lZGlhXG4gICAgICAgKi9cbiAgICAgIG9nSW1hZ2U/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogU3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgPHRpdGxlPiBvZiBhZG1pbiBwYWdlc1xuICAgICAgICogQGV4YW1wbGUgYFwiIC0gTXkgQnJhbmRcImBcbiAgICAgICAqL1xuICAgICAgdGl0bGVTdWZmaXg/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqIFRoZSBzbHVnIG9mIGEgQ29sbGVjdGlvbiB0aGF0IHlvdSB3YW50IGJlIHVzZWQgdG8gbG9nIGluIHRvIHRoZSBBZG1pbiBkYXNoYm9hcmQuICovXG4gICAgdXNlcj86IHN0cmluZ1xuICB9XG4gIC8qKiBDdXN0b20gUGF5bG9hZCBiaW4gc2NyaXB0cyBjYW4gYmUgaW5qZWN0ZWQgdmlhIHRoZSBjb25maWcuICovXG4gIGJpbj86IEJpblNjcmlwdENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIGRhdGFtb2RlbCBvZiB5b3VyIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vY29sbGVjdGlvbnMjY29sbGVjdGlvbi1jb25maWdzXG4gICAqL1xuICBjb2xsZWN0aW9ucz86IENvbGxlY3Rpb25Db25maWdbXVxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgYnVpbHQtaW4gY29tcG9uZW50cyB3aXRoIGN1c3RvbSBvbmVzXG4gICAqL1xuICBjb21wb25lbnRzPzogeyBba2V5OiBzdHJpbmddOiAoKCkgPT4gSlNYLkVsZW1lbnQpIHwgSlNYLkVsZW1lbnQgfVxuICAvKipcbiAgICogUHJlZml4IGEgc3RyaW5nIHRvIGFsbCBjb29raWVzIHRoYXQgUGF5bG9hZCBzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBheWxvYWRcIlxuICAgKi9cbiAgY29va2llUHJlZml4Pzogc3RyaW5nXG4gIC8qKiBFaXRoZXIgYSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMUyB0byBhbGxvdyBDT1JTIHJlcXVlc3RzIGZyb20sIG9yIGEgd2lsZGNhcmQgc3RyaW5nICgnKicpIHRvIGFjY2VwdCBpbmNvbWluZyByZXF1ZXN0cyBmcm9tIGFueSBkb21haW4uICovXG4gIGNvcnM/OiAnKicgfCBzdHJpbmdbXVxuICAvKiogQSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMcyB0byBhbGxvdyBQYXlsb2FkIGNvb2tpZXMgdG8gYmUgYWNjZXB0ZWQgZnJvbSBhcyBhIGZvcm0gb2YgQ1NSRiBwcm90ZWN0aW9uLiAqL1xuICBjc3JmPzogc3RyaW5nW11cblxuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG5cbiAgLyoqIFBhc3MgaW4gYSBkYXRhYmFzZSBhZGFwdGVyIGZvciB1c2Ugb24gdGhpcyBwcm9qZWN0LiAqL1xuICBkYjogRGF0YWJhc2VBZGFwdGVyUmVzdWx0XG4gIC8qKiBFbmFibGUgdG8gZXhwb3NlIG1vcmUgZGV0YWlsZWQgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gIGRlYnVnPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgYSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYGRlcHRoYCB3aGlsZSByZXF1ZXN0aW5nIGEgcmVzb3VyY2UsIHRoaXMgZGVwdGggd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgZGVmYXVsdERlcHRoPzogbnVtYmVyXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA0MDAwMFxuICAgKi9cbiAgZGVmYXVsdE1heFRleHRMZW5ndGg/OiBudW1iZXJcbiAgLyoqIERlZmF1bHQgcmljaHRleHQgZWRpdG9yIHRvIHVzZSBmb3IgcmljaFRleHQgZmllbGRzICovXG4gIGVkaXRvcjogUmljaFRleHRBZGFwdGVyPGFueSwgYW55LCBhbnk+XG4gIC8qKlxuICAgKiBFbWFpbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSBgZW1haWxgIGluIFBheWxvYWQuaW5pdCBpZiBwYXNzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuICAvKiogQ3VzdG9tIFJFU1QgZW5kcG9pbnRzICovXG4gIGVuZHBvaW50cz86IEVuZHBvaW50W11cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZ2xvYmFscyNnbG9iYWwtY29uZmlnc1xuICAgKi9cbiAgZ2xvYmFscz86IEdsb2JhbENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIEdyYXBoUUwgQVBJXG4gICAqXG4gICAqIFlvdSBjYW4gYWRkIHlvdXIgb3duIEdyYXBoUUwgcXVlcmllcyBhbmQgbXV0YXRpb25zIHRvIFBheWxvYWQsIG1ha2luZyB1c2Ugb2YgYWxsIHRoZSB0eXBlcyB0aGF0IFBheWxvYWQgaGFzIGRlZmluZWQgZm9yIHlvdS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ3JhcGhxbC9vdmVydmlld1xuICAgKi9cbiAgZ3JhcGhRTD86IHtcbiAgICBkaXNhYmxlPzogYm9vbGVhblxuICAgIGRpc2FibGVQbGF5Z3JvdW5kSW5Qcm9kdWN0aW9uPzogYm9vbGVhblxuICAgIG1heENvbXBsZXhpdHk/OiBudW1iZXJcbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcga2V5cyB0byBjdXN0b20gR3JhcGhRTCBtdXRhdGlvbnNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgbXV0YXRpb25zPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIHF1ZXJpZXNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dyYXBocWwvZXh0ZW5kaW5nXG4gICAgICovXG4gICAgcXVlcmllcz86IEdyYXBoUUxFeHRlbnNpb25cbiAgICBzY2hlbWFPdXRwdXRGaWxlPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIFRhcCBpbnRvIFBheWxvYWQtd2lkZSBob29rcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvaG9va3Mvb3ZlcnZpZXdcbiAgICovXG4gIGhvb2tzPzoge1xuICAgIGFmdGVyRXJyb3I/OiBBZnRlckVycm9ySG9va1xuICB9XG4gIC8qKiBpMThuIGNvbmZpZyBzZXR0aW5ncyAqL1xuICBpMThuPzogSTE4bk9wdGlvbnNcbiAgLyoqIEF1dG9tYXRpY2FsbHkgaW5kZXggYWxsIHNvcnRhYmxlIHRvcC1sZXZlbCBmaWVsZHMgaW4gdGhlIGRhdGFiYXNlIHRvIGltcHJvdmUgc29ydCBwZXJmb3JtYW5jZSBhbmQgYWRkIGRhdGFiYXNlIGNvbXBhdGliaWxpdHkgZm9yIEF6dXJlIENvc21vcyBhbmQgc2ltaWxhci4gKi9cbiAgaW5kZXhTb3J0YWJsZUZpZWxkcz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRyYW5zbGF0ZSB5b3VyIGNvbnRlbnQgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy9sb2NhbGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZSAvLyBkaXNhYmxlIGxvY2FsaXphdGlvblxuICAgKi9cbiAgbG9jYWxpemF0aW9uPzogTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIGFsbG93ZWQgZGVwdGggdG8gYmUgcGVybWl0dGVkIGFwcGxpY2F0aW9uLXdpZGUuIFRoaXMgc2V0dGluZyBoZWxwcyBwcmV2ZW50IGFnYWluc3QgbWFsaWNpb3VzIHF1ZXJpZXMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2dldHRpbmctc3RhcnRlZC9jb25jZXB0cyNkZXB0aFxuICAgKlxuICAgKiBAZGVmYXVsdCAxMFxuICAgKi9cbiAgbWF4RGVwdGg/OiBudW1iZXJcbiAgLyoqIEEgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIHN0YXJ0dXAgdGhhdCByZWNlaXZlcyB0aGUgUGF5bG9hZCBpbnN0YW5jZSBhcyBpdHMgb25seSBhcmd1bWVudC4gKi9cbiAgb25Jbml0PzogKHBheWxvYWQ6IFBheWxvYWQpID0+IFByb21pc2U8dm9pZD4gfCB2b2lkXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBQYXlsb2FkIHBsdWdpbnMuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3BsdWdpbnMvb3ZlcnZpZXdcbiAgICovXG4gIHBsdWdpbnM/OiBQbHVnaW5bXVxuICAvKiogQ29udHJvbCB0aGUgcm91dGluZyBzdHJ1Y3R1cmUgdGhhdCBQYXlsb2FkIGJpbmRzIGl0c2VsZiB0by4gKi9cbiAgcm91dGVzPzoge1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hZG1pblwiICovXG4gICAgYWRtaW4/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvYXBpXCIgICovXG4gICAgYXBpPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWxcIiAgKi9cbiAgICBncmFwaFFMPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWwtcGxheWdyb3VuZFwiICovXG4gICAgZ3JhcGhRTFBsYXlncm91bmQ/OiBzdHJpbmdcbiAgfVxuICAvKiogU2VjdXJlIHN0cmluZyB0aGF0IFBheWxvYWQgd2lsbCB1c2UgZm9yIGFueSBlbmNyeXB0aW9uIHdvcmtmbG93cyAqL1xuICBzZWNyZXQ6IHN0cmluZ1xuICAvKipcbiAgICogRGVmaW5lIHRoZSBhYnNvbHV0ZSBVUkwgb2YgeW91ciBhcHAgaW5jbHVkaW5nIHRoZSBwcm90b2NvbCwgZm9yIGV4YW1wbGUgYGh0dHBzOi8vZXhhbXBsZS5vcmdgLlxuICAgKiBObyBwYXRocyBhbGxvd2VkLCBvbmx5IHByb3RvY29sLCBkb21haW4gYW5kIChvcHRpb25hbGx5KSBwb3J0LlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL292ZXJ2aWV3I29wdGlvbnNcbiAgICovXG4gIHNlcnZlclVSTD86IHN0cmluZ1xuICAvKipcbiAgICogUGFzcyBpbiBhIGxvY2FsIGNvcHkgb2YgU2hhcnAgaWYgeW91J2QgbGlrZSB0byB1c2UgaXQuXG4gICAqXG4gICAqL1xuICBzaGFycD86IFNoYXJwRGVwZW5kZW5jeVxuICAvKiogU2VuZCBhbm9ueW1vdXMgdGVsZW1ldHJ5IGRhdGEgYWJvdXQgZ2VuZXJhbCB1c2FnZS4gKi9cbiAgdGVsZW1ldHJ5PzogYm9vbGVhblxuICAvKiogQ29udHJvbCBob3cgdHlwZXNjcmlwdCBpbnRlcmZhY2VzIGFyZSBnZW5lcmF0ZWQgZnJvbSB5b3VyIGNvbGxlY3Rpb25zLiAqL1xuICB0eXBlc2NyaXB0Pzoge1xuICAgIC8qKiBEaXNhYmxlIGRlY2xhcmUgYmxvY2sgaW4gZ2VuZXJhdGVkIHR5cGVzIGZpbGUgKi9cbiAgICBkZWNsYXJlPzogZmFsc2VcbiAgICAvKiogRmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCB0eXBlcyB0byAqL1xuICAgIG91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSBoYW5kbGluZyBvZiBpbmNvbWluZyBmaWxlIHVwbG9hZHMgZm9yIGNvbGxlY3Rpb25zIHRoYXQgaGF2ZSB1cGxvYWRzIGVuYWJsZWQuXG4gICAqL1xuICB1cGxvYWQ/OiBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU2FuaXRpemVkQ29uZmlnID0gT21pdDxcbiAgRGVlcFJlcXVpcmVkPENvbmZpZz4sXG4gICdjb2xsZWN0aW9ucycgfCAnZW5kcG9pbnQnIHwgJ2dsb2JhbHMnIHwgJ2xvY2FsaXphdGlvbidcbj4gJiB7XG4gIGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW11cbiAgZW5kcG9pbnRzOiBFbmRwb2ludFtdXG4gIGdsb2JhbHM6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgcGF0aHM6IHtcbiAgICBjb25maWc6IHN0cmluZ1xuICAgIGNvbmZpZ0Rpcjogc3RyaW5nXG4gICAgcmF3Q29uZmlnOiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBDbGllbnRDb25maWcgPSBPbWl0PFNhbml0aXplZENvbmZpZywgJ2RiJyB8ICdlbmRwb2ludHMnPiAmIHtcbiAgY29sbGVjdGlvbnM6IChPbWl0PFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsICdhY2Nlc3MnIHwgJ2VuZHBvaW50cycgfCAnZmllbGRzJyB8ICdob29rcyc+ICYge1xuICAgIGZpZWxkczogQ2xpZW50Q29uZmlnRmllbGRbXVxuICB9KVtdXG4gIGdsb2JhbHM6IChPbWl0PFNhbml0aXplZEdsb2JhbENvbmZpZywgJ2FjY2VzcycgfCAnZW5kcG9pbnRzJyB8ICdmaWVsZHMnIHwgJ2hvb2tzJz4gJiB7XG4gICAgZmllbGRzOiBDbGllbnRDb25maWdGaWVsZFtdXG4gIH0pW11cbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5RGVzY3JpcHRpb24gPVxuICB8ICgoKSA9PiBzdHJpbmcpXG4gIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICB8IHN0cmluZ1xuIl0sIm5hbWVzIjpbImhhc1RyYW5zcG9ydCIsImVtYWlsQ29uZmlnIiwidHJhbnNwb3J0IiwidW5kZWZpbmVkIiwiaGFzVHJhbnNwb3J0T3B0aW9ucyIsInRyYW5zcG9ydE9wdGlvbnMiXSwibWFwcGluZ3MiOiJBQStGQTs7O0NBR0MsR0FDRCxPQUFPLFNBQVNBLGFBQWFDLFdBQXlCO0lBQ3BELE9BQU8sQUFBQ0EsWUFBK0JDLFNBQVMsS0FBS0M7QUFDdkQ7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLFNBQVNDLG9CQUNkSCxXQUF5QjtJQUV6QixPQUFPLEFBQUNBLFlBQXNDSSxnQkFBZ0IsS0FBS0Y7QUFDckUifQ==
|
package/dist/config/validate.js
CHANGED
|
@@ -1,86 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _schema = /*#__PURE__*/ _interop_require_default(require("../collections/config/schema"));
|
|
12
|
-
const _schema1 = /*#__PURE__*/ _interop_require_wildcard(require("../fields/config/schema"));
|
|
13
|
-
const _types = require("../fields/config/types");
|
|
14
|
-
const _schema2 = /*#__PURE__*/ _interop_require_default(require("../globals/config/schema"));
|
|
15
|
-
const _schema3 = /*#__PURE__*/ _interop_require_default(require("./schema"));
|
|
16
|
-
function _interop_require_default(obj) {
|
|
17
|
-
return obj && obj.__esModule ? obj : {
|
|
18
|
-
default: obj
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
function _getRequireWildcardCache(nodeInterop) {
|
|
22
|
-
if (typeof WeakMap !== "function") return null;
|
|
23
|
-
var cacheBabelInterop = new WeakMap();
|
|
24
|
-
var cacheNodeInterop = new WeakMap();
|
|
25
|
-
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
26
|
-
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
27
|
-
})(nodeInterop);
|
|
28
|
-
}
|
|
29
|
-
function _interop_require_wildcard(obj, nodeInterop) {
|
|
30
|
-
if (!nodeInterop && obj && obj.__esModule) {
|
|
31
|
-
return obj;
|
|
32
|
-
}
|
|
33
|
-
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
34
|
-
return {
|
|
35
|
-
default: obj
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
var cache = _getRequireWildcardCache(nodeInterop);
|
|
39
|
-
if (cache && cache.has(obj)) {
|
|
40
|
-
return cache.get(obj);
|
|
41
|
-
}
|
|
42
|
-
var newObj = {
|
|
43
|
-
__proto__: null
|
|
44
|
-
};
|
|
45
|
-
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
46
|
-
for(var key in obj){
|
|
47
|
-
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
48
|
-
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
49
|
-
if (desc && (desc.get || desc.set)) {
|
|
50
|
-
Object.defineProperty(newObj, key, desc);
|
|
51
|
-
} else {
|
|
52
|
-
newObj[key] = obj[key];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
newObj.default = obj;
|
|
57
|
-
if (cache) {
|
|
58
|
-
cache.set(obj, newObj);
|
|
59
|
-
}
|
|
60
|
-
return newObj;
|
|
61
|
-
}
|
|
1
|
+
import collectionSchema from '../collections/config/schema';
|
|
2
|
+
import fieldSchema, { idField } from '../fields/config/schema';
|
|
3
|
+
import { fieldAffectsData } from '../fields/config/types';
|
|
4
|
+
import globalSchema from '../globals/config/schema';
|
|
5
|
+
import schema from './schema';
|
|
62
6
|
const validateFields = (context, entity)=>{
|
|
63
7
|
const errors = [];
|
|
64
8
|
entity.fields.forEach((field)=>{
|
|
65
9
|
let idResult = {
|
|
66
10
|
error: null
|
|
67
11
|
};
|
|
68
|
-
if (
|
|
69
|
-
idResult =
|
|
12
|
+
if (fieldAffectsData(field) && field.name === 'id') {
|
|
13
|
+
idResult = idField.validate(field, {
|
|
70
14
|
abortEarly: false
|
|
71
15
|
});
|
|
72
16
|
}
|
|
73
|
-
const result =
|
|
17
|
+
const result = fieldSchema.validate(field, {
|
|
74
18
|
abortEarly: false
|
|
75
19
|
});
|
|
76
20
|
if (idResult.error) {
|
|
77
21
|
idResult.error.details.forEach(({ message })=>{
|
|
78
|
-
errors.push(`${context} "${entity.slug}" > Field${
|
|
22
|
+
errors.push(`${context} "${entity.slug}" > Field${fieldAffectsData(field) ? ` "${field.name}" >` : ''} ${message}`);
|
|
79
23
|
});
|
|
80
24
|
}
|
|
81
25
|
if (result.error) {
|
|
82
26
|
result.error.details.forEach(({ message })=>{
|
|
83
|
-
errors.push(`${context} "${entity.slug}" > Field${
|
|
27
|
+
errors.push(`${context} "${entity.slug}" > Field${fieldAffectsData(field) ? ` "${field.name}" >` : ''} ${message}`);
|
|
84
28
|
});
|
|
85
29
|
}
|
|
86
30
|
});
|
|
@@ -89,7 +33,7 @@ const validateFields = (context, entity)=>{
|
|
|
89
33
|
const validateCollections = async (collections)=>{
|
|
90
34
|
const errors = [];
|
|
91
35
|
collections.forEach((collection)=>{
|
|
92
|
-
const result =
|
|
36
|
+
const result = collectionSchema.validate(collection, {
|
|
93
37
|
abortEarly: false
|
|
94
38
|
});
|
|
95
39
|
if (result.error) {
|
|
@@ -104,7 +48,7 @@ const validateCollections = async (collections)=>{
|
|
|
104
48
|
const validateGlobals = (globals)=>{
|
|
105
49
|
const errors = [];
|
|
106
50
|
globals.forEach((global)=>{
|
|
107
|
-
const result =
|
|
51
|
+
const result = globalSchema.validate(global, {
|
|
108
52
|
abortEarly: false
|
|
109
53
|
});
|
|
110
54
|
if (result.error) {
|
|
@@ -117,7 +61,7 @@ const validateGlobals = (globals)=>{
|
|
|
117
61
|
return errors;
|
|
118
62
|
};
|
|
119
63
|
const validateSchema = async (config, logger)=>{
|
|
120
|
-
const result =
|
|
64
|
+
const result = schema.validate(config, {
|
|
121
65
|
abortEarly: false
|
|
122
66
|
});
|
|
123
67
|
const nestedErrors = [
|
|
@@ -141,6 +85,6 @@ const validateSchema = async (config, logger)=>{
|
|
|
141
85
|
}
|
|
142
86
|
return result.value;
|
|
143
87
|
};
|
|
144
|
-
|
|
88
|
+
export default validateSchema;
|
|
145
89
|
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdmFsaWRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnam9pJ1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgY29sbGVjdGlvblNjaGVtYSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvc2NoZW1hJ1xuaW1wb3J0IGZpZWxkU2NoZW1hLCB7IGlkRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3NjaGVtYSdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGdsb2JhbFNjaGVtYSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQgc2NoZW1hIGZyb20gJy4vc2NoZW1hJ1xuXG5jb25zdCB2YWxpZGF0ZUZpZWxkcyA9IChcbiAgY29udGV4dDogc3RyaW5nLFxuICBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcsXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBlbnRpdHkuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgbGV0IGlkUmVzdWx0OiBQYXJ0aWFsPFZhbGlkYXRpb25SZXN1bHQ+ID0geyBlcnJvcjogbnVsbCB9XG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgIGlkUmVzdWx0ID0gaWRGaWVsZC52YWxpZGF0ZShmaWVsZCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpZWxkU2NoZW1hLnZhbGlkYXRlKGZpZWxkLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKGlkUmVzdWx0LmVycm9yKSB7XG4gICAgICBpZFJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgIGAke2NvbnRleHR9IFwiJHtlbnRpdHkuc2x1Z31cIiA+IEZpZWxkJHtcbiAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpID8gYCBcIiR7ZmllbGQubmFtZX1cIiA+YCA6ICcnXG4gICAgICAgICAgfSAke21lc3NhZ2V9YCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgYCR7Y29udGV4dH0gXCIke2VudGl0eS5zbHVnfVwiID4gRmllbGQke1xuICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgPyBgIFwiJHtmaWVsZC5uYW1lfVwiID5gIDogJydcbiAgICAgICAgICB9ICR7bWVzc2FnZX1gLFxuICAgICAgICApXG4gICAgICB9KVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZUNvbGxlY3Rpb25zID0gYXN5bmMgKGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW10pOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBjb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gY29sbGVjdGlvblNjaGVtYS52YWxpZGF0ZShjb2xsZWN0aW9uLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goYENvbGxlY3Rpb24gXCIke2NvbGxlY3Rpb24uc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0NvbGxlY3Rpb24nLCBjb2xsZWN0aW9uKSlcbiAgfSlcblxuICByZXR1cm4gZXJyb3JzXG59XG5cbmNvbnN0IHZhbGlkYXRlR2xvYmFscyA9IChnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdXG4gIGdsb2JhbHMuZm9yRWFjaCgoZ2xvYmFsKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2xvYmFsU2NoZW1hLnZhbGlkYXRlKGdsb2JhbCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgIHJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBHbG9iYWxzIFwiJHtnbG9iYWwuc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0dsb2JhbCcsIGdsb2JhbCkpXG4gIH0pXG5cbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZVNjaGVtYSA9IGFzeW5jIChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuKTogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+ID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnZhbGlkYXRlKGNvbmZpZywge1xuICAgIGFib3J0RWFybHk6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IG5lc3RlZEVycm9ycyA9IFtcbiAgICAuLi4oYXdhaXQgdmFsaWRhdGVDb2xsZWN0aW9ucyhjb25maWcuY29sbGVjdGlvbnMpKSxcbiAgICAuLi52YWxpZGF0ZUdsb2JhbHMoY29uZmlnLmdsb2JhbHMpLFxuICBdXG5cbiAgaWYgKHJlc3VsdC5lcnJvciB8fCBuZXN0ZWRFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBUaGVyZSB3ZXJlICR7XG4gICAgICAgIChyZXN1bHQuZXJyb3I/LmRldGFpbHM/Lmxlbmd0aCB8fCAwKSArIG5lc3RlZEVycm9ycy5sZW5ndGhcbiAgICAgIH0gZXJyb3JzIHZhbGlkYXRpbmcgeW91ciBQYXlsb2FkIGNvbmZpZ2AsXG4gICAgKVxuXG4gICAgbGV0IGkgPSAwXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdmFsaWRhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWYWxpZGF0aW9uUmVzdWx0IH0gZnJvbSAnam9pJ1xuaW1wb3J0IHR5cGUgeyBMb2dnZXIgfSBmcm9tICdwaW5vJ1xuXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb25maWcgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgY29sbGVjdGlvblNjaGVtYSBmcm9tICcuLi9jb2xsZWN0aW9ucy9jb25maWcvc2NoZW1hJ1xuaW1wb3J0IGZpZWxkU2NoZW1hLCB7IGlkRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3NjaGVtYSdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGdsb2JhbFNjaGVtYSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy9zY2hlbWEnXG5pbXBvcnQgc2NoZW1hIGZyb20gJy4vc2NoZW1hJ1xuXG5jb25zdCB2YWxpZGF0ZUZpZWxkcyA9IChcbiAgY29udGV4dDogc3RyaW5nLFxuICBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcsXG4pOiBzdHJpbmdbXSA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBlbnRpdHkuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgbGV0IGlkUmVzdWx0OiBQYXJ0aWFsPFZhbGlkYXRpb25SZXN1bHQ+ID0geyBlcnJvcjogbnVsbCB9XG4gICAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgIGlkUmVzdWx0ID0gaWRGaWVsZC52YWxpZGF0ZShmaWVsZCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIH1cblxuICAgIGNvbnN0IHJlc3VsdCA9IGZpZWxkU2NoZW1hLnZhbGlkYXRlKGZpZWxkLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKGlkUmVzdWx0LmVycm9yKSB7XG4gICAgICBpZFJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKFxuICAgICAgICAgIGAke2NvbnRleHR9IFwiJHtlbnRpdHkuc2x1Z31cIiA+IEZpZWxkJHtcbiAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpID8gYCBcIiR7ZmllbGQubmFtZX1cIiA+YCA6ICcnXG4gICAgICAgICAgfSAke21lc3NhZ2V9YCxcbiAgICAgICAgKVxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goXG4gICAgICAgICAgYCR7Y29udGV4dH0gXCIke2VudGl0eS5zbHVnfVwiID4gRmllbGQke1xuICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgPyBgIFwiJHtmaWVsZC5uYW1lfVwiID5gIDogJydcbiAgICAgICAgICB9ICR7bWVzc2FnZX1gLFxuICAgICAgICApXG4gICAgICB9KVxuICAgIH1cbiAgfSlcbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZUNvbGxlY3Rpb25zID0gYXN5bmMgKGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW10pOiBQcm9taXNlPHN0cmluZ1tdPiA9PiB7XG4gIGNvbnN0IGVycm9yczogc3RyaW5nW10gPSBbXVxuICBjb2xsZWN0aW9ucy5mb3JFYWNoKChjb2xsZWN0aW9uKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gY29sbGVjdGlvblNjaGVtYS52YWxpZGF0ZShjb2xsZWN0aW9uLCB7IGFib3J0RWFybHk6IGZhbHNlIH0pXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgZXJyb3JzLnB1c2goYENvbGxlY3Rpb24gXCIke2NvbGxlY3Rpb24uc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0NvbGxlY3Rpb24nLCBjb2xsZWN0aW9uKSlcbiAgfSlcblxuICByZXR1cm4gZXJyb3JzXG59XG5cbmNvbnN0IHZhbGlkYXRlR2xvYmFscyA9IChnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXSk6IHN0cmluZ1tdID0+IHtcbiAgY29uc3QgZXJyb3JzOiBzdHJpbmdbXSA9IFtdXG4gIGdsb2JhbHMuZm9yRWFjaCgoZ2xvYmFsKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gZ2xvYmFsU2NoZW1hLnZhbGlkYXRlKGdsb2JhbCwgeyBhYm9ydEVhcmx5OiBmYWxzZSB9KVxuICAgIGlmIChyZXN1bHQuZXJyb3IpIHtcbiAgICAgIHJlc3VsdC5lcnJvci5kZXRhaWxzLmZvckVhY2goKHsgbWVzc2FnZSB9KSA9PiB7XG4gICAgICAgIGVycm9ycy5wdXNoKGBHbG9iYWxzIFwiJHtnbG9iYWwuc2x1Z31cIiA+ICR7bWVzc2FnZX1gKVxuICAgICAgfSlcbiAgICB9XG4gICAgZXJyb3JzLnB1c2goLi4udmFsaWRhdGVGaWVsZHMoJ0dsb2JhbCcsIGdsb2JhbCkpXG4gIH0pXG5cbiAgcmV0dXJuIGVycm9yc1xufVxuXG5jb25zdCB2YWxpZGF0ZVNjaGVtYSA9IGFzeW5jIChcbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWcsXG4gIGxvZ2dlcjogTG9nZ2VyLFxuKTogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+ID0+IHtcbiAgY29uc3QgcmVzdWx0ID0gc2NoZW1hLnZhbGlkYXRlKGNvbmZpZywge1xuICAgIGFib3J0RWFybHk6IGZhbHNlLFxuICB9KVxuXG4gIGNvbnN0IG5lc3RlZEVycm9ycyA9IFtcbiAgICAuLi4oYXdhaXQgdmFsaWRhdGVDb2xsZWN0aW9ucyhjb25maWcuY29sbGVjdGlvbnMpKSxcbiAgICAuLi52YWxpZGF0ZUdsb2JhbHMoY29uZmlnLmdsb2JhbHMpLFxuICBdXG5cbiAgaWYgKHJlc3VsdC5lcnJvciB8fCBuZXN0ZWRFcnJvcnMubGVuZ3RoID4gMCkge1xuICAgIGxvZ2dlci5lcnJvcihcbiAgICAgIGBUaGVyZSB3ZXJlICR7XG4gICAgICAgIChyZXN1bHQuZXJyb3I/LmRldGFpbHM/Lmxlbmd0aCB8fCAwKSArIG5lc3RlZEVycm9ycy5sZW5ndGhcbiAgICAgIH0gZXJyb3JzIHZhbGlkYXRpbmcgeW91ciBQYXlsb2FkIGNvbmZpZ2AsXG4gICAgKVxuXG4gICAgbGV0IGkgPSAwXG4gICAgaWYgKHJlc3VsdC5lcnJvcikge1xuICAgICAgcmVzdWx0LmVycm9yLmRldGFpbHMuZm9yRWFjaCgoeyBtZXNzYWdlIH0pID0+IHtcbiAgICAgICAgaSArPSAxXG4gICAgICAgIGxvZ2dlci5lcnJvcihgJHtpfTogJHttZXNzYWdlfWApXG4gICAgICB9KVxuICAgIH1cbiAgICBuZXN0ZWRFcnJvcnMuZm9yRWFjaCgobWVzc2FnZSkgPT4ge1xuICAgICAgaSArPSAxXG4gICAgICBsb2dnZXIuZXJyb3IoYCR7aX06ICR7bWVzc2FnZX1gKVxuICAgIH0pXG5cbiAgICBwcm9jZXNzLmV4aXQoMSlcbiAgfVxuXG4gIHJldHVybiByZXN1bHQudmFsdWVcbn1cblxuZXhwb3J0IGRlZmF1bHQgdmFsaWRhdGVTY2hlbWFcbiJdLCJuYW1lcyI6WyJjb2xsZWN0aW9uU2NoZW1hIiwiZmllbGRTY2hlbWEiLCJpZEZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsImdsb2JhbFNjaGVtYSIsInNjaGVtYSIsInZhbGlkYXRlRmllbGRzIiwiY29udGV4dCIsImVudGl0eSIsImVycm9ycyIsImZpZWxkcyIsImZvckVhY2giLCJmaWVsZCIsImlkUmVzdWx0IiwiZXJyb3IiLCJuYW1lIiwidmFsaWRhdGUiLCJhYm9ydEVhcmx5IiwicmVzdWx0IiwiZGV0YWlscyIsIm1lc3NhZ2UiLCJwdXNoIiwic2x1ZyIsInZhbGlkYXRlQ29sbGVjdGlvbnMiLCJjb2xsZWN0aW9ucyIsImNvbGxlY3Rpb24iLCJ2YWxpZGF0ZUdsb2JhbHMiLCJnbG9iYWxzIiwiZ2xvYmFsIiwidmFsaWRhdGVTY2hlbWEiLCJjb25maWciLCJsb2dnZXIiLCJuZXN0ZWRFcnJvcnMiLCJsZW5ndGgiLCJpIiwicHJvY2VzcyIsImV4aXQiLCJ2YWx1ZSJdLCJtYXBwaW5ncyI6IkFBT0EsT0FBT0Esc0JBQXNCLCtCQUE4QjtBQUMzRCxPQUFPQyxlQUFlQyxPQUFPLFFBQVEsMEJBQXlCO0FBQzlELFNBQVNDLGdCQUFnQixRQUFRLHlCQUF3QjtBQUN6RCxPQUFPQyxrQkFBa0IsMkJBQTBCO0FBQ25ELE9BQU9DLFlBQVksV0FBVTtBQUU3QixNQUFNQyxpQkFBaUIsQ0FDckJDLFNBQ0FDO0lBRUEsTUFBTUMsU0FBbUIsRUFBRTtJQUMzQkQsT0FBT0UsTUFBTSxDQUFDQyxPQUFPLENBQUMsQ0FBQ0M7UUFDckIsSUFBSUMsV0FBc0M7WUFBRUMsT0FBTztRQUFLO1FBQ3hELElBQUlYLGlCQUFpQlMsVUFBVUEsTUFBTUcsSUFBSSxLQUFLLE1BQU07WUFDbERGLFdBQVdYLFFBQVFjLFFBQVEsQ0FBQ0osT0FBTztnQkFBRUssWUFBWTtZQUFNO1FBQ3pEO1FBRUEsTUFBTUMsU0FBU2pCLFlBQVllLFFBQVEsQ0FBQ0osT0FBTztZQUFFSyxZQUFZO1FBQU07UUFDL0QsSUFBSUosU0FBU0MsS0FBSyxFQUFFO1lBQ2xCRCxTQUFTQyxLQUFLLENBQUNLLE9BQU8sQ0FBQ1IsT0FBTyxDQUFDLENBQUMsRUFB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
|
|
@@ -1,22 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "combineQueries", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return combineQueries;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _auth = require("../auth");
|
|
12
|
-
const combineQueries = (where, access)=>{
|
|
1
|
+
import { hasWhereAccessResult } from '../auth';
|
|
2
|
+
export const combineQueries = (where, access)=>{
|
|
13
3
|
if (!where && !access) return {};
|
|
14
4
|
const result = {
|
|
15
5
|
and: []
|
|
16
6
|
};
|
|
17
7
|
if (where) result.and.push(where);
|
|
18
|
-
if (
|
|
8
|
+
if (hasWhereAccessResult(access)) result.and.push(access);
|
|
19
9
|
return result;
|
|
20
10
|
};
|
|
21
11
|
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9jb21iaW5lUXVlcmllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbmltcG9ydCB7IGhhc1doZXJlQWNjZXNzUmVzdWx0IH0gZnJvbSAnLi4vYXV0aCdcblxuZXhwb3J0IGNvbnN0IGNvbWJpbmVRdWVyaWVzID0gKHdoZXJlOiBXaGVyZSwgYWNjZXNzOiBXaGVyZSB8IGJvb2xlYW4pOiBXaGVyZSA9PiB7XG4gIGlmICghd2hlcmUgJiYgIWFjY2VzcykgcmV0dXJuIHt9XG5cbiAgY29uc3QgcmVzdWx0OiBXaGVyZSA9IHtcbiAgICBhbmQ6IFtdLFxuICB9XG5cbiAgaWYgKHdoZXJlKSByZXN1bHQuYW5kLnB1c2god2hlcmUpXG4gIGlmIChoYXNXaGVyZUFjY2Vzc1Jlc3VsdChhY2Nlc3MpKSByZXN1bHQuYW5kLnB1c2goYWNjZXNzKVxuXG4gIHJldHVybiByZXN1bHRcbn1cbiJdLCJuYW1lcyI6WyJoYXNXaGVyZUFjY2Vzc1Jlc3VsdCIsImNvbWJpbmVRdWVyaWVzIiwid2hlcmUiLCJhY2Nlc3MiLCJyZXN1bHQiLCJhbmQiLCJwdXNoIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxvQkFBb0IsUUFBUSxVQUFTO0FBRTlDLE9BQU8sTUFBTUMsaUJBQWlCLENBQUNDLE9BQWNDO0lBQzNDLElBQUksQ0FBQ0QsU0FBUyxDQUFDQyxRQUFRLE9BQU8sQ0FBQztJQUUvQixNQUFNQyxTQUFnQjtRQUNwQkMsS0FBSyxFQUFFO0lBQ1Q7SUFFQSxJQUFJSCxPQUFPRSxPQUFPQyxHQUFHLENBQUNDLElBQUksQ0FBQ0o7SUFDM0IsSUFBSUYscUJBQXFCRyxTQUFTQyxPQUFPQyxHQUFHLENBQUNDLElBQUksQ0FBQ0g7SUFFbEQsT0FBT0M7QUFDVCxFQUFDIn0=
|
|
@@ -1,34 +1,24 @@
|
|
|
1
|
-
/* eslint-disable no-param-reassign */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
get: function() {
|
|
8
|
-
return createDatabaseAdapter;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _createMigration = require("./migrations/createMigration");
|
|
12
|
-
const _migrate = require("./migrations/migrate");
|
|
13
|
-
const _migrateDown = require("./migrations/migrateDown");
|
|
14
|
-
const _migrateRefresh = require("./migrations/migrateRefresh");
|
|
15
|
-
const _migrateReset = require("./migrations/migrateReset");
|
|
16
|
-
const _migrateStatus = require("./migrations/migrateStatus");
|
|
1
|
+
/* eslint-disable no-param-reassign */ import { createMigration } from './migrations/createMigration';
|
|
2
|
+
import { migrate } from './migrations/migrate';
|
|
3
|
+
import { migrateDown } from './migrations/migrateDown';
|
|
4
|
+
import { migrateRefresh } from './migrations/migrateRefresh';
|
|
5
|
+
import { migrateReset } from './migrations/migrateReset';
|
|
6
|
+
import { migrateStatus } from './migrations/migrateStatus';
|
|
17
7
|
const beginTransaction = async ()=>null;
|
|
18
8
|
const rollbackTransaction = async ()=>null;
|
|
19
9
|
const commitTransaction = async ()=>null;
|
|
20
|
-
function createDatabaseAdapter(args) {
|
|
10
|
+
export function createDatabaseAdapter(args) {
|
|
21
11
|
return {
|
|
22
12
|
// Default 'null' transaction functions
|
|
23
13
|
beginTransaction,
|
|
24
14
|
commitTransaction,
|
|
25
|
-
createMigration
|
|
26
|
-
migrate
|
|
27
|
-
migrateDown
|
|
15
|
+
createMigration,
|
|
16
|
+
migrate,
|
|
17
|
+
migrateDown,
|
|
28
18
|
migrateFresh: async ({ forceAcceptWarning = null })=>null,
|
|
29
|
-
migrateRefresh
|
|
30
|
-
migrateReset
|
|
31
|
-
migrateStatus
|
|
19
|
+
migrateRefresh,
|
|
20
|
+
migrateReset,
|
|
21
|
+
migrateStatus,
|
|
32
22
|
rollbackTransaction,
|
|
33
23
|
...args,
|
|
34
24
|
// Ensure migrationDir is set
|
|
@@ -36,4 +26,4 @@ function createDatabaseAdapter(args) {
|
|
|
36
26
|
};
|
|
37
27
|
}
|
|
38
28
|
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9jcmVhdGVEYXRhYmFzZUFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgTWFya09wdGlvbmFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IHR5cGUge1xuICBCYXNlRGF0YWJhc2VBZGFwdGVyLFxuICBCZWdpblRyYW5zYWN0aW9uLFxuICBDb21taXRUcmFuc2FjdGlvbixcbiAgUm9sbGJhY2tUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY3JlYXRlTWlncmF0aW9uIH0gZnJvbSAnLi9taWdyYXRpb25zL2NyZWF0ZU1pZ3JhdGlvbidcbmltcG9ydCB7IG1pZ3JhdGUgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZSdcbmltcG9ydCB7IG1pZ3JhdGVEb3duIH0gZnJvbSAnLi9taWdyYXRpb25zL21pZ3JhdGVEb3duJ1xuaW1wb3J0IHsgbWlncmF0ZVJlZnJlc2ggfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlZnJlc2gnXG5pbXBvcnQgeyBtaWdyYXRlUmVzZXQgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlc2V0J1xuaW1wb3J0IHsgbWlncmF0ZVN0YXR1cyB9IGZyb20gJy4vbWlncmF0aW9ucy9taWdyYXRlU3RhdHVzJ1xuXG5jb25zdCBiZWdpblRyYW5zYWN0aW9uOiBCZWdpblRyYW5zYWN0aW9uID0gYXN5bmMgKCkgPT4gbnVsbFxuY29uc3Qgcm9sbGJhY2tUcmFuc2FjdGlvbjogUm9sbGJhY2tUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+IG51bGxcbmNvbnN0IGNvbW1pdFRyYW5zYWN0aW9uOiBDb21taXRUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9jcmVhdGVEYXRhYmFzZUFkYXB0ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB0eXBlIHsgTWFya09wdGlvbmFsIH0gZnJvbSAndHMtZXNzZW50aWFscydcblxuaW1wb3J0IHR5cGUge1xuICBCYXNlRGF0YWJhc2VBZGFwdGVyLFxuICBCZWdpblRyYW5zYWN0aW9uLFxuICBDb21taXRUcmFuc2FjdGlvbixcbiAgUm9sbGJhY2tUcmFuc2FjdGlvbixcbn0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY3JlYXRlTWlncmF0aW9uIH0gZnJvbSAnLi9taWdyYXRpb25zL2NyZWF0ZU1pZ3JhdGlvbidcbmltcG9ydCB7IG1pZ3JhdGUgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZSdcbmltcG9ydCB7IG1pZ3JhdGVEb3duIH0gZnJvbSAnLi9taWdyYXRpb25zL21pZ3JhdGVEb3duJ1xuaW1wb3J0IHsgbWlncmF0ZVJlZnJlc2ggfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlZnJlc2gnXG5pbXBvcnQgeyBtaWdyYXRlUmVzZXQgfSBmcm9tICcuL21pZ3JhdGlvbnMvbWlncmF0ZVJlc2V0J1xuaW1wb3J0IHsgbWlncmF0ZVN0YXR1cyB9IGZyb20gJy4vbWlncmF0aW9ucy9taWdyYXRlU3RhdHVzJ1xuXG5jb25zdCBiZWdpblRyYW5zYWN0aW9uOiBCZWdpblRyYW5zYWN0aW9uID0gYXN5bmMgKCkgPT4gbnVsbFxuY29uc3Qgcm9sbGJhY2tUcmFuc2FjdGlvbjogUm9sbGJhY2tUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+IG51bGxcbmNvbnN0IGNvbW1pdFRyYW5zYWN0aW9uOiBDb21taXRUcmFuc2FjdGlvbiA9IGFzeW5jICgpID0+IG51bGxcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURhdGFiYXNlQWRhcHRlcjxUIGV4dGVuZHMgQmFzZURhdGFiYXNlQWRhcHRlcj4oXG4gIGFyZ3M6IE1hcmtPcHRpb25hbDxcbiAgICBULFxuICAgIHwgJ2NyZWF0ZU1pZ3JhdGlvbidcbiAgICB8ICdtaWdyYXRlJ1xuICAgIHwgJ21pZ3JhdGVEb3duJ1xuICAgIHwgJ21pZ3JhdGVGcmVzaCdcbiAgICB8ICdtaWdyYXRlUmVmcmVzaCdcbiAgICB8ICdtaWdyYXRlUmVzZXQnXG4gICAgfCAnbWlncmF0ZVN0YXR1cydcbiAgICB8ICdtaWdyYXRpb25EaXInXG4gID4sXG4pOiBUIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBEZWZhdWx0ICdudWxsJyB0cmFuc2FjdGlvbiBmdW5jdGlvbnNcbiAgICBiZWdpblRyYW5zYWN0aW9uLFxuICAgIGNvbW1pdFRyYW5zYWN0aW9uLFxuICAgIGNyZWF0ZU1pZ3JhdGlvbixcbiAgICBtaWdyYXRlLFxuICAgIG1pZ3JhdGVEb3duLFxuICAgIG1pZ3JhdGVGcmVzaDogYXN5bmMgKHsgZm9yY2VBY2NlcHRXYXJuaW5nID0gbnVsbCB9KSA9PiBudWxsLFxuICAgIG1pZ3JhdGVSZWZyZXNoLFxuICAgIG1pZ3JhdGVSZXNldCxcbiAgICBtaWdyYXRlU3RhdHVzLFxuICAgIHJvbGxiYWNrVHJhbnNhY3Rpb24sXG5cbiAgICAuLi5hcmdzLFxuXG4gICAgLy8gRW5zdXJlIG1pZ3JhdGlvbkRpciBpcyBzZXRcbiAgICBtaWdyYXRpb25EaXI6IGFyZ3MubWlncmF0aW9uRGlyIHx8ICdtaWdyYXRpb25zJyxcbiAgfSBhcyBUXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlTWlncmF0aW9uIiwibWlncmF0ZSIsIm1pZ3JhdGVEb3duIiwibWlncmF0ZVJlZnJlc2giLCJtaWdyYXRlUmVzZXQiLCJtaWdyYXRlU3RhdHVzIiwiYmVnaW5UcmFuc2FjdGlvbiIsInJvbGxiYWNrVHJhbnNhY3Rpb24iLCJjb21taXRUcmFuc2FjdGlvbiIsImNyZWF0ZURhdGFiYXNlQWRhcHRlciIsImFyZ3MiLCJtaWdyYXRlRnJlc2giLCJmb3JjZUFjY2VwdFdhcm5pbmciLCJtaWdyYXRpb25EaXIiXSwibWFwcGluZ3MiOiJBQUFBLG9DQUFvQyxHQVVwQyxTQUFTQSxlQUFlLFFBQVEsK0JBQThCO0FBQzlELFNBQVNDLE9BQU8sUUFBUSx1QkFBc0I7QUFDOUMsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUN0RCxTQUFTQyxjQUFjLFFBQVEsOEJBQTZCO0FBQzVELFNBQVNDLFlBQVksUUFBUSw0QkFBMkI7QUFDeEQsU0FBU0MsYUFBYSxRQUFRLDZCQUE0QjtBQUUxRCxNQUFNQyxtQkFBcUMsVUFBWTtBQUN2RCxNQUFNQyxzQkFBMkMsVUFBWTtBQUM3RCxNQUFNQyxvQkFBdUMsVUFBWTtBQUV6RCxPQUFPLFNBQVNDLHNCQUNkQyxJQVVDO0lBRUQsT0FBTztRQUNMLHVDQUF1QztRQUN2Q0o7UUFDQUU7UUFDQVI7UUFDQUM7UUFDQUM7UUFDQVMsY0FBYyxPQUFPLEVBQUVDLHFCQUFxQixJQUFJLEVBQUUsR0FBSztRQUN2RFQ7UUFDQUM7UUFDQUM7UUFDQUU7UUFFQSxHQUFHRyxJQUFJO1FBRVAsNkJBQTZCO1FBQzdCRyxjQUFjSCxLQUFLRyxZQUFZLElBQUk7SUFDckM7QUFDRiJ9
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
1
|
// Take a where query and flatten it to all top-level operators
|
|
12
2
|
const flattenWhereToOperators = (query)=>Object.entries(query).reduce((flattenedConstraints, [key, val])=>{
|
|
13
3
|
if ((key === 'and' || key === 'or') && Array.isArray(val)) {
|
|
@@ -26,6 +16,6 @@ const flattenWhereToOperators = (query)=>Object.entries(query).reduce((flattened
|
|
|
26
16
|
val
|
|
27
17
|
];
|
|
28
18
|
}, []);
|
|
29
|
-
|
|
19
|
+
export default flattenWhereToOperators;
|
|
30
20
|
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9mbGF0dGVuV2hlcmVUb09wZXJhdG9ycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlLCBXaGVyZUZpZWxkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vIFRha2UgYSB3aGVyZSBxdWVyeSBhbmQgZmxhdHRlbiBpdCB0byBhbGwgdG9wLWxldmVsIG9wZXJhdG9yc1xuY29uc3QgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMgPSAocXVlcnk6IFdoZXJlKTogV2hlcmVGaWVsZFtdID0+
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9mbGF0dGVuV2hlcmVUb09wZXJhdG9ycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdoZXJlLCBXaGVyZUZpZWxkIH0gZnJvbSAnLi4vdHlwZXMnXG5cbi8vIFRha2UgYSB3aGVyZSBxdWVyeSBhbmQgZmxhdHRlbiBpdCB0byBhbGwgdG9wLWxldmVsIG9wZXJhdG9yc1xuY29uc3QgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnMgPSAocXVlcnk6IFdoZXJlKTogV2hlcmVGaWVsZFtdID0+XG4gIE9iamVjdC5lbnRyaWVzKHF1ZXJ5KS5yZWR1Y2UoKGZsYXR0ZW5lZENvbnN0cmFpbnRzLCBba2V5LCB2YWxdKSA9PiB7XG4gICAgaWYgKChrZXkgPT09ICdhbmQnIHx8IGtleSA9PT0gJ29yJykgJiYgQXJyYXkuaXNBcnJheSh2YWwpKSB7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAuLi5mbGF0dGVuZWRDb25zdHJhaW50cyxcbiAgICAgICAgLi4udmFsLnJlZHVjZSgoc3ViVmFscywgc3ViVmFsKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIFsuLi5zdWJWYWxzLCAuLi5mbGF0dGVuV2hlcmVUb09wZXJhdG9ycyhzdWJWYWwpXVxuICAgICAgICB9LCBbXSksXG4gICAgICBdXG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi5mbGF0dGVuZWRDb25zdHJhaW50cywgdmFsXVxuICB9LCBbXSlcblxuZXhwb3J0IGRlZmF1bHQgZmxhdHRlbldoZXJlVG9PcGVyYXRvcnNcbiJdLCJuYW1lcyI6WyJmbGF0dGVuV2hlcmVUb09wZXJhdG9ycyIsInF1ZXJ5IiwiT2JqZWN0IiwiZW50cmllcyIsInJlZHVjZSIsImZsYXR0ZW5lZENvbnN0cmFpbnRzIiwia2V5IiwidmFsIiwiQXJyYXkiLCJpc0FycmF5Iiwic3ViVmFscyIsInN1YlZhbCJdLCJtYXBwaW5ncyI6IkFBRUEsK0RBQStEO0FBQy9ELE1BQU1BLDBCQUEwQixDQUFDQyxRQUMvQkMsT0FBT0MsT0FBTyxDQUFDRixPQUFPRyxNQUFNLENBQUMsQ0FBQ0Msc0JBQXNCLENBQUNDLEtBQUtDLElBQUk7UUFDNUQsSUFBSSxBQUFDRCxDQUFBQSxRQUFRLFNBQVNBLFFBQVEsSUFBRyxLQUFNRSxNQUFNQyxPQUFPLENBQUNGLE1BQU07WUFDekQsT0FBTzttQkFDRkY7bUJBQ0FFLElBQUlILE1BQU0sQ0FBQyxDQUFDTSxTQUFTQztvQkFDdEIsT0FBTzsyQkFBSUQ7MkJBQVlWLHdCQUF3Qlc7cUJBQVE7Z0JBQ3pELEdBQUcsRUFBRTthQUNOO1FBQ0g7UUFFQSxPQUFPO2VBQUlOO1lBQXNCRTtTQUFJO0lBQ3ZDLEdBQUcsRUFBRTtBQUVQLGVBQWVQLHdCQUF1QiJ9
|
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "getLocalizedPaths", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return getLocalizedPaths;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _types = require("../fields/config/types");
|
|
12
|
-
const _flattenTopLevelFields = /*#__PURE__*/ _interop_require_default(require("../utilities/flattenTopLevelFields"));
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingPath, locale, overrideAccess = false, payload }) {
|
|
1
|
+
import { fieldAffectsData } from '../fields/config/types';
|
|
2
|
+
import flattenFields from '../utilities/flattenTopLevelFields';
|
|
3
|
+
export async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingPath, locale, overrideAccess = false, payload }) {
|
|
19
4
|
const pathSegments = incomingPath.split('.');
|
|
20
5
|
const localizationConfig = payload.config.localization;
|
|
21
6
|
let paths = [
|
|
@@ -23,7 +8,7 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
|
|
|
23
8
|
collectionSlug,
|
|
24
9
|
complete: false,
|
|
25
10
|
field: undefined,
|
|
26
|
-
fields: (
|
|
11
|
+
fields: flattenFields(fields, false),
|
|
27
12
|
globalSlug,
|
|
28
13
|
invalid: false,
|
|
29
14
|
path: ''
|
|
@@ -35,7 +20,7 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
|
|
|
35
20
|
if (lastIncompletePath) {
|
|
36
21
|
const { path } = lastIncompletePath;
|
|
37
22
|
let currentPath = path ? `${path}.${segment}` : segment;
|
|
38
|
-
const matchedField = lastIncompletePath.fields.find((field)=>
|
|
23
|
+
const matchedField = lastIncompletePath.fields.find((field)=>fieldAffectsData(field) && field.name === segment);
|
|
39
24
|
lastIncompletePath.field = matchedField;
|
|
40
25
|
if (currentPath === 'globalType' && globalSlug) {
|
|
41
26
|
lastIncompletePath.path = currentPath;
|
|
@@ -123,7 +108,7 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
|
|
|
123
108
|
default:
|
|
124
109
|
{
|
|
125
110
|
if ('fields' in lastIncompletePath.field) {
|
|
126
|
-
lastIncompletePath.fields = (
|
|
111
|
+
lastIncompletePath.fields = flattenFields(lastIncompletePath.field.fields, false);
|
|
127
112
|
}
|
|
128
113
|
if (i + 1 === pathSegments.length) lastIncompletePath.complete = true;
|
|
129
114
|
lastIncompletePath.path = currentPath;
|
|
@@ -139,4 +124,4 @@ async function getLocalizedPaths({ collectionSlug, fields, globalSlug, incomingP
|
|
|
139
124
|
return paths;
|
|
140
125
|
}
|
|
141
126
|
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9nZXRMb2NhbGl6ZWRQYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLidcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXRoVG9RdWVyeSB9IGZyb20gJy4vcXVlcnlWYWxpZGF0aW9uL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBmbGF0dGVuRmllbGRzIGZyb20gJy4uL3V0aWxpdGllcy9mbGF0dGVuVG9wTGV2ZWxGaWVsZHMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMb2NhbGl6ZWRQYXRocyh7XG4gIGNvbGxlY3Rpb25TbHVnLFxuICBmaWVsZHMsXG4gIGdsb2JhbFNsdWcsXG4gIGluY29taW5nUGF0aCxcbiAgbG9jYWxlLFxuICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICBwYXlsb2FkLFxufToge1xuICBjb2xsZWN0aW9uU2x1Zz86IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBpbmNvbWluZ1BhdGg6IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIHBheWxvYWQ6IFBheWxvYWRcbn0pOiBQcm9taXNlPFBhdGhUb1F1ZXJ5W10+IHtcbiAgY29uc3QgcGF0aFNlZ21lbnRzID0gaW5jb21pbmdQYXRoLnNwbGl0KCcuJylcbiAgY29uc3QgbG9jYWxpemF0aW9uQ29uZmlnID0gcGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG5cbiAgbGV0IHBhdGhzOiBQYXRoVG9RdWVyeVtdID0gW1xuICAgIHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgY29tcGxldGU6IGZhbHNlLFxuICAgICAgZmllbGQ6IHVuZGVmaW5lZCxcbiAgICAgIGZpZWxkczogZmxhdHRlbkZpZWxkcyhmaWVsZHMsIGZhbHNlKSxcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBpbnZhbGlkOiBmYWxzZSxcbiAgICAgIHBhdGg6ICcnLFxuICAgIH0sXG4gIF1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBwYXRoU2VnbWVudHNbaV1cblxuICAgIGNvbnN0IGxhc3RJbmNvbXBsZXRlUGF0aCA9IHBhdGhzLmZpbmQoKHsgY29tcGxldGUgfSkgPT4gIWNvbXBsZXRlKVxuXG4gICAgaWYgKGxhc3RJbmNvbXBsZXRlUGF0aCkge1xuICAgICAgY29uc3QgeyBwYXRoIH0gPSBsYXN0SW5jb21wbGV0ZVBhdGhcbiAgICAgIGxldCBjdXJyZW50UGF0aCA9IHBhdGggPyBgJHtwYXRofS4ke3NlZ21lbnR9YCA6IHNlZ21lbnRcblxuICAgICAgY29uc3QgbWF0Y2hlZEZpZWxkID0gbGFzdEluY29tcGxldGVQYXRoLmZpZWxkcy5maW5kKFxuICAgICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09IHNlZ21lbnQsXG4gICAgICApXG4gICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQgPSBtYXRjaGVkRmllbGRcblxuICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSAnZ2xvYmFsVHlwZScgJiYgZ2xvYmFsU2x1Zykge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0ge1xuICAgICAgICAgIG5hbWU6ICdnbG9iYWxUeXBlJyxcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXRjaGVkRmllbGQgJiYgY3VycmVudFBhdGggPT09ICdpZCcgJiYgaSA9PT0gcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICBjb25zdCBpZEZpZWxkOiBGaWVsZCA9IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICAgIH1cbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0gaWRGaWVsZFxuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgIHJldHVybiBwYXRoc1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZEZpZWxkKSB7XG4gICAgICAgIGlmICgnaGlkZGVuJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmhpZGRlbiAmJiAhb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRTZWdtZW50ID0gcGF0aFNlZ21lbnRzW2kgKyAxXVxuICAgICAgICBjb25zdCBuZXh0U2VnbWVudElzTG9jYWxlID1cbiAgICAgICAgICBsb2NhbGl6YXRpb25Db25maWcgJiYgbG9jYWxpemF0aW9uQ29uZmlnLmxvY2FsZUNvZGVzLmluY2x1ZGVzKG5leHRTZWdtZW50KVxuXG4gICAgICAgIGlmIChuZXh0U2VnbWVudElzTG9jYWxlKSB7XG4gICAgICAgICAgLy8gU2tpcCB0aGUgbmV4dCBpdGVyYXRpb24sIGJlY2F1c2UgaXQncyBhIGxvY2FsZVxuICAgICAgICAgIGkgKz0gMVxuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bmV4dFNlZ21lbnR9YFxuICAgICAgICB9IGVsc2UgaWYgKGxvY2FsaXphdGlvbkNvbmZpZyAmJiAnbG9jYWxpemVkJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bG9jYWxlfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAobWF0Y2hlZEZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdibG9ja3MnOlxuICAgICAgICAgIGNhc2UgJ3JpY2hUZXh0JzpcbiAgICAgICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICAgICAgY29uc3QgdXBjb21pbmdTZWdtZW50cyA9IHBhdGhTZWdtZW50cy5zbGljZShpICsgMSkuam9pbignLicpXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHVwY29taW5nU2VnbWVudHNcbiAgICAgICAgICAgICAgPyBgJHtjdXJyZW50UGF0aH0uJHt1cGNvbWluZ1NlZ21lbnRzfWBcbiAgICAgICAgICAgICAgOiBjdXJyZW50UGF0aFxuICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcG9seW1vcnBoaWMgcmVsYXRpb24sXG4gICAgICAgICAgICAvLyBXZSBvbmx5IHN1cHBvcnQgcXVlcnlpbmcgZGlyZWN0bHkgKG5vIG5lc3RlZCBxdWVyeWluZylcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF0Y2hlZEZpZWxkLnJlbGF0aW9uVG8gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxhc3RTZWdtZW50SXNWYWxpZCA9XG4gICAgICAgICAgICAgICAgWydyZWxhdGlvblRvJywgJ3ZhbHVlJ10uaW5jbHVkZXMocGF0aFNlZ21lbnRzW3BhdGhTZWdtZW50cy5sZW5ndGggLSAxXSkgfHxcbiAgICAgICAgICAgICAgICBwYXRoU2VnbWVudHMubGVuZ3RoID09PSAxXG5cbiAgICAgICAgICAgICAgaWYgKGxhc3RTZWdtZW50SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHBhdGhTZWdtZW50cy5qb2luKCcuJylcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmNvbXBsZXRlID0gdHJ1ZVxuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG5cbiAgICAgICAgICAgICAgY29uc3QgbmVzdGVkUGF0aFRvUXVlcnkgPSBwYXRoU2VnbWVudHNcbiAgICAgICAgICAgICAgICAuc2xpY2UobmV4dFNlZ21lbnRJc0xvY2FsZSA/IGkgKyAyIDogaSArIDEpXG4gICAgICAgICAgICAgICAgLmpvaW4oJy4nKVxuXG4gICAgICAgICAgICAgIGlmIChuZXN0ZWRQYXRoVG9RdWVyeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcGF5bG9hZC5jb2xsZWN0aW9uc1ttYXRjaGVkRmllbGQucmVsYXRpb25Ub10uY29uZmlnXG5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1BhdGhzID0gYXdhaXQgZ2V0TG9jYWxpemVkUGF0aHMoe1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWc6IHJlbGF0ZWRDb2xsZWN0aW9uLnNsdWcsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgICAgICAgICAgICBpbmNvbWluZ1BhdGg6IG5lc3RlZFBhdGhUb1F1ZXJ5LFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcGF0aHMgPSBbLi4ucGF0aHMsIC4uLnJlbWFpbmluZ1BhdGhzXVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgaWYgKCdmaWVsZHMnIGluIGxhc3RJbmNvbXBsZXRlUGF0aC5maWVsZCkge1xuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGRzID0gZmxhdHRlbkZpZWxkcyhsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQuZmllbGRzLCBmYWxzZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGkgKyAxID09PSBwYXRoU2VnbWVudHMubGVuZ3RoKSBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGF0aHNcbn1cbiJdLCJuYW1lcyI6WyJnZXRMb2NhbGl6ZWRQYXRocyIsImNvbGxlY3Rpb25TbHVnIiwiZmllbGRzIiwiZ2xvYmFsU2x1ZyIsImluY29taW5nUGF0aCIsImxvY2FsZSIsIm92ZXJyaWRlQWNjZXNzIiwicGF5bG9hZCIsInBhdGhTZWdtZW50cyIsInNwbGl0IiwibG9jYWxpemF0aW9uQ29uZmlnIiwiY29uZmlnIiwibG9jYWxpemF0aW9uIiwicGF0aHMiLCJjb21wbGV0ZSIsImZpZWxkIiwidW5kZWZpbmVkIiwiZmxhdHRlbkZpZWxkcyIsImludmFsaWQiLCJwYXRoIiwiaSIsImxlbmd0aCIsInNlZ21lbnQiLCJsYXN0SW5jb21wbGV0ZVBhdGgiLCJmaW5kIiwiY3VycmVudFBhdGgiLCJtYXRjaGVkRmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJpZEZpZWxkIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiaGlkZGVuIiwibmV4dFNlZ21lbnQiLCJuZXh0U2VnbWVudElzTG9jYWxlIiwibG9jYWxlQ29kZXMiLCJpbmNsdWRlcyIsImxvY2FsaXplZCIsInVwY29taW5nU2VnbWVudHMiLCJzbGljZSIsImpvaW4iLCJyZWxhdGlvblRvIiwibGFzdFNlZ21lbnRJc1ZhbGlkIiwibmVzdGVkUGF0aFRvUXVlcnkiLCJyZWxhdGVkQ29sbGVjdGlvbiIsImNvbGxlY3Rpb25zIiwicmVtYWluaW5nUGF0aHMiLCJzbHVnIl0sIm1hcHBpbmdzIjoiOzs7OytCQU9zQkE7OztlQUFBQTs7O3VCQUhXOzhFQUNQOzs7Ozs7QUFFbkIsZUFBZUEsa0JBQWtCLEVBQ3RDQyxjQUFjLEVBQ2RDLE1BQU0sRUFDTkMsVUFBVSxFQUNWQyxZQUFZLEVBQ1pDLE1BQU0sRUFDTkMsaUJBQWlCLEtBQUssRUFDdEJDLE9BQU8sRUFTUjtJQUNDLE1BQU1D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
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhYmFzZS9nZXRMb2NhbGl6ZWRQYXRocy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLidcbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXRoVG9RdWVyeSB9IGZyb20gJy4vcXVlcnlWYWxpZGF0aW9uL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCBmbGF0dGVuRmllbGRzIGZyb20gJy4uL3V0aWxpdGllcy9mbGF0dGVuVG9wTGV2ZWxGaWVsZHMnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMb2NhbGl6ZWRQYXRocyh7XG4gIGNvbGxlY3Rpb25TbHVnLFxuICBmaWVsZHMsXG4gIGdsb2JhbFNsdWcsXG4gIGluY29taW5nUGF0aCxcbiAgbG9jYWxlLFxuICBvdmVycmlkZUFjY2VzcyA9IGZhbHNlLFxuICBwYXlsb2FkLFxufToge1xuICBjb2xsZWN0aW9uU2x1Zz86IHN0cmluZ1xuICBmaWVsZHM6IEZpZWxkW11cbiAgZ2xvYmFsU2x1Zz86IHN0cmluZ1xuICBpbmNvbWluZ1BhdGg6IHN0cmluZ1xuICBsb2NhbGU/OiBzdHJpbmdcbiAgb3ZlcnJpZGVBY2Nlc3M/OiBib29sZWFuXG4gIHBheWxvYWQ6IFBheWxvYWRcbn0pOiBQcm9taXNlPFBhdGhUb1F1ZXJ5W10+IHtcbiAgY29uc3QgcGF0aFNlZ21lbnRzID0gaW5jb21pbmdQYXRoLnNwbGl0KCcuJylcbiAgY29uc3QgbG9jYWxpemF0aW9uQ29uZmlnID0gcGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG5cbiAgbGV0IHBhdGhzOiBQYXRoVG9RdWVyeVtdID0gW1xuICAgIHtcbiAgICAgIGNvbGxlY3Rpb25TbHVnLFxuICAgICAgY29tcGxldGU6IGZhbHNlLFxuICAgICAgZmllbGQ6IHVuZGVmaW5lZCxcbiAgICAgIGZpZWxkczogZmxhdHRlbkZpZWxkcyhmaWVsZHMsIGZhbHNlKSxcbiAgICAgIGdsb2JhbFNsdWcsXG4gICAgICBpbnZhbGlkOiBmYWxzZSxcbiAgICAgIHBhdGg6ICcnLFxuICAgIH0sXG4gIF1cblxuICBmb3IgKGxldCBpID0gMDsgaSA8IHBhdGhTZWdtZW50cy5sZW5ndGg7IGkgKz0gMSkge1xuICAgIGNvbnN0IHNlZ21lbnQgPSBwYXRoU2VnbWVudHNbaV1cblxuICAgIGNvbnN0IGxhc3RJbmNvbXBsZXRlUGF0aCA9IHBhdGhzLmZpbmQoKHsgY29tcGxldGUgfSkgPT4gIWNvbXBsZXRlKVxuXG4gICAgaWYgKGxhc3RJbmNvbXBsZXRlUGF0aCkge1xuICAgICAgY29uc3QgeyBwYXRoIH0gPSBsYXN0SW5jb21wbGV0ZVBhdGhcbiAgICAgIGxldCBjdXJyZW50UGF0aCA9IHBhdGggPyBgJHtwYXRofS4ke3NlZ21lbnR9YCA6IHNlZ21lbnRcblxuICAgICAgY29uc3QgbWF0Y2hlZEZpZWxkID0gbGFzdEluY29tcGxldGVQYXRoLmZpZWxkcy5maW5kKFxuICAgICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09IHNlZ21lbnQsXG4gICAgICApXG4gICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQgPSBtYXRjaGVkRmllbGRcblxuICAgICAgaWYgKGN1cnJlbnRQYXRoID09PSAnZ2xvYmFsVHlwZScgJiYgZ2xvYmFsU2x1Zykge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0ge1xuICAgICAgICAgIG5hbWU6ICdnbG9iYWxUeXBlJyxcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cblxuICAgICAgaWYgKCFtYXRjaGVkRmllbGQgJiYgY3VycmVudFBhdGggPT09ICdpZCcgJiYgaSA9PT0gcGF0aFNlZ21lbnRzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICBjb25zdCBpZEZpZWxkOiBGaWVsZCA9IHtcbiAgICAgICAgICBuYW1lOiAnaWQnLFxuICAgICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICAgIH1cbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmZpZWxkID0gaWRGaWVsZFxuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgIHJldHVybiBwYXRoc1xuICAgICAgfVxuXG4gICAgICBpZiAobWF0Y2hlZEZpZWxkKSB7XG4gICAgICAgIGlmICgnaGlkZGVuJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmhpZGRlbiAmJiAhb3ZlcnJpZGVBY2Nlc3MpIHtcbiAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG5leHRTZWdtZW50ID0gcGF0aFNlZ21lbnRzW2kgKyAxXVxuICAgICAgICBjb25zdCBuZXh0U2VnbWVudElzTG9jYWxlID1cbiAgICAgICAgICBsb2NhbGl6YXRpb25Db25maWcgJiYgbG9jYWxpemF0aW9uQ29uZmlnLmxvY2FsZUNvZGVzLmluY2x1ZGVzKG5leHRTZWdtZW50KVxuXG4gICAgICAgIGlmIChuZXh0U2VnbWVudElzTG9jYWxlKSB7XG4gICAgICAgICAgLy8gU2tpcCB0aGUgbmV4dCBpdGVyYXRpb24sIGJlY2F1c2UgaXQncyBhIGxvY2FsZVxuICAgICAgICAgIGkgKz0gMVxuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bmV4dFNlZ21lbnR9YFxuICAgICAgICB9IGVsc2UgaWYgKGxvY2FsaXphdGlvbkNvbmZpZyAmJiAnbG9jYWxpemVkJyBpbiBtYXRjaGVkRmllbGQgJiYgbWF0Y2hlZEZpZWxkLmxvY2FsaXplZCkge1xuICAgICAgICAgIGN1cnJlbnRQYXRoID0gYCR7Y3VycmVudFBhdGh9LiR7bG9jYWxlfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAobWF0Y2hlZEZpZWxkLnR5cGUpIHtcbiAgICAgICAgICBjYXNlICdibG9ja3MnOlxuICAgICAgICAgIGNhc2UgJ3JpY2hUZXh0JzpcbiAgICAgICAgICBjYXNlICdqc29uJzoge1xuICAgICAgICAgICAgY29uc3QgdXBjb21pbmdTZWdtZW50cyA9IHBhdGhTZWdtZW50cy5zbGljZShpICsgMSkuam9pbignLicpXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHVwY29taW5nU2VnbWVudHNcbiAgICAgICAgICAgICAgPyBgJHtjdXJyZW50UGF0aH0uJHt1cGNvbWluZ1NlZ21lbnRzfWBcbiAgICAgICAgICAgICAgOiBjdXJyZW50UGF0aFxuICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcG9seW1vcnBoaWMgcmVsYXRpb24sXG4gICAgICAgICAgICAvLyBXZSBvbmx5IHN1cHBvcnQgcXVlcnlpbmcgZGlyZWN0bHkgKG5vIG5lc3RlZCBxdWVyeWluZylcbiAgICAgICAgICAgIGlmICh0eXBlb2YgbWF0Y2hlZEZpZWxkLnJlbGF0aW9uVG8gIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxhc3RTZWdtZW50SXNWYWxpZCA9XG4gICAgICAgICAgICAgICAgWydyZWxhdGlvblRvJywgJ3ZhbHVlJ10uaW5jbHVkZXMocGF0aFNlZ21lbnRzW3BhdGhTZWdtZW50cy5sZW5ndGggLSAxXSkgfHxcbiAgICAgICAgICAgICAgICBwYXRoU2VnbWVudHMubGVuZ3RoID09PSAxXG5cbiAgICAgICAgICAgICAgaWYgKGxhc3RTZWdtZW50SXNWYWxpZCkge1xuICAgICAgICAgICAgICAgIGxhc3RJbmNvbXBsZXRlUGF0aC5jb21wbGV0ZSA9IHRydWVcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IHBhdGhTZWdtZW50cy5qb2luKCcuJylcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLmNvbXBsZXRlID0gdHJ1ZVxuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG5cbiAgICAgICAgICAgICAgY29uc3QgbmVzdGVkUGF0aFRvUXVlcnkgPSBwYXRoU2VnbWVudHNcbiAgICAgICAgICAgICAgICAuc2xpY2UobmV4dFNlZ21lbnRJc0xvY2FsZSA/IGkgKyAyIDogaSArIDEpXG4gICAgICAgICAgICAgICAgLmpvaW4oJy4nKVxuXG4gICAgICAgICAgICAgIGlmIChuZXN0ZWRQYXRoVG9RdWVyeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcGF5bG9hZC5jb2xsZWN0aW9uc1ttYXRjaGVkRmllbGQucmVsYXRpb25Ub10uY29uZmlnXG5cbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tYXdhaXQtaW4tbG9vcFxuICAgICAgICAgICAgICAgIGNvbnN0IHJlbWFpbmluZ1BhdGhzID0gYXdhaXQgZ2V0TG9jYWxpemVkUGF0aHMoe1xuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvblNsdWc6IHJlbGF0ZWRDb2xsZWN0aW9uLnNsdWcsXG4gICAgICAgICAgICAgICAgICBmaWVsZHM6IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGdsb2JhbFNsdWcsXG4gICAgICAgICAgICAgICAgICBpbmNvbWluZ1BhdGg6IG5lc3RlZFBhdGhUb1F1ZXJ5LFxuICAgICAgICAgICAgICAgICAgbG9jYWxlLFxuICAgICAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgICAgICB9KVxuXG4gICAgICAgICAgICAgICAgcGF0aHMgPSBbLi4ucGF0aHMsIC4uLnJlbWFpbmluZ1BhdGhzXVxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcmV0dXJuIHBhdGhzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgZGVmYXVsdDoge1xuICAgICAgICAgICAgaWYgKCdmaWVsZHMnIGluIGxhc3RJbmNvbXBsZXRlUGF0aC5maWVsZCkge1xuICAgICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguZmllbGRzID0gZmxhdHRlbkZpZWxkcyhsYXN0SW5jb21wbGV0ZVBhdGguZmllbGQuZmllbGRzLCBmYWxzZSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGkgKyAxID09PSBwYXRoU2VnbWVudHMubGVuZ3RoKSBsYXN0SW5jb21wbGV0ZVBhdGguY29tcGxldGUgPSB0cnVlXG4gICAgICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGgucGF0aCA9IGN1cnJlbnRQYXRoXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsYXN0SW5jb21wbGV0ZVBhdGguaW52YWxpZCA9IHRydWVcbiAgICAgICAgbGFzdEluY29tcGxldGVQYXRoLnBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICByZXR1cm4gcGF0aHNcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGF0aHNcbn1cbiJdLCJuYW1lcyI6WyJmaWVsZEFmZmVjdHNEYXRhIiwiZmxhdHRlbkZpZWxkcyIsImdldExvY2FsaXplZFBhdGhzIiwiY29sbGVjdGlvblNsdWciLCJmaWVsZHMiLCJnbG9iYWxTbHVnIiwiaW5jb21pbmdQYXRoIiwibG9jYWxlIiwib3ZlcnJpZGVBY2Nlc3MiLCJwYXlsb2FkIiwicGF0aFNlZ21lbnRzIiwic3BsaXQiLCJsb2NhbGl6YXRpb25Db25maWciLCJjb25maWciLCJsb2NhbGl6YXRpb24iLCJwYXRocyIsImNvbXBsZXRlIiwiZmllbGQiLCJ1bmRlZmluZWQiLCJpbnZhbGlkIiwicGF0aCIsImkiLCJsZW5ndGgiLCJzZWdtZW50IiwibGFzdEluY29tcGxldGVQYXRoIiwiZmluZCIsImN1cnJlbnRQYXRoIiwibWF0Y2hlZEZpZWxkIiwibmFtZSIsInR5cGUiLCJpZEZpZWxkIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiaGlkZGVuIiwibmV4dFNlZ21lbnQiLCJuZXh0U2VnbWVudElzTG9jYWxlIiwibG9jYWxlQ29kZXMiLCJpbmNsdWRlcyIsImxvY2FsaXplZCIsInVwY29taW5nU2VnbWVudHMiLCJzbGljZSIsImpvaW4iLCJyZWxhdGlvblRvIiwibGFzdFNlZ21lbnRJc1ZhbGlkIiwibmVzdGVkUGF0aFRvUXVlcnkiLCJyZWxhdGVkQ29sbGVjdGlvbiIsImNvbGxlY3Rpb25zIiwicmVtYWluaW5nUGF0aHMiLCJzbHVnIl0sIm1hcHBpbmdzIjoiQUFJQSxTQUFTQSxnQkFBZ0IsUUFBUSx5QkFBd0I7QUFDekQsT0FBT0MsbUJBQW1CLHFDQUFvQztBQUU5RCxPQUFPLGVBQWVDLGtCQUFrQixFQUN0Q0MsY0FBYyxFQUNkQyxNQUFNLEVBQ05DLFVBQVUsRUFDVkMsWUFBWSxFQUNaQyxNQUFNLEVBQ05DLGlCQUFpQixLQUFLLEVBQ3RCQyxPQUFPLEVBU1I7SUFDQyxNQUFNQyxlQUFlSixhQUFhSyxLQUFLLENBQUM7SUFDeEMsTUFBTUMscUJBQXFCSCxRQUFRSSxNQUFNLENBQUNDLFlBQVk7SUFFdEQsSUFBSUMsUUFBdUI7UUFDekI7WUFDRVo7WUFDQWEsVUFBVTtZQUNWQyxPQUFPQztZQUNQZCxRQUFRSCxjQUFjRyxRQUFRO1lBQzlCQztZQUNBYyxTQUFTO1lBQ1RDLE1BQU07UUFDUjtLQUNEO0lBRUQsSUFBSyxJQUFJQyxJQUFJLEdBQUdBLElBQUlYLGFBQWFZLE1BQU0sRUFBRUQsS0FBSyxFQUFHO1FBQy9DLE1BQU1FLFVBQVViLFlBQVksQ0FBQ1csRUFBRTtRQUUvQixNQUFNRyxxQkFBcUJULE1BQU1VLElBQUksQ0FBQyxDQUFDLEVBQUVULFFBQVEsRUFBRSxHQUFLLENBQUNBO1FBRXpELElBQUlRLG9CQUFvQjtZQUN0QixNQUFNLEVBQUVKLElBQUksRUFBRSxHQUFHSTtZQUNqQixJQUFJRSxjQUFjTixPQUFPLENBQUMsRUFBRUEsS0FBSyxDQUFDLEVBQUVHLFFBQVEsQ0FBQyxHQUFHQTtZQUVoRCxNQUFNSSxlQUFlSCxtQkFBbUJwQixNQUFNLENBQUNxQixJQUFJLENBQ2pELENBQUNSLFFBQVVqQixpQkFBaUJpQixVQUFVQSxNQUFNVyxJQUFJLEtBQUtMO1lBRXZEQyxtQkFBbUJQLEtBQUssR0FBR1U7WUFFM0IsSUFBSUQsZ0JBQWdCLGdCQUFnQnJCLFlBQVk7Z0JBQzlDbUIsbUJBQW1CSixJQUFJLEdBQUdNO2dCQUMxQkYsbUJBQW1CUixRQUFRLEdBQUc7Z0JBQzlCUSxtQkFBbUJQLEtBQUssR0FBRztvQkFDekJXLE1BQU07b0JBQ05DLE1BQU07Z0JBQ1I7Z0JBRUEsT0FBT2Q7WUFDVDtZQUVBLElBQUksQ0FBQ1ksZ0JBQWdCRCxnQkFBZ0IsUUFBUUwsTUFBTVgsYUFBYVksTUFBTSxHQUFHLEdBQUc7Z0JBQzFFRSxtQkFBbUJKLElBQUksR0FBR007Z0JBQzFCLE1BQU1JLFVBQWlCO29CQUNyQkYsTUFBTTtvQkFDTkMsTUFBTXBCLFFBQVFzQixFQUFFLENBQUNDLGFBQWE7Z0JBQ2hDO2dCQUNBUixtQkFBbUJQLEtBQUssR0FBR2E7Z0JBQzNCTixtQkFBbUJSLFFBQVEsR0FBRztnQkFDOUIsT0FBT0Q7WUFDVDtZQUVBLElBQUlZLGNBQWM7Z0JBQ2hCLElBQUksWUFBWUEsZ0JBQWdCQSxhQUFhTSxNQUFNLElBQUksQ0FBQ3pCLGdCQUFnQjtvQkFDdEVnQixtQkFBbUJMLE9BQU8sR0FBRztnQkFDL0I7Z0JBRUEsTUFBTWUsY0FBY3hCLFlBQVksQ0FBQ1csSUFBSSxFQUFFO2dCQUN2QyxNQUFNYyxzQkFDSnZCLHNCQUFzQkEsbUJBQW1Cd0IsV0FBVyxDQUFDQyxRQUFRLENBQUNIO2dCQUVoRSxJQUFJQyxxQkFBcUI7b0JBQ3ZCLGlEQUFpRDtvQkFDakRkLEtBQUs7b0JBQ0xLLGNBQWMsQ0FBQyxFQUFFQSxZQUFZLENBQUMsRUFBRVEsWUFBWSxDQUFDO2dCQUMvQyxPQUFPLElBQUl0QixzQkFBc0IsZUFBZWUsZ0JBQWdCQSxhQUFhVyxTQUFTLEVBQUU7b0JBQ3RGWixjQUFjLENBQUMsRUFBRUEsWUFBWSxDQUFDLEVBQUVuQixPQUFPLENBQUM7Z0JBQzFDO2dCQUVBLE9BQVFvQixhQUFhRSxJQUFJO29CQUN2QixLQUFLO29CQUNMLEtBQUs7b0JBQ0wsS0FBSzt3QkFBUTs0QkFDWCxNQUFNVSxtQkFBbUI3QixhQUFhOEIsS0FBSyxDQUFDbkIsSUFBSSxHQUFHb0IsSUFBSSxDQUFDOzRCQUN4RGpCLG1CQUFtQlIsUUFBUSxHQUFHOzRCQUM5QlEsbUJBQW1CSixJQUFJLEdBQUdtQixtQkFDdEIsQ0FBQyxFQUFFYixZQUFZLENBQUMsRUFBRWEsaUJBQWlCLENBQUMsR0FDcENiOzRCQUNKLE9BQU9YO3dCQUNUO29CQUVBLEtBQUs7b0JBQ0wsS0FBSzt3QkFBVTs0QkFDYixxQ0FBcUM7NEJBQ3JDLHlEQUF5RDs0QkFDekQsSUFBSSxPQUFPWSxhQUFhZSxVQUFVLEtBQUssVUFBVTtnQ0FDL0MsTUFBTUMscUJBQ0o7b0NBQUM7b0NBQWM7aUNBQVEsQ0FBQ04sUUFBUSxDQUFDM0IsWUFBWSxDQUFDQSxhQUFhWSxNQUFNLEdBQUcsRUFBRSxLQUN0RVosYUFBYVksTUFBTSxLQUFLO2dDQUUxQixJQUFJcUIsb0JBQW9CO29DQUN0Qm5CLG1CQUFtQlIsUUFBUSxHQUFHO29DQUM5QlEsbUJBQW1CSixJQUFJLEdBQUdWLGFBQWErQixJQUFJLENBQUM7Z0NBQzlDLE9BQU87b0NBQ0xqQixtQkFBbUJMLE9BQU8sR0FBRztvQ0FDN0IsT0FBT0o7Z0NBQ1Q7NEJBQ0YsT0FBTztnQ0FDTFMsbUJBQW1CUixRQUFRLEdBQUc7Z0NBQzlCUSxtQkFBbUJKLElBQUksR0FBR007Z0NBRTFCLE1BQU1rQixvQkFBb0JsQyxhQUN2QjhCLEtBQUssQ0FBQ0wsc0JBQXNCZCxJQUFJLElBQUlBLElBQUksR0FDeENvQixJQUFJLENBQUM7Z0NBRVIsSUFBSUcsbUJBQW1CO29DQUNyQixNQUFNQyxvQkFBb0JwQyxRQUFRcUMsV0FBVyxDQUFDbkIsYUFBYWUsVUFBVSxDQUFDLENBQUM3QixNQUFNO29DQUU3RSw0Q0FBNEM7b0NBQzVDLE1BQU1rQyxpQkFBaUIsTUFBTTdDLGtCQUFrQjt3Q0FDN0NDLGdCQUFnQjBDLGtCQUFrQkcsSUFBSTt3Q0FDdEM1QyxRQUFReUMsa0JBQWtCekMsTUFBTTt3Q0FDaENDO3dDQUNBQyxjQUFjc0M7d0NBQ2RyQzt3Q0FDQUU7b0NBQ0Y7b0NBRUFNLFFBQVE7MkNBQUlBOzJDQUFVZ0M7cUNBQWU7Z0NBQ3ZDO2dDQUVBLE9BQU9oQzs0QkFDVDs0QkFFQTt3QkFDRjtvQkFFQTt3QkFBUzs0QkFDUCxJQUFJLFlBQVlTLG1CQUFtQlAsS0FBSyxFQUFFO2dDQUN4Q08sbUJBQW1CcEIsTUFBTSxHQUFHSCxjQUFjdUIsbUJBQW1CUCxLQUFLLENBQUNiLE1BQU0sRUFBRTs0QkFDN0U7NEJBRUEsSUFBSWlCLElBQUksTUFBTVgsYUFBYVksTUFBTSxFQUFFRSxtQkFBbUJSLFFBQVEsR0FBRzs0QkFDakVRLG1CQUFtQkosSUFBSSxHQUFHTTt3QkFDNUI7Z0JBQ0Y7WUFDRixPQUFPO2dCQUNMRixtQkFBbUJMLE9BQU8sR0FBRztnQkFDN0JLLG1CQUFtQkosSUFBSSxHQUFHTTtnQkFDMUIsT0FBT1g7WUFDVDtRQUNGO0lBQ0Y7SUFFQSxPQUFPQTtBQUNUIn0=
|