@nlabs/reaktor 1.19.0 → 1.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/lib/actions/alfredFaq.js +1 -1
- package/lib/actions/analytics.js +1 -1
- package/lib/actions/apps.js +1 -1
- package/lib/actions/connections.js +1 -1
- package/lib/actions/content.js +1 -1
- package/lib/actions/contentGeneration.js +1 -1
- package/lib/actions/contentGenerationErrors.js +1 -1
- package/lib/actions/conversations.js +1 -1
- package/lib/actions/crm.js +1 -1
- package/lib/actions/crud.js +1 -1
- package/lib/actions/databaseAccounts.js +1 -1
- package/lib/actions/databaseProvisioningLease.js +1 -1
- package/lib/actions/dynamodb.js +1 -1
- package/lib/actions/email.js +1 -1
- package/lib/actions/files.js +1 -1
- package/lib/actions/flags.js +1 -1
- package/lib/actions/geminiVideo.js +1 -1
- package/lib/actions/groups.js +1 -1
- package/lib/actions/higgsfield.js +1 -1
- package/lib/actions/imageGeneration.js +1 -1
- package/lib/actions/images.js +1 -1
- package/lib/actions/index.js +1 -1
- package/lib/actions/ios.js +1 -1
- package/lib/actions/locations.js +1 -1
- package/lib/actions/messages.js +1 -1
- package/lib/actions/notifications.js +1 -1
- package/lib/actions/ollamaGeneration.js +1 -1
- package/lib/actions/openaiResponseSession.js +1 -1
- package/lib/actions/payments.js +1 -1
- package/lib/actions/personas.js +1 -1
- package/lib/actions/phoneSupport.js +1 -1
- package/lib/actions/posts.js +1 -1
- package/lib/actions/query.js +1 -1
- package/lib/actions/reactions.js +1 -1
- package/lib/actions/rum.js +1 -1
- package/lib/actions/s3.d.ts +10 -7
- package/lib/actions/s3.js +59 -14
- package/lib/actions/search.js +1 -1
- package/lib/actions/sms.js +1 -1
- package/lib/actions/statistics.js +1 -1
- package/lib/actions/subscriptions.js +1 -1
- package/lib/actions/tags.js +1 -1
- package/lib/actions/users.js +1 -1
- package/lib/actions/videoGeneration.js +1 -1
- package/lib/actions/videos.js +1 -1
- package/lib/adapters/arangoAdapter.js +1 -1
- package/lib/adapters/contentAdapter.js +1 -1
- package/lib/adapters/fileAdapter.js +1 -1
- package/lib/adapters/geminiGenerationAdapter.js +1 -1
- package/lib/adapters/higgsfieldAdapter.js +1 -1
- package/lib/adapters/higgsfieldModelCatalog.js +1 -1
- package/lib/adapters/higgsfieldModels.js +1 -1
- package/lib/adapters/imageAdapter.js +1 -1
- package/lib/adapters/imageGenerationAdapter.js +1 -1
- package/lib/adapters/index.js +1 -1
- package/lib/adapters/messageAdapter.js +1 -1
- package/lib/adapters/postAdapter.js +1 -1
- package/lib/adapters/reaktorAdapter.js +1 -1
- package/lib/adapters/tagAdapter.js +1 -1
- package/lib/adapters/userAdapter.js +1 -1
- package/lib/assistant/core.js +1 -1
- package/lib/assistant/faq.js +1 -1
- package/lib/assistant/faqCore.js +1 -1
- package/lib/assistant/index.js +1 -1
- package/lib/assistant/service.js +1 -1
- package/lib/config.js +1 -1
- package/lib/constants/collections.js +1 -1
- package/lib/durableChat/conversations.js +1 -1
- package/lib/durableChat/errors.js +1 -1
- package/lib/durableChat/events.js +1 -1
- package/lib/durableChat/index.js +1 -1
- package/lib/durableChat/membership.js +1 -1
- package/lib/durableChat/messageTypes.js +1 -1
- package/lib/durableChat/messages.js +1 -1
- package/lib/durableChat/transaction.js +1 -1
- package/lib/durableChat/types.js +1 -1
- package/lib/handlers/graphqlHandler.js +1 -1
- package/lib/index.js +1 -1
- package/lib/lambdas/actions/websockets.js +1 -1
- package/lib/lambdas/authorizer.js +1 -1
- package/lib/lambdas/connection.js +1 -1
- package/lib/lambdas/utils/message.js +1 -1
- package/lib/lambdas/utils/websocket.js +1 -1
- package/lib/mocks/conversation.js +1 -1
- package/lib/mocks/file.js +1 -1
- package/lib/mocks/group.js +1 -1
- package/lib/mocks/image.js +1 -1
- package/lib/mocks/post.js +1 -1
- package/lib/mocks/tag.js +1 -1
- package/lib/mocks/user.js +1 -1
- package/lib/mocks/video.js +1 -1
- package/lib/mutations/analytics/analytics.js +1 -1
- package/lib/mutations/content/content.js +1 -1
- package/lib/mutations/crm/crm.js +1 -1
- package/lib/mutations/events/events.js +1 -1
- package/lib/mutations/flags/flags.js +1 -1
- package/lib/mutations/groups/groups.js +1 -1
- package/lib/mutations/higgsfield/higgsfield.js +1 -1
- package/lib/mutations/images/images.js +1 -1
- package/lib/mutations/index.js +1 -1
- package/lib/mutations/locations/locations.js +1 -1
- package/lib/mutations/messages/messages.js +1 -1
- package/lib/mutations/personas/personas.js +1 -1
- package/lib/mutations/posts/posts.js +1 -1
- package/lib/mutations/reactions/reactions.js +1 -1
- package/lib/mutations/rum/rum.js +1 -1
- package/lib/mutations/statistics/statistics.js +1 -1
- package/lib/mutations/subscriptions/subscriptions.js +1 -1
- package/lib/mutations/tags/tags.js +1 -1
- package/lib/mutations/users/users.js +1 -1
- package/lib/mutations/videos/videos.js +1 -1
- package/lib/nativePush/graphql.js +1 -1
- package/lib/nativePush/index.js +1 -1
- package/lib/nativePush/migrations.js +1 -1
- package/lib/nativePush/nativePushContract.fixture.js +1 -1
- package/lib/nativePush/payload.js +1 -1
- package/lib/nativePush/repository.js +1 -1
- package/lib/nativePush/service.js +1 -1
- package/lib/nativePush/snsProvider.js +1 -1
- package/lib/nativePush/types.js +1 -1
- package/lib/objectTypes/analytics.js +1 -1
- package/lib/objectTypes/app.js +1 -1
- package/lib/objectTypes/bankAccount.js +1 -1
- package/lib/objectTypes/connection.js +1 -1
- package/lib/objectTypes/content.js +1 -1
- package/lib/objectTypes/contentGeneration.js +1 -1
- package/lib/objectTypes/conversation.js +1 -1
- package/lib/objectTypes/creditCard.js +1 -1
- package/lib/objectTypes/crm.js +1 -1
- package/lib/objectTypes/document.js +1 -1
- package/lib/objectTypes/error.js +1 -1
- package/lib/objectTypes/event.js +1 -1
- package/lib/objectTypes/external.js +1 -1
- package/lib/objectTypes/file.js +1 -1
- package/lib/objectTypes/filter.js +1 -1
- package/lib/objectTypes/flag.js +1 -1
- package/lib/objectTypes/group.js +1 -1
- package/lib/objectTypes/higgsfield.js +1 -1
- package/lib/objectTypes/iapSubscription.js +1 -1
- package/lib/objectTypes/image.js +1 -1
- package/lib/objectTypes/imageGeneration.js +1 -1
- package/lib/objectTypes/index.js +1 -1
- package/lib/objectTypes/location.js +1 -1
- package/lib/objectTypes/message.js +1 -1
- package/lib/objectTypes/passcode.js +1 -1
- package/lib/objectTypes/persona.js +1 -1
- package/lib/objectTypes/plan.js +1 -1
- package/lib/objectTypes/post.js +1 -1
- package/lib/objectTypes/query.js +1 -1
- package/lib/objectTypes/reaction.js +1 -1
- package/lib/objectTypes/relation.js +1 -1
- package/lib/objectTypes/rum.js +1 -1
- package/lib/objectTypes/search.js +1 -1
- package/lib/objectTypes/statistics.js +1 -1
- package/lib/objectTypes/subscription.js +1 -1
- package/lib/objectTypes/tag.js +1 -1
- package/lib/objectTypes/user.js +1 -1
- package/lib/objectTypes/video.js +1 -1
- package/lib/objectTypes/videoGeneration.js +1 -1
- package/lib/organizations/accountLifecycle.js +1 -1
- package/lib/organizations/authorization.js +1 -1
- package/lib/organizations/billing.js +1 -1
- package/lib/organizations/billingProvider.js +1 -1
- package/lib/organizations/billingUpdates.js +1 -1
- package/lib/organizations/index.js +1 -1
- package/lib/organizations/mail.js +1 -1
- package/lib/organizations/memberDirectory.js +1 -1
- package/lib/organizations/membership.js +1 -1
- package/lib/organizations/passwordRecovery.js +1 -1
- package/lib/organizations/plans.js +1 -1
- package/lib/organizations/providerPagination.js +1 -1
- package/lib/organizations/reconciliation.js +1 -1
- package/lib/organizations/signup.js +1 -1
- package/lib/organizations/store.js +1 -1
- package/lib/organizations/types.js +1 -1
- package/lib/organizations/verification.js +1 -1
- package/lib/queries/analytics/analytics.js +1 -1
- package/lib/queries/content/content.js +1 -1
- package/lib/queries/crm/crm.js +1 -1
- package/lib/queries/events/events.js +1 -1
- package/lib/queries/flags/flags.js +1 -1
- package/lib/queries/groups/groups.js +1 -1
- package/lib/queries/higgsfield/higgsfield.js +1 -1
- package/lib/queries/images/images.js +1 -1
- package/lib/queries/index.js +1 -1
- package/lib/queries/locations/locations.js +1 -1
- package/lib/queries/messages/messages.js +1 -1
- package/lib/queries/personas/personas.js +1 -1
- package/lib/queries/posts/posts.js +1 -1
- package/lib/queries/query/query.js +1 -1
- package/lib/queries/reactions/reactions.js +1 -1
- package/lib/queries/statistics/statistics.js +1 -1
- package/lib/queries/subscriptions/subscriptions.js +1 -1
- package/lib/queries/tags/tags.js +1 -1
- package/lib/queries/users/users.js +1 -1
- package/lib/queries/videos/videos.js +1 -1
- package/lib/templates/email/layout.js +1 -1
- package/lib/templates/email/passwordForgot.js +1 -1
- package/lib/templates/email/passwordRecovery.js +1 -1
- package/lib/templates/email/verifyEmail.js +1 -1
- package/lib/templates/email/welcome.js +1 -1
- package/lib/templates/sms/passwordForgot.js +1 -1
- package/lib/templates/sms/passwordRecovery.js +1 -1
- package/lib/templates/sms/verifyEmail.js +1 -1
- package/lib/templates/sms/verifyPhone.js +1 -1
- package/lib/templates/sms/welcome.js +1 -1
- package/lib/types/analytics.types.js +1 -1
- package/lib/types/apps.types.js +1 -1
- package/lib/types/arangodb.types.js +1 -1
- package/lib/types/auth.types.js +1 -1
- package/lib/types/connections.types.js +1 -1
- package/lib/types/content.types.js +1 -1
- package/lib/types/conversations.types.js +1 -1
- package/lib/types/crm.types.js +1 -1
- package/lib/types/databaseCredentials.types.js +1 -1
- package/lib/types/email.types.js +1 -1
- package/lib/types/error.types.js +1 -1
- package/lib/types/files.types.js +1 -1
- package/lib/types/flags.types.js +1 -1
- package/lib/types/google.types.js +1 -1
- package/lib/types/groups.types.js +1 -1
- package/lib/types/images.types.js +1 -1
- package/lib/types/index.js +1 -1
- package/lib/types/locations.types.js +1 -1
- package/lib/types/messages.types.js +1 -1
- package/lib/types/notifications.types.js +1 -1
- package/lib/types/payments.types.js +1 -1
- package/lib/types/personas.types.js +1 -1
- package/lib/types/posts.types.js +1 -1
- package/lib/types/rum.types.js +1 -1
- package/lib/types/statistics.types.js +1 -1
- package/lib/types/tags.types.js +1 -1
- package/lib/types/users.types.js +1 -1
- package/lib/types/videos.types.js +1 -1
- package/lib/types/websockets.types.js +1 -1
- package/lib/upload.js +1 -1
- package/lib/utils/adapterUtils.js +1 -1
- package/lib/utils/analyticsUtils.js +1 -1
- package/lib/utils/appContext.js +1 -1
- package/lib/utils/aqlHelpers.js +1 -1
- package/lib/utils/arangodbUtils.js +1 -1
- package/lib/utils/authUtils.js +1 -1
- package/lib/utils/awsUtils.js +1 -1
- package/lib/utils/collectionRegistry.js +1 -1
- package/lib/utils/contextUtils.js +1 -1
- package/lib/utils/databaseCredentials.js +1 -1
- package/lib/utils/dbI18n.example.js +1 -1
- package/lib/utils/dbI18n.js +1 -1
- package/lib/utils/generationCallback.js +1 -1
- package/lib/utils/googleTranslate.js +1 -1
- package/lib/utils/graphqlUtils.js +1 -1
- package/lib/utils/imageUtils.js +1 -1
- package/lib/utils/index.js +1 -1
- package/lib/utils/languageDetection.js +1 -1
- package/lib/utils/localeUtils.example.js +1 -1
- package/lib/utils/localeUtils.js +1 -1
- package/lib/utils/mediaAccess.js +1 -1
- package/lib/utils/middlewareUtils.js +1 -1
- package/lib/utils/nodeRealtime.js +1 -1
- package/lib/utils/opaqueToken.js +1 -1
- package/lib/utils/queryBuilder.js +1 -1
- package/lib/utils/schemaUtils.js +1 -1
- package/lib/utils/secretDatabase.js +1 -1
- package/lib/utils/sessionUtils.js +1 -1
- package/lib/utils/stripeUtils.js +1 -1
- package/lib/utils/stripeUtils.ts.bak +1 -1
- package/lib/utils/templateUtils.js +1 -1
- package/lib/utils/testUtils.js +1 -1
- package/lib/utils/translationQueue.example.js +1 -1
- package/lib/utils/translationQueue.js +1 -1
- package/lib/videoProcessing.js +1 -1
- package/package.json +1 -1
|
@@ -284,4 +284,4 @@ export const getOrganizationBillingProvider = async ()=>{
|
|
|
284
284
|
};
|
|
285
285
|
};
|
|
286
286
|
|
|
287
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb3JnYW5pemF0aW9ucy9iaWxsaW5nUHJvdmlkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFN0cmlwZSBmcm9tICdzdHJpcGUnO1xuXG5pbXBvcnQge3N0cmlwZUFwaVZlcnNpb259IGZyb20gJy4uL3V0aWxzL3N0cmlwZVV0aWxzLmpzJztcbmltcG9ydCB7Y3JlYXRlT3JnYW5pemF0aW9uQmlsbGluZ1VwZGF0ZXJ9IGZyb20gJy4vYmlsbGluZ1VwZGF0ZXMuanMnO1xuaW1wb3J0IHtnZXRPcmdhbml6YXRpb25QbGFufSBmcm9tICcuL3BsYW5zLmpzJztcbmltcG9ydCB7bGlzdEFsbFByb3ZpZGVyUmVjb3JkcyBhcyBsaXN0QWxsfSBmcm9tICcuL3Byb3ZpZGVyUGFnaW5hdGlvbi5qcyc7XG5pbXBvcnQge29yZ2FuaXphdGlvbktleX0gZnJvbSAnLi9zdG9yZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtcbiAgQmlsbGluZ01vZGUsXG4gIEJpbGxpbmdQcm92aWRlcixcbiAgQ2hlY2tvdXRSZXN1bHQsXG4gIFBsYW5LZXksXG4gIFByb3ZpZGVyU3Vic2NyaXB0aW9uLFxuICBWZXJpZmllZEJpbGxpbmdFdmVudFxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IG9yZ2FuaXphdGlvbkJpbGxpbmdNb2RlID0gKCk6IEJpbGxpbmdNb2RlID0+IHtcbiAgY29uc3QgbW9kZSA9IHByb2Nlc3MuZW52Lk9SR0FOSVpBVElPTl9CSUxMSU5HX01PREUgfHwgJ2Rpc2FibGVkJztcbiAgaWYoIVsnZGlzYWJsZWQnLCAndGVzdCddLmluY2x1ZGVzKG1vZGUpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfbW9kZScpO1xuICB9XG4gIHJldHVybiBtb2RlIGFzIEJpbGxpbmdNb2RlO1xufTtcbmNvbnN0IG9yZ2FuaXphdGlvblN0cmlwZUNsaWVudCA9ICgpOiBTdHJpcGUgPT4ge1xuICBpZihvcmdhbml6YXRpb25CaWxsaW5nTW9kZSgpICE9PSAndGVzdCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfZGlzYWJsZWQnKTtcbiAgfVxuICBjb25zdCBrZXkgPSBwcm9jZXNzLmVudi5PUkdBTklaQVRJT05fU1RSSVBFX1NFQ1JFVF9LRVkgfHwgJyc7XG4gIGlmKCEvXihza3xyaylfdGVzdF9bQS1aYS16MC05XSskLy50ZXN0KGtleSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3Rlc3RfYmlsbGluZ19rZXlfcmVxdWlyZWQnKTtcbiAgfVxuICByZXR1cm4gbmV3IFN0cmlwZShrZXksIHthcGlWZXJzaW9uOiBzdHJpcGVBcGlWZXJzaW9uLCBtYXhOZXR3b3JrUmV0cmllczogMSwgdGltZW91dDogMjAwMDAsIHR5cGVzY3JpcHQ6IHRydWV9KTtcbn07XG5jb25zdCB2ZXJpZnlFdmVudCA9IChzdHJpcGU6IFN0cmlwZSwgYm9keTogc3RyaW5nIHwgQnVmZmVyLCBzaWduYXR1cmU6IHN0cmluZyk6IFZlcmlmaWVkQmlsbGluZ0V2ZW50ID0+IHtcbiAgY29uc3Qgc2VjcmV0ID0gcHJvY2Vzcy5lbnYuT1JHQU5JWkFUSU9OX1NUUklQRV9XRUJIT09LX1NFQ1JFVCB8fCAnJztcbiAgaWYoIXNlY3JldC5zdGFydHNXaXRoKCd3aHNlY18nKSB8fCAhc2lnbmF0dXJlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfZXZlbnQnKTtcbiAgfVxuICBjb25zdCBldmVudCA9IHN0cmlwZS53ZWJob29rcy5jb25zdHJ1Y3RFdmVudChib2R5LCBzaWduYXR1cmUsIHNlY3JldCk7XG4gIGNvbnN0IG9iamVjdCA9IGV2ZW50LmRhdGEub2JqZWN0IGFzIHtjdXN0b21lcj86IHN0cmluZyB8IHtpZDogc3RyaW5nfX07XG4gIGNvbnN0IGN1c3RvbWVySWQgPSB0eXBlb2Ygb2JqZWN0LmN1c3RvbWVyID09PSAnc3RyaW5nJyA/IG9iamVjdC5jdXN0b21lciA6IG9iamVjdC5jdXN0b21lcj8uaWQ7XG4gIGlmKGV2ZW50LmxpdmVtb2RlIHx8ICFjdXN0b21lcklkIHx8ICEvXmN1c19bQS1aYS16MC05XSskLy50ZXN0KGN1c3RvbWVySWQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfZXZlbnQnKTtcbiAgfVxuICByZXR1cm4ge2N1c3RvbWVySWQsIGV2ZW50SWQ6IGV2ZW50LmlkLCB0eXBlOiBldmVudC50eXBlfTtcbn07XG5leHBvcnQgY29uc3QgdmVyaWZ5T3JnYW5pemF0aW9uQmlsbGluZ0V2ZW50ID0gKFxuICBib2R5OiBzdHJpbmcgfCBCdWZmZXIsXG4gIHNpZ25hdHVyZTogc3RyaW5nXG4pOiBWZXJpZmllZEJpbGxpbmdFdmVudCA9PiB2ZXJpZnlFdmVudChvcmdhbml6YXRpb25TdHJpcGVDbGllbnQoKSwgYm9keSwgc2lnbmF0dXJlKTtcblxuZXhwb3J0IGNvbnN0IGdldE9yZ2FuaXphdGlvbkJpbGxpbmdQcm92aWRlciA9IGFzeW5jICgpOiBQcm9taXNlPEJpbGxpbmdQcm92aWRlcj4gPT4ge1xuICBjb25zdCBzdHJpcGUgPSBvcmdhbml6YXRpb25TdHJpcGVDbGllbnQoKTtcbiAgY29uc3Qgb3JpZ2luID0gcHJvY2Vzcy5lbnYuT1JHQU5JWkFUSU9OX1NJVEVfT1JJR0lOIHx8ICcnO1xuICBsZXQgcGFyc2VkOiBVUkw7XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gbmV3IFVSTChvcmlnaW4pO1xuICB9IGNhdGNoe1xuICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19vcmlnaW5fcmVxdWlyZWQnKTtcbiAgfVxuICBpZihwYXJzZWQucHJvdG9jb2wgIT09ICdodHRwczonIHx8IHBhcnNlZC5vcmlnaW4gIT09IG9yaWdpbiB8fCBwYXJzZWQudXNlcm5hbWUgfHwgcGFyc2VkLnBhc3N3b3JkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX29yaWdpbl9yZXF1aXJlZCcpO1xuICB9XG4gIGNvbnN0IHByaWNlcyA9IHtcbiAgICBwcm86IHByb2Nlc3MuZW52Lk9SR0FOSVpBVElPTl9TVFJJUEVfUFJPX1BSSUNFX0lEIHx8ICcnLFxuICAgIHNlYXQ6IHByb2Nlc3MuZW52Lk9SR0FOSVpBVElPTl9TVFJJUEVfU0VBVF9QUklDRV9JRCB8fCAnJyxcbiAgICBzdGFydGVyOiBwcm9jZXNzLmVudi5PUkdBTklaQVRJT05fU1RSSVBFX1NUQVJURVJfUFJJQ0VfSUQgfHwgJydcbiAgfTtcbiAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgT2JqZWN0LmVudHJpZXMocHJpY2VzKS5tYXAoYXN5bmMgKFtuYW1lLCBpZF0pID0+IHtcbiAgICAgIGlmKCEvXnByaWNlX1tBLVphLXowLTldKyQvLnRlc3QoaWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19wcmljZV9taXNtYXRjaCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhwZWN0ZWQgPSBuYW1lID09PSAnc2VhdCcgPyA4MDAgOiBnZXRPcmdhbml6YXRpb25QbGFuKG5hbWUgYXMgUGxhbktleSkuYmFzZUNlbnRzO1xuICAgICAgY29uc3QgcHJpY2UgPSBhd2FpdCBzdHJpcGUucHJpY2VzLnJldHJpZXZlKGlkKTtcbiAgICAgIGlmKFxuICAgICAgICBwcmljZS5saXZlbW9kZSB8fFxuICAgICAgICAhcHJpY2UuYWN0aXZlIHx8XG4gICAgICAgIHByaWNlLmN1cnJlbmN5ICE9PSAndXNkJyB8fFxuICAgICAgICBwcmljZS51bml0X2Ftb3VudCAhPT0gZXhwZWN0ZWQgfHxcbiAgICAgICAgcHJpY2UucmVjdXJyaW5nPy5pbnRlcnZhbCAhPT0gJ21vbnRoJyB8fFxuICAgICAgICBwcmljZS5yZWN1cnJpbmcuaW50ZXJ2YWxfY291bnQgIT09IDEgfHxcbiAgICAgICAgcHJpY2UucmVjdXJyaW5nLnVzYWdlX3R5cGUgIT09ICdsaWNlbnNlZCdcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfcHJpY2VfbWlzbWF0Y2gnKTtcbiAgICAgIH1cbiAgICB9KVxuICApO1xuICBjb25zdCByZXRyaWV2ZSA9IGFzeW5jIChjdXN0b21lcklkOiBzdHJpbmcsIHN1YnNjcmlwdGlvbklkPzogc3RyaW5nKTogUHJvbWlzZTxQcm92aWRlclN1YnNjcmlwdGlvbiB8IG51bGw+ID0+IHtcbiAgICBjb25zdCBhbGwgPSBhd2FpdCBsaXN0QWxsKChzdGFydGluZ0FmdGVyKSA9PlxuICAgICAgc3RyaXBlLnN1YnNjcmlwdGlvbnMubGlzdCh7Y3VzdG9tZXI6IGN1c3RvbWVySWQsIGxpbWl0OiAxMDAsIHN0YXJ0aW5nX2FmdGVyOiBzdGFydGluZ0FmdGVyLCBzdGF0dXM6ICdhbGwnfSlcbiAgICApO1xuICAgIGNvbnN0IGxpdmUgPSBhbGwuZmlsdGVyKFxuICAgICAgKHN1YnNjcmlwdGlvbikgPT4gIVsnY2FuY2VsZWQnLCAnaW5jb21wbGV0ZV9leHBpcmVkJ10uaW5jbHVkZXMoc3Vic2NyaXB0aW9uLnN0YXR1cylcbiAgICApO1xuICAgIGlmKGxpdmUubGVuZ3RoID4gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3N1YnNjcmlwdGlvbl9jb25mbGljdCcpO1xuICAgIH1cbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBzdWJzY3JpcHRpb25JZCA/IGF3YWl0IHN0cmlwZS5zdWJzY3JpcHRpb25zLnJldHJpZXZlKHN1YnNjcmlwdGlvbklkKSA6IGxpdmVbMF0gfHwgbnVsbDtcbiAgICBpZighc3Vic2NyaXB0aW9uKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgY3VzdG9tZXIgPVxuICAgICAgdHlwZW9mIHN1YnNjcmlwdGlvbi5jdXN0b21lciA9PT0gJ3N0cmluZycgPyBzdWJzY3JpcHRpb24uY3VzdG9tZXIgOiBzdWJzY3JpcHRpb24uY3VzdG9tZXIuaWQ7XG4gICAgY29uc3QgaXRlbXMgPSBzdWJzY3JpcHRpb24uaXRlbXMuZGF0YTtcbiAgICBjb25zdCBiYXNlID0gaXRlbXMuZmluZCgoaXRlbSkgPT4gW3ByaWNlcy5wcm8sIHByaWNlcy5zdGFydGVyXS5pbmNsdWRlcyhpdGVtLnByaWNlLmlkKSk7XG4gICAgY29uc3Qgc2VhdCA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IGl0ZW0ucHJpY2UuaWQgPT09IHByaWNlcy5zZWF0KTtcbiAgICBpZihcbiAgICAgIHN1YnNjcmlwdGlvbi5saXZlbW9kZSB8fFxuICAgICAgY3VzdG9tZXIgIT09IGN1c3RvbWVySWQgfHxcbiAgICAgIHN1YnNjcmlwdGlvbi5pdGVtcy5oYXNfbW9yZSB8fFxuICAgICAgIWJhc2UgfHxcbiAgICAgIGJhc2UucXVhbnRpdHkgIT09IDEgfHxcbiAgICAgIGl0ZW1zLmxlbmd0aCAhPT0gMSArIE51bWJlcihCb29sZWFuKHNlYXQpKSB8fFxuICAgICAgIU51bWJlci5pc1NhZmVJbnRlZ2VyKHNlYXQ/LnF1YW50aXR5IHx8IDApIHx8XG4gICAgICAoc2VhdD8ucXVhbnRpdHkgfHwgMCkgPCAwIHx8XG4gICAgICAoc2VhdCAmJlxuICAgICAgICAoc2VhdC5jdXJyZW50X3BlcmlvZF9lbmQgIT09IGJhc2UuY3VycmVudF9wZXJpb2RfZW5kIHx8XG4gICAgICAgICAgc2VhdC5jdXJyZW50X3BlcmlvZF9zdGFydCAhPT0gYmFzZS5jdXJyZW50X3BlcmlvZF9zdGFydCkpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfc3Vic2NyaXB0aW9uX21pc21hdGNoJyk7XG4gICAgfVxuICAgIGNvbnN0IGludm9pY2VzID0gYXdhaXQgbGlzdEFsbCgoc3RhcnRpbmdBZnRlcikgPT5cbiAgICAgIHN0cmlwZS5pbnZvaWNlcy5saXN0KHtjdXN0b21lcjogY3VzdG9tZXJJZCwgbGltaXQ6IDEwMCwgc3RhcnRpbmdfYWZ0ZXI6IHN0YXJ0aW5nQWZ0ZXJ9KVxuICAgICk7XG4gICAgY29uc3QgdW5zZXR0bGVkID0gaW52b2ljZXMuZmlsdGVyKChpbnZvaWNlKSA9PiBpbnZvaWNlLm1ldGFkYXRhPy5vcmdhbml6YXRpb25CaWxsaW5nSm9iXG4gICAgICAmJiBpbnZvaWNlLnN0YXR1cyA9PT0gJ29wZW4nICYmIGludm9pY2UuYW1vdW50X3JlbWFpbmluZyA+IDApO1xuICAgIGxldCB7c3RhdHVzfSA9IHN1YnNjcmlwdGlvbjtcbiAgICBpZihzdWJzY3JpcHRpb24uc3RhdHVzID09PSAnYWN0aXZlJyAmJiB1bnNldHRsZWQubGVuZ3RoKSB7XG4gICAgICBzdGF0dXMgPSB1bnNldHRsZWQuc29tZSgoaW52b2ljZSkgPT4gaW52b2ljZS5hdHRlbXB0ZWQpID8gJ3Bhc3RfZHVlJyA6ICdwYXltZW50X3BlbmRpbmcnO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgYmFzZUl0ZW1JZDogYmFzZS5pZCxcbiAgICAgIGNhbmNlbEF0UGVyaW9kRW5kOiBzdWJzY3JpcHRpb24uY2FuY2VsX2F0X3BlcmlvZF9lbmQsXG4gICAgICBjdXN0b21lcklkLFxuICAgICAgZXh0cmFTZWF0czogc2VhdD8ucXVhbnRpdHkgfHwgMCxcbiAgICAgIGlkOiBzdWJzY3JpcHRpb24uaWQsXG4gICAgICBsYXN0Sm9iSWQ6IHN1YnNjcmlwdGlvbi5tZXRhZGF0YT8ub3JnYW5pemF0aW9uQmlsbGluZ0pvYiB8fCAnJyxcbiAgICAgIHBlbmRpbmdQbGFuOiBzdWJzY3JpcHRpb24ubWV0YWRhdGE/Lm9yZ2FuaXphdGlvblBlbmRpbmdQbGFuID09PSAnc3RhcnRlcicgJiYgYmFzZS5wcmljZS5pZCAhPT0gcHJpY2VzLnN0YXJ0ZXIgPyAnc3RhcnRlcicgOiBudWxsLFxuICAgICAgcGVyaW9kRW5kOiBiYXNlLmN1cnJlbnRfcGVyaW9kX2VuZCAqIDEwMDAsXG4gICAgICBwZXJpb2RTdGFydDogYmFzZS5jdXJyZW50X3BlcmlvZF9zdGFydCAqIDEwMDAsXG4gICAgICBwbGFuOiBiYXNlLnByaWNlLmlkID09PSBwcmljZXMucHJvID8gJ3BybycgOiAnc3RhcnRlcicsXG4gICAgICBzZWF0SXRlbUlkOiBzZWF0Py5pZCB8fCAnJyxcbiAgICAgIHN0YXJ0ZWRBdDogKHN1YnNjcmlwdGlvbi5zdGFydF9kYXRlIHx8IGJhc2UuY3VycmVudF9wZXJpb2Rfc3RhcnQpICogMTAwMCxcbiAgICAgIHN0YXR1c1xuICAgIH07XG4gIH07XG4gIGNvbnN0IHNlc3Npb25SZXN1bHQgPSAoc2Vzc2lvbjogU3RyaXBlLkNoZWNrb3V0LlNlc3Npb24pOiBDaGVja291dFJlc3VsdCA9PiB7XG4gICAgaWYoc2Vzc2lvbi5saXZlbW9kZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfZXZlbnQnKTtcbiAgICB9XG4gICAgaWYoc2Vzc2lvbi5zdGF0dXMgPT09ICdjb21wbGV0ZScpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignc3Vic2NyaXB0aW9uX2V4aXN0cycpO1xuICAgIH1cbiAgICBpZihzZXNzaW9uLnVybCAmJiAhc2Vzc2lvbi51cmwuc3RhcnRzV2l0aCgnaHR0cHM6Ly9jaGVja291dC5zdHJpcGUuY29tLycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfcmVkaXJlY3RfaW52YWxpZCcpO1xuICAgIH1cbiAgICByZXR1cm4ge2V4cGlyZXNBdDogc2Vzc2lvbi5leHBpcmVzX2F0ICogMTAwMCwgaWQ6IHNlc3Npb24uaWQsIHVybDogc2Vzc2lvbi51cmwgfHwgJyd9O1xuICB9O1xuICByZXR1cm4ge1xuICAgIGNoZWNrb3V0OiBhc3luYyAoY3VzdG9tZXJJZCwgcGxhbiwgZXh0cmFTZWF0cywga2V5KSA9PiB7XG4gICAgICBnZXRPcmdhbml6YXRpb25QbGFuKHBsYW4pO1xuICAgICAgaWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGV4dHJhU2VhdHMpIHx8IGV4dHJhU2VhdHMgPCAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9tZW1iZXJfY291bnQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHNlc3Npb25zID0gYXdhaXQgbGlzdEFsbCgoc3RhcnRpbmdBZnRlcikgPT5cbiAgICAgICAgc3RyaXBlLmNoZWNrb3V0LnNlc3Npb25zLmxpc3Qoe2N1c3RvbWVyOiBjdXN0b21lcklkLCBsaW1pdDogMTAwLCBzdGFydGluZ19hZnRlcjogc3RhcnRpbmdBZnRlcn0pXG4gICAgICApO1xuICAgICAgY29uc3QgbWF0Y2hpbmcgPSBzZXNzaW9ucy5maWx0ZXIoKHNlc3Npb24pID0+IHNlc3Npb24ubWV0YWRhdGE/Lm9yZ2FuaXphdGlvbkNoZWNrb3V0S2V5ID09PSBrZXkpO1xuICAgICAgaWYobWF0Y2hpbmcubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfY2hlY2tvdXRfY29uZmxpY3QnKTtcbiAgICAgIH1cbiAgICAgIGlmKG1hdGNoaW5nWzBdKSB7XG4gICAgICAgIHJldHVybiBzZXNzaW9uUmVzdWx0KG1hdGNoaW5nWzBdKTtcbiAgICAgIH1cbiAgICAgIGlmKHNlc3Npb25zLnNvbWUoKHNlc3Npb24pID0+IHNlc3Npb24uc3RhdHVzID09PSAnb3BlbicgJiYgc2Vzc2lvbi5leHBpcmVzX2F0ICogMTAwMCA+IERhdGUubm93KCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignY2hlY2tvdXRfaW5fcHJvZ3Jlc3MnKTtcbiAgICAgIH1cbiAgICAgIGlmKGF3YWl0IHJldHJpZXZlKGN1c3RvbWVySWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignc3Vic2NyaXB0aW9uX2V4aXN0cycpO1xuICAgICAgfVxuICAgICAgY29uc3QgbGluZUl0ZW1zID0gW1xuICAgICAgICB7cHJpY2U6IHByaWNlc1twbGFuXSwgcXVhbnRpdHk6IDF9LFxuICAgICAgICAuLi4oZXh0cmFTZWF0cyA/IFt7cHJpY2U6IHByaWNlcy5zZWF0LCBxdWFudGl0eTogZXh0cmFTZWF0c31dIDogW10pXG4gICAgICBdO1xuICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IHN0cmlwZS5jaGVja291dC5zZXNzaW9ucy5jcmVhdGUoXG4gICAgICAgIHtcbiAgICAgICAgICBjYW5jZWxfdXJsOiBgJHtvcmlnaW59L3N1YnNjcmlwdGlvbi9uZXdgLFxuICAgICAgICAgIGNsaWVudF9yZWZlcmVuY2VfaWQ6IGtleSxcbiAgICAgICAgICBjdXN0b21lcjogY3VzdG9tZXJJZCxcbiAgICAgICAgICBsaW5lX2l0ZW1zOiBsaW5lSXRlbXMsXG4gICAgICAgICAgbWV0YWRhdGE6IHtvcmdhbml6YXRpb25DaGVja291dEtleToga2V5LCBwcmljZVZlcnNpb246ICcyMDI2LTEwLXYxJ30sXG4gICAgICAgICAgbW9kZTogJ3N1YnNjcmlwdGlvbicsXG4gICAgICAgICAgc3Vic2NyaXB0aW9uX2RhdGE6IHttZXRhZGF0YToge29yZ2FuaXphdGlvbkNoZWNrb3V0S2V5OiBrZXksIHByaWNlVmVyc2lvbjogJzIwMjYtMTAtdjEnfX0sXG4gICAgICAgICAgc3VjY2Vzc191cmw6IGAke29yaWdpbn0vc2V0dGluZ3Mvc3Vic2NyaXB0aW9uP2NoZWNrb3V0PXJldHVybmBcbiAgICAgICAgfSxcbiAgICAgICAge2lkZW1wb3RlbmN5S2V5OiBrZXl9XG4gICAgICApO1xuICAgICAgcmV0dXJuIHNlc3Npb25SZXN1bHQoc2Vzc2lvbik7XG4gICAgfSxcbiAgICBjdXN0b21lcjogYXN5bmMgKG9yZ2FuaXphdGlvbklkLCBlbWFpbCkgPT4ge1xuICAgICAgLy8gU2VhcmNoIHRoZSBmdWxsIGN1c3RvbWVyIGludmVudG9yeTogb3duZXJzaGlwL2VtYWlsIGNhbiBjaGFuZ2UgYWZ0ZXIgYW4gYW1iaWd1b3VzIHJlcXVlc3QuXG4gICAgICBjb25zdCBjdXN0b21lcnMgPSBhd2FpdCBsaXN0QWxsKChzdGFydGluZ0FmdGVyKSA9PlxuICAgICAgICBzdHJpcGUuY3VzdG9tZXJzLmxpc3Qoe2xpbWl0OiAxMDAsIHN0YXJ0aW5nX2FmdGVyOiBzdGFydGluZ0FmdGVyfSlcbiAgICAgICk7XG4gICAgICBjb25zdCBtYXRjaGluZyA9IGN1c3RvbWVycy5maWx0ZXIoKGN1c3RvbWVyKSA9PiBjdXN0b21lci5tZXRhZGF0YS5vcmdhbml6YXRpb25JZCA9PT0gb3JnYW5pemF0aW9uSWQpO1xuICAgICAgaWYobWF0Y2hpbmcubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfY3VzdG9tZXJfY29uZmxpY3QnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN1c3RvbWVyID1cbiAgICAgICAgbWF0Y2hpbmdbMF0gfHxcbiAgICAgICAgKGF3YWl0IHN0cmlwZS5jdXN0b21lcnMuY3JlYXRlKFxuICAgICAgICAgIHtlbWFpbCwgbWV0YWRhdGE6IHtvcmdhbml6YXRpb25JZH19LFxuICAgICAgICAgIHtpZGVtcG90ZW5jeUtleTogb3JnYW5pemF0aW9uS2V5KCdvcmdhbml6YXRpb24tY3VzdG9tZXInLCBvcmdhbml6YXRpb25JZCl9XG4gICAgICAgICkpO1xuICAgICAgaWYoY3VzdG9tZXIubGl2ZW1vZGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfZXZlbnQnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBjdXN0b21lci5pZDtcbiAgICB9LFxuICAgIHBvcnRhbDogYXN5bmMgKGN1c3RvbWVySWQpID0+IHtcbiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBwcm9jZXNzLmVudi5PUkdBTklaQVRJT05fU1RSSVBFX1BPUlRBTF9DT05GSUdVUkFUSU9OX0lEIHx8ICcnO1xuICAgICAgaWYoIS9eYnBjX1tBLVphLXowLTldKyQvLnRlc3QoY29uZmlndXJhdGlvbikpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnNhZmVfYmlsbGluZ19wb3J0YWwnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IHN0cmlwZS5iaWxsaW5nUG9ydGFsLmNvbmZpZ3VyYXRpb25zLnJldHJpZXZlKGNvbmZpZ3VyYXRpb24pO1xuICAgICAgaWYoXG4gICAgICAgIGNvbmZpZy5saXZlbW9kZSB8fFxuICAgICAgICAhY29uZmlnLmFjdGl2ZSB8fFxuICAgICAgICBjb25maWcuZmVhdHVyZXMuc3Vic2NyaXB0aW9uX2NhbmNlbC5lbmFibGVkIHx8XG4gICAgICAgIGNvbmZpZy5mZWF0dXJlcy5zdWJzY3JpcHRpb25fdXBkYXRlLmVuYWJsZWQgfHxcbiAgICAgICAgIWNvbmZpZy5mZWF0dXJlcy5wYXltZW50X21ldGhvZF91cGRhdGUuZW5hYmxlZCB8fFxuICAgICAgICAhY29uZmlnLmZlYXR1cmVzLmludm9pY2VfaGlzdG9yeS5lbmFibGVkXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bnNhZmVfYmlsbGluZ19wb3J0YWwnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiAoXG4gICAgICAgIGF3YWl0IHN0cmlwZS5iaWxsaW5nUG9ydGFsLnNlc3Npb25zLmNyZWF0ZSh7XG4gICAgICAgICAgY29uZmlndXJhdGlvbixcbiAgICAgICAgICBjdXN0b21lcjogY3VzdG9tZXJJZCxcbiAgICAgICAgICByZXR1cm5fdXJsOiBgJHtvcmlnaW59L3NldHRpbmdzL3N1YnNjcmlwdGlvbmBcbiAgICAgICAgfSlcbiAgICAgICkudXJsO1xuICAgIH0sXG4gICAgcHJldmlldzogYXN5bmMgKHN1YnNjcmlwdGlvbiwgcGxhbiwgc2VhdHMsIGVmZmVjdGl2ZUF0KSA9PiB7XG4gICAgICBnZXRPcmdhbml6YXRpb25QbGFuKHBsYW4pO1xuICAgICAgaWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKHNlYXRzKSB8fCBzZWF0cyA8IDAgfHwgIU51bWJlci5pc1NhZmVJbnRlZ2VyKGVmZmVjdGl2ZUF0KSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfbWVtYmVyX2NvdW50Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzZWF0SXRlbXMgPSBzZWF0cyA/IFt7cHJpY2U6IHByaWNlcy5zZWF0LCBxdWFudGl0eTogc2VhdHN9XSA6IFtdO1xuICAgICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAgIHtpZDogc3Vic2NyaXB0aW9uLmJhc2VJdGVtSWQsIHByaWNlOiBwcmljZXNbcGxhbl0sIHF1YW50aXR5OiAxfSxcbiAgICAgICAgLi4uKHN1YnNjcmlwdGlvbi5zZWF0SXRlbUlkXG4gICAgICAgICAgPyBbe2lkOiBzdWJzY3JpcHRpb24uc2VhdEl0ZW1JZCwgcHJpY2U6IHByaWNlcy5zZWF0LCBxdWFudGl0eTogc2VhdHN9XVxuICAgICAgICAgIDogc2VhdEl0ZW1zKVxuICAgICAgXTtcbiAgICAgIGNvbnN0IGludm9pY2UgPSBhd2FpdCBzdHJpcGUuaW52b2ljZXMuY3JlYXRlUHJldmlldyh7XG4gICAgICAgIGN1c3RvbWVyOiBzdWJzY3JpcHRpb24uY3VzdG9tZXJJZCxcbiAgICAgICAgc3Vic2NyaXB0aW9uOiBzdWJzY3JpcHRpb24uaWQsXG4gICAgICAgIHN1YnNjcmlwdGlvbl9kZXRhaWxzOiB7aXRlbXMsIHByb3JhdGlvbl9kYXRlOiBNYXRoLmZsb29yKGVmZmVjdGl2ZUF0IC8gMTAwMCl9XG4gICAgICB9KTtcbiAgICAgIGlmKGludm9pY2UubGl2ZW1vZGUgfHwgaW52b2ljZS5saW5lcy5oYXNfbW9yZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfbG9va3VwX2luY29tcGxldGUnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBpbnZvaWNlLmxpbmVzLmRhdGFcbiAgICAgICAgLmZpbHRlcigobGluZSkgPT4gbGluZS5wYXJlbnQ/LnN1YnNjcmlwdGlvbl9pdGVtX2RldGFpbHM/LnByb3JhdGlvbilcbiAgICAgICAgLnJlZHVjZSgodG90YWwsIGxpbmUpID0+IHRvdGFsICsgbGluZS5hbW91bnQsIDApO1xuICAgIH0sXG4gICAgcmV0cmlldmUsXG4gICAgdXBkYXRlOiBjcmVhdGVPcmdhbml6YXRpb25CaWxsaW5nVXBkYXRlcihzdHJpcGUsIHByaWNlcyksXG4gICAgdmVyaWZ5OiAoYm9keSwgc2lnbmF0dXJlKSA9PiB2ZXJpZnlFdmVudChzdHJpcGUsIGJvZHksIHNpZ25hdHVyZSlcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsiU3RyaXBlIiwic3RyaXBlQXBpVmVyc2lvbiIsImNyZWF0ZU9yZ2FuaXphdGlvbkJpbGxpbmdVcGRhdGVyIiwiZ2V0T3JnYW5pemF0aW9uUGxhbiIsImxpc3RBbGxQcm92aWRlclJlY29yZHMiLCJsaXN0QWxsIiwib3JnYW5pemF0aW9uS2V5Iiwib3JnYW5pemF0aW9uQmlsbGluZ01vZGUiLCJtb2RlIiwicHJvY2VzcyIsImVudiIsIk9SR0FOSVpBVElPTl9CSUxMSU5HX01PREUiLCJpbmNsdWRlcyIsIkVycm9yIiwib3JnYW5pemF0aW9uU3RyaXBlQ2xpZW50Iiwia2V5IiwiT1JHQU5JWkFUSU9OX1NUUklQRV9TRUNSRVRfS0VZIiwidGVzdCIsImFwaVZlcnNpb24iLCJtYXhOZXR3b3JrUmV0cmllcyIsInRpbWVvdXQiLCJ0eXBlc2NyaXB0IiwidmVyaWZ5RXZlbnQiLCJzdHJpcGUiLCJib2R5Iiwic2lnbmF0dXJlIiwic2VjcmV0IiwiT1JHQU5JWkFUSU9OX1NUUklQRV9XRUJIT09LX1NFQ1JFVCIsInN0YXJ0c1dpdGgiLCJldmVudCIsIndlYmhvb2tzIiwiY29uc3RydWN0RXZlbnQiLCJvYmplY3QiLCJkYXRhIiwiY3VzdG9tZXJJZCIsImN1c3RvbWVyIiwiaWQiLCJsaXZlbW9kZSIsImV2ZW50SWQiLCJ0eXBlIiwidmVyaWZ5T3JnYW5pemF0aW9uQmlsbGluZ0V2ZW50IiwiZ2V0T3JnYW5pemF0aW9uQmlsbGluZ1Byb3ZpZGVyIiwib3JpZ2luIiwiT1JHQU5JWkFUSU9OX1NJVEVfT1JJR0lOIiwicGFyc2VkIiwiVVJMIiwicHJvdG9jb2wiLCJ1c2VybmFtZSIsInBhc3N3b3JkIiwicHJpY2VzIiwicHJvIiwiT1JHQU5JWkFUSU9OX1NUUklQRV9QUk9fUFJJQ0VfSUQiLCJzZWF0IiwiT1JHQU5JWkFUSU9OX1NUUklQRV9TRUFUX1BSSUNFX0lEIiwic3RhcnRlciIsIk9SR0FOSVpBVElPTl9TVFJJUEVfU1RBUlRFUl9QUklDRV9JRCIsIlByb21pc2UiLCJhbGwiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwibmFtZSIsImV4cGVjdGVkIiwiYmFzZUNlbnRzIiwicHJpY2UiLCJyZXRyaWV2ZSIsImFjdGl2ZSIsImN1cnJlbmN5IiwidW5pdF9hbW91bnQiLCJyZWN1cnJpbmciLCJpbnRlcnZhbCIsImludGVydmFsX2NvdW50IiwidXNhZ2VfdHlwZSIsInN1YnNjcmlwdGlvbklkIiwic3RhcnRpbmdBZnRlciIsInN1YnNjcmlwdGlvbnMiLCJsaXN0IiwibGltaXQiLCJzdGFydGluZ19hZnRlciIsInN0YXR1cyIsImxpdmUiLCJmaWx0ZXIiLCJzdWJzY3JpcHRpb24iLCJsZW5ndGgiLCJpdGVtcyIsImJhc2UiLCJmaW5kIiwiaXRlbSIsImhhc19tb3JlIiwicXVhbnRpdHkiLCJOdW1iZXIiLCJCb29sZWFuIiwiaXNTYWZlSW50ZWdlciIsImN1cnJlbnRfcGVyaW9kX2VuZCIsImN1cnJlbnRfcGVyaW9kX3N0YXJ0IiwiaW52b2ljZXMiLCJ1bnNldHRsZWQiLCJpbnZvaWNlIiwibWV0YWRhdGEiLCJvcmdhbml6YXRpb25CaWxsaW5nSm9iIiwiYW1vdW50X3JlbWFpbmluZyIsInNvbWUiLCJhdHRlbXB0ZWQiLCJiYXNlSXRlbUlkIiwiY2FuY2VsQXRQZXJpb2RFbmQiLCJjYW5jZWxfYXRfcGVyaW9kX2VuZCIsImV4dHJhU2VhdHMiLCJsYXN0Sm9iSWQiLCJwZW5kaW5nUGxhbiIsIm9yZ2FuaXphdGlvblBlbmRpbmdQbGFuIiwicGVyaW9kRW5kIiwicGVyaW9kU3RhcnQiLCJwbGFuIiwic2VhdEl0ZW1JZCIsInN0YXJ0ZWRBdCIsInN0YXJ0X2RhdGUiLCJzZXNzaW9uUmVzdWx0Iiwic2Vzc2lvbiIsInVybCIsImV4cGlyZXNBdCIsImV4cGlyZXNfYXQiLCJjaGVja291dCIsInNlc3Npb25zIiwibWF0Y2hpbmciLCJvcmdhbml6YXRpb25DaGVja291dEtleSIsIkRhdGUiLCJub3ciLCJsaW5lSXRlbXMiLCJjcmVhdGUiLCJjYW5jZWxfdXJsIiwiY2xpZW50X3JlZmVyZW5jZV9pZCIsImxpbmVfaXRlbXMiLCJwcmljZVZlcnNpb24iLCJzdWJzY3JpcHRpb25fZGF0YSIsInN1Y2Nlc3NfdXJsIiwiaWRlbXBvdGVuY3lLZXkiLCJvcmdhbml6YXRpb25JZCIsImVtYWlsIiwiY3VzdG9tZXJzIiwicG9ydGFsIiwiY29uZmlndXJhdGlvbiIsIk9SR0FOSVpBVElPTl9TVFJJUEVfUE9SVEFMX0NPTkZJR1VSQVRJT05fSUQiLCJjb25maWciLCJiaWxsaW5nUG9ydGFsIiwiY29uZmlndXJhdGlvbnMiLCJmZWF0dXJlcyIsInN1YnNjcmlwdGlvbl9jYW5jZWwiLCJlbmFibGVkIiwic3Vic2NyaXB0aW9uX3VwZGF0ZSIsInBheW1lbnRfbWV0aG9kX3VwZGF0ZSIsImludm9pY2VfaGlzdG9yeSIsInJldHVybl91cmwiLCJwcmV2aWV3Iiwic2VhdHMiLCJlZmZlY3RpdmVBdCIsInNlYXRJdGVtcyIsImNyZWF0ZVByZXZpZXciLCJzdWJzY3JpcHRpb25fZGV0YWlscyIsInByb3JhdGlvbl9kYXRlIiwiTWF0aCIsImZsb29yIiwibGluZXMiLCJsaW5lIiwicGFyZW50Iiwic3Vic2NyaXB0aW9uX2l0ZW1fZGV0YWlscyIsInByb3JhdGlvbiIsInJlZHVjZSIsInRvdGFsIiwiYW1vdW50IiwidXBkYXRlIiwidmVyaWZ5Il0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxZQUFZLFNBQVM7QUFFNUIsU0FBUUMsZ0JBQWdCLFFBQU8sMEJBQTBCO0FBQ3pELFNBQVFDLGdDQUFnQyxRQUFPLHNCQUFzQjtBQUNyRSxTQUFRQyxtQkFBbUIsUUFBTyxhQUFhO0FBQy9DLFNBQVFDLDBCQUEwQkMsT0FBTyxRQUFPLDBCQUEwQjtBQUMxRSxTQUFRQyxlQUFlLFFBQU8sYUFBYTtBQVczQyxPQUFPLE1BQU1DLDBCQUEwQjtJQUNyQyxNQUFNQyxPQUFPQyxRQUFRQyxHQUFHLENBQUNDLHlCQUF5QixJQUFJO0lBQ3RELElBQUcsQ0FBQztRQUFDO1FBQVk7S0FBTyxDQUFDQyxRQUFRLENBQUNKLE9BQU87UUFDdkMsTUFBTSxJQUFJSyxNQUFN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
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3Ly5jb2RleC93b3JrdHJlZXMvdmF1bHQtczMtcmVsZWFzZS9yZWFrdG9yL3BhY2thZ2VzL3JlYWt0b3Ivc3JjL29yZ2FuaXphdGlvbnMvYmlsbGluZ1Byb3ZpZGVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTdHJpcGUgZnJvbSAnc3RyaXBlJztcblxuaW1wb3J0IHtzdHJpcGVBcGlWZXJzaW9ufSBmcm9tICcuLi91dGlscy9zdHJpcGVVdGlscy5qcyc7XG5pbXBvcnQge2NyZWF0ZU9yZ2FuaXphdGlvbkJpbGxpbmdVcGRhdGVyfSBmcm9tICcuL2JpbGxpbmdVcGRhdGVzLmpzJztcbmltcG9ydCB7Z2V0T3JnYW5pemF0aW9uUGxhbn0gZnJvbSAnLi9wbGFucy5qcyc7XG5pbXBvcnQge2xpc3RBbGxQcm92aWRlclJlY29yZHMgYXMgbGlzdEFsbH0gZnJvbSAnLi9wcm92aWRlclBhZ2luYXRpb24uanMnO1xuaW1wb3J0IHtvcmdhbml6YXRpb25LZXl9IGZyb20gJy4vc3RvcmUuanMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEJpbGxpbmdNb2RlLFxuICBCaWxsaW5nUHJvdmlkZXIsXG4gIENoZWNrb3V0UmVzdWx0LFxuICBQbGFuS2V5LFxuICBQcm92aWRlclN1YnNjcmlwdGlvbixcbiAgVmVyaWZpZWRCaWxsaW5nRXZlbnRcbn0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBjb25zdCBvcmdhbml6YXRpb25CaWxsaW5nTW9kZSA9ICgpOiBCaWxsaW5nTW9kZSA9PiB7XG4gIGNvbnN0IG1vZGUgPSBwcm9jZXNzLmVudi5PUkdBTklaQVRJT05fQklMTElOR19NT0RFIHx8ICdkaXNhYmxlZCc7XG4gIGlmKCFbJ2Rpc2FibGVkJywgJ3Rlc3QnXS5pbmNsdWRlcyhtb2RlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX21vZGUnKTtcbiAgfVxuICByZXR1cm4gbW9kZSBhcyBCaWxsaW5nTW9kZTtcbn07XG5jb25zdCBvcmdhbml6YXRpb25TdHJpcGVDbGllbnQgPSAoKTogU3RyaXBlID0+IHtcbiAgaWYob3JnYW5pemF0aW9uQmlsbGluZ01vZGUoKSAhPT0gJ3Rlc3QnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX2Rpc2FibGVkJyk7XG4gIH1cbiAgY29uc3Qga2V5ID0gcHJvY2Vzcy5lbnYuT1JHQU5JWkFUSU9OX1NUUklQRV9TRUNSRVRfS0VZIHx8ICcnO1xuICBpZighL14oc2t8cmspX3Rlc3RfW0EtWmEtejAtOV0rJC8udGVzdChrZXkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCd0ZXN0X2JpbGxpbmdfa2V5X3JlcXVpcmVkJyk7XG4gIH1cbiAgcmV0dXJuIG5ldyBTdHJpcGUoa2V5LCB7YXBpVmVyc2lvbjogc3RyaXBlQXBpVmVyc2lvbiwgbWF4TmV0d29ya1JldHJpZXM6IDEsIHRpbWVvdXQ6IDIwMDAwLCB0eXBlc2NyaXB0OiB0cnVlfSk7XG59O1xuY29uc3QgdmVyaWZ5RXZlbnQgPSAoc3RyaXBlOiBTdHJpcGUsIGJvZHk6IHN0cmluZyB8IEJ1ZmZlciwgc2lnbmF0dXJlOiBzdHJpbmcpOiBWZXJpZmllZEJpbGxpbmdFdmVudCA9PiB7XG4gIGNvbnN0IHNlY3JldCA9IHByb2Nlc3MuZW52Lk9SR0FOSVpBVElPTl9TVFJJUEVfV0VCSE9PS19TRUNSRVQgfHwgJyc7XG4gIGlmKCFzZWNyZXQuc3RhcnRzV2l0aCgnd2hzZWNfJykgfHwgIXNpZ25hdHVyZSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2V2ZW50Jyk7XG4gIH1cbiAgY29uc3QgZXZlbnQgPSBzdHJpcGUud2ViaG9va3MuY29uc3RydWN0RXZlbnQoYm9keSwgc2lnbmF0dXJlLCBzZWNyZXQpO1xuICBjb25zdCBvYmplY3QgPSBldmVudC5kYXRhLm9iamVjdCBhcyB7Y3VzdG9tZXI/OiBzdHJpbmcgfCB7aWQ6IHN0cmluZ319O1xuICBjb25zdCBjdXN0b21lcklkID0gdHlwZW9mIG9iamVjdC5jdXN0b21lciA9PT0gJ3N0cmluZycgPyBvYmplY3QuY3VzdG9tZXIgOiBvYmplY3QuY3VzdG9tZXI/LmlkO1xuICBpZihldmVudC5saXZlbW9kZSB8fCAhY3VzdG9tZXJJZCB8fCAhL15jdXNfW0EtWmEtejAtOV0rJC8udGVzdChjdXN0b21lcklkKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2V2ZW50Jyk7XG4gIH1cbiAgcmV0dXJuIHtjdXN0b21lcklkLCBldmVudElkOiBldmVudC5pZCwgdHlwZTogZXZlbnQudHlwZX07XG59O1xuZXhwb3J0IGNvbnN0IHZlcmlmeU9yZ2FuaXphdGlvbkJpbGxpbmdFdmVudCA9IChcbiAgYm9keTogc3RyaW5nIHwgQnVmZmVyLFxuICBzaWduYXR1cmU6IHN0cmluZ1xuKTogVmVyaWZpZWRCaWxsaW5nRXZlbnQgPT4gdmVyaWZ5RXZlbnQob3JnYW5pemF0aW9uU3RyaXBlQ2xpZW50KCksIGJvZHksIHNpZ25hdHVyZSk7XG5cbmV4cG9ydCBjb25zdCBnZXRPcmdhbml6YXRpb25CaWxsaW5nUHJvdmlkZXIgPSBhc3luYyAoKTogUHJvbWlzZTxCaWxsaW5nUHJvdmlkZXI+ID0+IHtcbiAgY29uc3Qgc3RyaXBlID0gb3JnYW5pemF0aW9uU3RyaXBlQ2xpZW50KCk7XG4gIGNvbnN0IG9yaWdpbiA9IHByb2Nlc3MuZW52Lk9SR0FOSVpBVElPTl9TSVRFX09SSUdJTiB8fCAnJztcbiAgbGV0IHBhcnNlZDogVVJMO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IG5ldyBVUkwob3JpZ2luKTtcbiAgfSBjYXRjaHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfb3JpZ2luX3JlcXVpcmVkJyk7XG4gIH1cbiAgaWYocGFyc2VkLnByb3RvY29sICE9PSAnaHR0cHM6JyB8fCBwYXJzZWQub3JpZ2luICE9PSBvcmlnaW4gfHwgcGFyc2VkLnVzZXJuYW1lIHx8IHBhcnNlZC5wYXNzd29yZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19vcmlnaW5fcmVxdWlyZWQnKTtcbiAgfVxuICBjb25zdCBwcmljZXMgPSB7XG4gICAgcHJvOiBwcm9jZXNzLmVudi5PUkdBTklaQVRJT05fU1RSSVBFX1BST19QUklDRV9JRCB8fCAnJyxcbiAgICBzZWF0OiBwcm9jZXNzLmVudi5PUkdBTklaQVRJT05fU1RSSVBFX1NFQVRfUFJJQ0VfSUQgfHwgJycsXG4gICAgc3RhcnRlcjogcHJvY2Vzcy5lbnYuT1JHQU5JWkFUSU9OX1NUUklQRV9TVEFSVEVSX1BSSUNFX0lEIHx8ICcnXG4gIH07XG4gIGF3YWl0IFByb21pc2UuYWxsKFxuICAgIE9iamVjdC5lbnRyaWVzKHByaWNlcykubWFwKGFzeW5jIChbbmFtZSwgaWRdKSA9PiB7XG4gICAgICBpZighL15wcmljZV9bQS1aYS16MC05XSskLy50ZXN0KGlkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfcHJpY2VfbWlzbWF0Y2gnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGV4cGVjdGVkID0gbmFtZSA9PT0gJ3NlYXQnID8gODAwIDogZ2V0T3JnYW5pemF0aW9uUGxhbihuYW1lIGFzIFBsYW5LZXkpLmJhc2VDZW50cztcbiAgICAgIGNvbnN0IHByaWNlID0gYXdhaXQgc3RyaXBlLnByaWNlcy5yZXRyaWV2ZShpZCk7XG4gICAgICBpZihcbiAgICAgICAgcHJpY2UubGl2ZW1vZGUgfHxcbiAgICAgICAgIXByaWNlLmFjdGl2ZSB8fFxuICAgICAgICBwcmljZS5jdXJyZW5jeSAhPT0gJ3VzZCcgfHxcbiAgICAgICAgcHJpY2UudW5pdF9hbW91bnQgIT09IGV4cGVjdGVkIHx8XG4gICAgICAgIHByaWNlLnJlY3VycmluZz8uaW50ZXJ2YWwgIT09ICdtb250aCcgfHxcbiAgICAgICAgcHJpY2UucmVjdXJyaW5nLmludGVydmFsX2NvdW50ICE9PSAxIHx8XG4gICAgICAgIHByaWNlLnJlY3VycmluZy51c2FnZV90eXBlICE9PSAnbGljZW5zZWQnXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3ByaWNlX21pc21hdGNoJyk7XG4gICAgICB9XG4gICAgfSlcbiAgKTtcbiAgY29uc3QgcmV0cmlldmUgPSBhc3luYyAoY3VzdG9tZXJJZDogc3RyaW5nLCBzdWJzY3JpcHRpb25JZD86IHN0cmluZyk6IFByb21pc2U8UHJvdmlkZXJTdWJzY3JpcHRpb24gfCBudWxsPiA9PiB7XG4gICAgY29uc3QgYWxsID0gYXdhaXQgbGlzdEFsbCgoc3RhcnRpbmdBZnRlcikgPT5cbiAgICAgIHN0cmlwZS5zdWJzY3JpcHRpb25zLmxpc3Qoe2N1c3RvbWVyOiBjdXN0b21lcklkLCBsaW1pdDogMTAwLCBzdGFydGluZ19hZnRlcjogc3RhcnRpbmdBZnRlciwgc3RhdHVzOiAnYWxsJ30pXG4gICAgKTtcbiAgICBjb25zdCBsaXZlID0gYWxsLmZpbHRlcihcbiAgICAgIChzdWJzY3JpcHRpb24pID0+ICFbJ2NhbmNlbGVkJywgJ2luY29tcGxldGVfZXhwaXJlZCddLmluY2x1ZGVzKHN1YnNjcmlwdGlvbi5zdGF0dXMpXG4gICAgKTtcbiAgICBpZihsaXZlLmxlbmd0aCA+IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19zdWJzY3JpcHRpb25fY29uZmxpY3QnKTtcbiAgICB9XG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gc3Vic2NyaXB0aW9uSWQgPyBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9ucy5yZXRyaWV2ZShzdWJzY3JpcHRpb25JZCkgOiBsaXZlWzBdIHx8IG51bGw7XG4gICAgaWYoIXN1YnNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IGN1c3RvbWVyID1cbiAgICAgIHR5cGVvZiBzdWJzY3JpcHRpb24uY3VzdG9tZXIgPT09ICdzdHJpbmcnID8gc3Vic2NyaXB0aW9uLmN1c3RvbWVyIDogc3Vic2NyaXB0aW9uLmN1c3RvbWVyLmlkO1xuICAgIGNvbnN0IGl0ZW1zID0gc3Vic2NyaXB0aW9uLml0ZW1zLmRhdGE7XG4gICAgY29uc3QgYmFzZSA9IGl0ZW1zLmZpbmQoKGl0ZW0pID0+IFtwcmljZXMucHJvLCBwcmljZXMuc3RhcnRlcl0uaW5jbHVkZXMoaXRlbS5wcmljZS5pZCkpO1xuICAgIGNvbnN0IHNlYXQgPSBpdGVtcy5maW5kKChpdGVtKSA9PiBpdGVtLnByaWNlLmlkID09PSBwcmljZXMuc2VhdCk7XG4gICAgaWYoXG4gICAgICBzdWJzY3JpcHRpb24ubGl2ZW1vZGUgfHxcbiAgICAgIGN1c3RvbWVyICE9PSBjdXN0b21lcklkIHx8XG4gICAgICBzdWJzY3JpcHRpb24uaXRlbXMuaGFzX21vcmUgfHxcbiAgICAgICFiYXNlIHx8XG4gICAgICBiYXNlLnF1YW50aXR5ICE9PSAxIHx8XG4gICAgICBpdGVtcy5sZW5ndGggIT09IDEgKyBOdW1iZXIoQm9vbGVhbihzZWF0KSkgfHxcbiAgICAgICFOdW1iZXIuaXNTYWZlSW50ZWdlcihzZWF0Py5xdWFudGl0eSB8fCAwKSB8fFxuICAgICAgKHNlYXQ/LnF1YW50aXR5IHx8IDApIDwgMCB8fFxuICAgICAgKHNlYXQgJiZcbiAgICAgICAgKHNlYXQuY3VycmVudF9wZXJpb2RfZW5kICE9PSBiYXNlLmN1cnJlbnRfcGVyaW9kX2VuZCB8fFxuICAgICAgICAgIHNlYXQuY3VycmVudF9wZXJpb2Rfc3RhcnQgIT09IGJhc2UuY3VycmVudF9wZXJpb2Rfc3RhcnQpKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3N1YnNjcmlwdGlvbl9taXNtYXRjaCcpO1xuICAgIH1cbiAgICBjb25zdCBpbnZvaWNlcyA9IGF3YWl0IGxpc3RBbGwoKHN0YXJ0aW5nQWZ0ZXIpID0+XG4gICAgICBzdHJpcGUuaW52b2ljZXMubGlzdCh7Y3VzdG9tZXI6IGN1c3RvbWVySWQsIGxpbWl0OiAxMDAsIHN0YXJ0aW5nX2FmdGVyOiBzdGFydGluZ0FmdGVyfSlcbiAgICApO1xuICAgIGNvbnN0IHVuc2V0dGxlZCA9IGludm9pY2VzLmZpbHRlcigoaW52b2ljZSkgPT4gaW52b2ljZS5tZXRhZGF0YT8ub3JnYW5pemF0aW9uQmlsbGluZ0pvYlxuICAgICAgJiYgaW52b2ljZS5zdGF0dXMgPT09ICdvcGVuJyAmJiBpbnZvaWNlLmFtb3VudF9yZW1haW5pbmcgPiAwKTtcbiAgICBsZXQge3N0YXR1c30gPSBzdWJzY3JpcHRpb247XG4gICAgaWYoc3Vic2NyaXB0aW9uLnN0YXR1cyA9PT0gJ2FjdGl2ZScgJiYgdW5zZXR0bGVkLmxlbmd0aCkge1xuICAgICAgc3RhdHVzID0gdW5zZXR0bGVkLnNvbWUoKGludm9pY2UpID0+IGludm9pY2UuYXR0ZW1wdGVkKSA/ICdwYXN0X2R1ZScgOiAncGF5bWVudF9wZW5kaW5nJztcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGJhc2VJdGVtSWQ6IGJhc2UuaWQsXG4gICAgICBjYW5jZWxBdFBlcmlvZEVuZDogc3Vic2NyaXB0aW9uLmNhbmNlbF9hdF9wZXJpb2RfZW5kLFxuICAgICAgY3VzdG9tZXJJZCxcbiAgICAgIGV4dHJhU2VhdHM6IHNlYXQ/LnF1YW50aXR5IHx8IDAsXG4gICAgICBpZDogc3Vic2NyaXB0aW9uLmlkLFxuICAgICAgbGFzdEpvYklkOiBzdWJzY3JpcHRpb24ubWV0YWRhdGE/Lm9yZ2FuaXphdGlvbkJpbGxpbmdKb2IgfHwgJycsXG4gICAgICBwZW5kaW5nUGxhbjogc3Vic2NyaXB0aW9uLm1ldGFkYXRhPy5vcmdhbml6YXRpb25QZW5kaW5nUGxhbiA9PT0gJ3N0YXJ0ZXInICYmIGJhc2UucHJpY2UuaWQgIT09IHByaWNlcy5zdGFydGVyID8gJ3N0YXJ0ZXInIDogbnVsbCxcbiAgICAgIHBlcmlvZEVuZDogYmFzZS5jdXJyZW50X3BlcmlvZF9lbmQgKiAxMDAwLFxuICAgICAgcGVyaW9kU3RhcnQ6IGJhc2UuY3VycmVudF9wZXJpb2Rfc3RhcnQgKiAxMDAwLFxuICAgICAgcGxhbjogYmFzZS5wcmljZS5pZCA9PT0gcHJpY2VzLnBybyA/ICdwcm8nIDogJ3N0YXJ0ZXInLFxuICAgICAgc2VhdEl0ZW1JZDogc2VhdD8uaWQgfHwgJycsXG4gICAgICBzdGFydGVkQXQ6IChzdWJzY3JpcHRpb24uc3RhcnRfZGF0ZSB8fCBiYXNlLmN1cnJlbnRfcGVyaW9kX3N0YXJ0KSAqIDEwMDAsXG4gICAgICBzdGF0dXNcbiAgICB9O1xuICB9O1xuICBjb25zdCBzZXNzaW9uUmVzdWx0ID0gKHNlc3Npb246IFN0cmlwZS5DaGVja291dC5TZXNzaW9uKTogQ2hlY2tvdXRSZXN1bHQgPT4ge1xuICAgIGlmKHNlc3Npb24ubGl2ZW1vZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2V2ZW50Jyk7XG4gICAgfVxuICAgIGlmKHNlc3Npb24uc3RhdHVzID09PSAnY29tcGxldGUnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N1YnNjcmlwdGlvbl9leGlzdHMnKTtcbiAgICB9XG4gICAgaWYoc2Vzc2lvbi51cmwgJiYgIXNlc3Npb24udXJsLnN0YXJ0c1dpdGgoJ2h0dHBzOi8vY2hlY2tvdXQuc3RyaXBlLmNvbS8nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3JlZGlyZWN0X2ludmFsaWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHtleHBpcmVzQXQ6IHNlc3Npb24uZXhwaXJlc19hdCAqIDEwMDAsIGlkOiBzZXNzaW9uLmlkLCB1cmw6IHNlc3Npb24udXJsIHx8ICcnfTtcbiAgfTtcbiAgcmV0dXJuIHtcbiAgICBjaGVja291dDogYXN5bmMgKGN1c3RvbWVySWQsIHBsYW4sIGV4dHJhU2VhdHMsIGtleSkgPT4ge1xuICAgICAgZ2V0T3JnYW5pemF0aW9uUGxhbihwbGFuKTtcbiAgICAgIGlmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihleHRyYVNlYXRzKSB8fCBleHRyYVNlYXRzIDwgMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfbWVtYmVyX2NvdW50Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBzZXNzaW9ucyA9IGF3YWl0IGxpc3RBbGwoKHN0YXJ0aW5nQWZ0ZXIpID0+XG4gICAgICAgIHN0cmlwZS5jaGVja291dC5zZXNzaW9ucy5saXN0KHtjdXN0b21lcjogY3VzdG9tZXJJZCwgbGltaXQ6IDEwMCwgc3RhcnRpbmdfYWZ0ZXI6IHN0YXJ0aW5nQWZ0ZXJ9KVxuICAgICAgKTtcbiAgICAgIGNvbnN0IG1hdGNoaW5nID0gc2Vzc2lvbnMuZmlsdGVyKChzZXNzaW9uKSA9PiBzZXNzaW9uLm1ldGFkYXRhPy5vcmdhbml6YXRpb25DaGVja291dEtleSA9PT0ga2V5KTtcbiAgICAgIGlmKG1hdGNoaW5nLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX2NoZWNrb3V0X2NvbmZsaWN0Jyk7XG4gICAgICB9XG4gICAgICBpZihtYXRjaGluZ1swXSkge1xuICAgICAgICByZXR1cm4gc2Vzc2lvblJlc3VsdChtYXRjaGluZ1swXSk7XG4gICAgICB9XG4gICAgICBpZihzZXNzaW9ucy5zb21lKChzZXNzaW9uKSA9PiBzZXNzaW9uLnN0YXR1cyA9PT0gJ29wZW4nICYmIHNlc3Npb24uZXhwaXJlc19hdCAqIDEwMDAgPiBEYXRlLm5vdygpKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NoZWNrb3V0X2luX3Byb2dyZXNzJyk7XG4gICAgICB9XG4gICAgICBpZihhd2FpdCByZXRyaWV2ZShjdXN0b21lcklkKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3N1YnNjcmlwdGlvbl9leGlzdHMnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxpbmVJdGVtcyA9IFtcbiAgICAgICAge3ByaWNlOiBwcmljZXNbcGxhbl0sIHF1YW50aXR5OiAxfSxcbiAgICAgICAgLi4uKGV4dHJhU2VhdHMgPyBbe3ByaWNlOiBwcmljZXMuc2VhdCwgcXVhbnRpdHk6IGV4dHJhU2VhdHN9XSA6IFtdKVxuICAgICAgXTtcbiAgICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCBzdHJpcGUuY2hlY2tvdXQuc2Vzc2lvbnMuY3JlYXRlKFxuICAgICAgICB7XG4gICAgICAgICAgY2FuY2VsX3VybDogYCR7b3JpZ2lufS9zdWJzY3JpcHRpb24vbmV3YCxcbiAgICAgICAgICBjbGllbnRfcmVmZXJlbmNlX2lkOiBrZXksXG4gICAgICAgICAgY3VzdG9tZXI6IGN1c3RvbWVySWQsXG4gICAgICAgICAgbGluZV9pdGVtczogbGluZUl0ZW1zLFxuICAgICAgICAgIG1ldGFkYXRhOiB7b3JnYW5pemF0aW9uQ2hlY2tvdXRLZXk6IGtleSwgcHJpY2VWZXJzaW9uOiAnMjAyNi0xMC12MSd9LFxuICAgICAgICAgIG1vZGU6ICdzdWJzY3JpcHRpb24nLFxuICAgICAgICAgIHN1YnNjcmlwdGlvbl9kYXRhOiB7bWV0YWRhdGE6IHtvcmdhbml6YXRpb25DaGVja291dEtleToga2V5LCBwcmljZVZlcnNpb246ICcyMDI2LTEwLXYxJ319LFxuICAgICAgICAgIHN1Y2Nlc3NfdXJsOiBgJHtvcmlnaW59L3NldHRpbmdzL3N1YnNjcmlwdGlvbj9jaGVja291dD1yZXR1cm5gXG4gICAgICAgIH0sXG4gICAgICAgIHtpZGVtcG90ZW5jeUtleToga2V5fVxuICAgICAgKTtcbiAgICAgIHJldHVybiBzZXNzaW9uUmVzdWx0KHNlc3Npb24pO1xuICAgIH0sXG4gICAgY3VzdG9tZXI6IGFzeW5jIChvcmdhbml6YXRpb25JZCwgZW1haWwpID0+IHtcbiAgICAgIC8vIFNlYXJjaCB0aGUgZnVsbCBjdXN0b21lciBpbnZlbnRvcnk6IG93bmVyc2hpcC9lbWFpbCBjYW4gY2hhbmdlIGFmdGVyIGFuIGFtYmlndW91cyByZXF1ZXN0LlxuICAgICAgY29uc3QgY3VzdG9tZXJzID0gYXdhaXQgbGlzdEFsbCgoc3RhcnRpbmdBZnRlcikgPT5cbiAgICAgICAgc3RyaXBlLmN1c3RvbWVycy5saXN0KHtsaW1pdDogMTAwLCBzdGFydGluZ19hZnRlcjogc3RhcnRpbmdBZnRlcn0pXG4gICAgICApO1xuICAgICAgY29uc3QgbWF0Y2hpbmcgPSBjdXN0b21lcnMuZmlsdGVyKChjdXN0b21lcikgPT4gY3VzdG9tZXIubWV0YWRhdGEub3JnYW5pemF0aW9uSWQgPT09IG9yZ2FuaXphdGlvbklkKTtcbiAgICAgIGlmKG1hdGNoaW5nLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX2N1c3RvbWVyX2NvbmZsaWN0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBjdXN0b21lciA9XG4gICAgICAgIG1hdGNoaW5nWzBdIHx8XG4gICAgICAgIChhd2FpdCBzdHJpcGUuY3VzdG9tZXJzLmNyZWF0ZShcbiAgICAgICAgICB7ZW1haWwsIG1ldGFkYXRhOiB7b3JnYW5pemF0aW9uSWR9fSxcbiAgICAgICAgICB7aWRlbXBvdGVuY3lLZXk6IG9yZ2FuaXphdGlvbktleSgnb3JnYW5pemF0aW9uLWN1c3RvbWVyJywgb3JnYW5pemF0aW9uSWQpfVxuICAgICAgICApKTtcbiAgICAgIGlmKGN1c3RvbWVyLmxpdmVtb2RlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2V2ZW50Jyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY3VzdG9tZXIuaWQ7XG4gICAgfSxcbiAgICBwb3J0YWw6IGFzeW5jIChjdXN0b21lcklkKSA9PiB7XG4gICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gcHJvY2Vzcy5lbnYuT1JHQU5JWkFUSU9OX1NUUklQRV9QT1JUQUxfQ09ORklHVVJBVElPTl9JRCB8fCAnJztcbiAgICAgIGlmKCEvXmJwY19bQS1aYS16MC05XSskLy50ZXN0KGNvbmZpZ3VyYXRpb24pKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndW5zYWZlX2JpbGxpbmdfcG9ydGFsJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBzdHJpcGUuYmlsbGluZ1BvcnRhbC5jb25maWd1cmF0aW9ucy5yZXRyaWV2ZShjb25maWd1cmF0aW9uKTtcbiAgICAgIGlmKFxuICAgICAgICBjb25maWcubGl2ZW1vZGUgfHxcbiAgICAgICAgIWNvbmZpZy5hY3RpdmUgfHxcbiAgICAgICAgY29uZmlnLmZlYXR1cmVzLnN1YnNjcmlwdGlvbl9jYW5jZWwuZW5hYmxlZCB8fFxuICAgICAgICBjb25maWcuZmVhdHVyZXMuc3Vic2NyaXB0aW9uX3VwZGF0ZS5lbmFibGVkIHx8XG4gICAgICAgICFjb25maWcuZmVhdHVyZXMucGF5bWVudF9tZXRob2RfdXBkYXRlLmVuYWJsZWQgfHxcbiAgICAgICAgIWNvbmZpZy5mZWF0dXJlcy5pbnZvaWNlX2hpc3RvcnkuZW5hYmxlZFxuICAgICAgKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcigndW5zYWZlX2JpbGxpbmdfcG9ydGFsJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gKFxuICAgICAgICBhd2FpdCBzdHJpcGUuYmlsbGluZ1BvcnRhbC5zZXNzaW9ucy5jcmVhdGUoe1xuICAgICAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgY3VzdG9tZXI6IGN1c3RvbWVySWQsXG4gICAgICAgICAgcmV0dXJuX3VybDogYCR7b3JpZ2lufS9zZXR0aW5ncy9zdWJzY3JpcHRpb25gXG4gICAgICAgIH0pXG4gICAgICApLnVybDtcbiAgICB9LFxuICAgIHByZXZpZXc6IGFzeW5jIChzdWJzY3JpcHRpb24sIHBsYW4sIHNlYXRzLCBlZmZlY3RpdmVBdCkgPT4ge1xuICAgICAgZ2V0T3JnYW5pemF0aW9uUGxhbihwbGFuKTtcbiAgICAgIGlmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihzZWF0cykgfHwgc2VhdHMgPCAwIHx8ICFOdW1iZXIuaXNTYWZlSW50ZWdlcihlZmZlY3RpdmVBdCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX21lbWJlcl9jb3VudCcpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VhdEl0ZW1zID0gc2VhdHMgPyBbe3ByaWNlOiBwcmljZXMuc2VhdCwgcXVhbnRpdHk6IHNlYXRzfV0gOiBbXTtcbiAgICAgIGNvbnN0IGl0ZW1zID0gW1xuICAgICAgICB7aWQ6IHN1YnNjcmlwdGlvbi5iYXNlSXRlbUlkLCBwcmljZTogcHJpY2VzW3BsYW5dLCBxdWFudGl0eTogMX0sXG4gICAgICAgIC4uLihzdWJzY3JpcHRpb24uc2VhdEl0ZW1JZFxuICAgICAgICAgID8gW3tpZDogc3Vic2NyaXB0aW9uLnNlYXRJdGVtSWQsIHByaWNlOiBwcmljZXMuc2VhdCwgcXVhbnRpdHk6IHNlYXRzfV1cbiAgICAgICAgICA6IHNlYXRJdGVtcylcbiAgICAgIF07XG4gICAgICBjb25zdCBpbnZvaWNlID0gYXdhaXQgc3RyaXBlLmludm9pY2VzLmNyZWF0ZVByZXZpZXcoe1xuICAgICAgICBjdXN0b21lcjogc3Vic2NyaXB0aW9uLmN1c3RvbWVySWQsXG4gICAgICAgIHN1YnNjcmlwdGlvbjogc3Vic2NyaXB0aW9uLmlkLFxuICAgICAgICBzdWJzY3JpcHRpb25fZGV0YWlsczoge2l0ZW1zLCBwcm9yYXRpb25fZGF0ZTogTWF0aC5mbG9vcihlZmZlY3RpdmVBdCAvIDEwMDApfVxuICAgICAgfSk7XG4gICAgICBpZihpbnZvaWNlLmxpdmVtb2RlIHx8IGludm9pY2UubGluZXMuaGFzX21vcmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX2xvb2t1cF9pbmNvbXBsZXRlJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gaW52b2ljZS5saW5lcy5kYXRhXG4gICAgICAgIC5maWx0ZXIoKGxpbmUpID0+IGxpbmUucGFyZW50Py5zdWJzY3JpcHRpb25faXRlbV9kZXRhaWxzPy5wcm9yYXRpb24pXG4gICAgICAgIC5yZWR1Y2UoKHRvdGFsLCBsaW5lKSA9PiB0b3RhbCArIGxpbmUuYW1vdW50LCAwKTtcbiAgICB9LFxuICAgIHJldHJpZXZlLFxuICAgIHVwZGF0ZTogY3JlYXRlT3JnYW5pemF0aW9uQmlsbGluZ1VwZGF0ZXIoc3RyaXBlLCBwcmljZXMpLFxuICAgIHZlcmlmeTogKGJvZHksIHNpZ25hdHVyZSkgPT4gdmVyaWZ5RXZlbnQoc3RyaXBlLCBib2R5LCBzaWduYXR1cmUpXG4gIH07XG59O1xuIl0sIm5hbWVzIjpbIlN0cmlwZSIsInN0cmlwZUFwaVZlcnNpb24iLCJjcmVhdGVPcmdhbml6YXRpb25CaWxsaW5nVXBkYXRlciIsImdldE9yZ2FuaXphdGlvblBsYW4iLCJsaXN0QWxsUHJvdmlkZXJSZWNvcmRzIiwibGlzdEFsbCIsIm9yZ2FuaXphdGlvbktleSIsIm9yZ2FuaXphdGlvbkJpbGxpbmdNb2RlIiwibW9kZSIsInByb2Nlc3MiLCJlbnYiLCJPUkdBTklaQVRJT05fQklMTElOR19NT0RFIiwiaW5jbHVkZXMiLCJFcnJvciIsIm9yZ2FuaXphdGlvblN0cmlwZUNsaWVudCIsImtleSIsIk9SR0FOSVpBVElPTl9TVFJJUEVfU0VDUkVUX0tFWSIsInRlc3QiLCJhcGlWZXJzaW9uIiwibWF4TmV0d29ya1JldHJpZXMiLCJ0aW1lb3V0IiwidHlwZXNjcmlwdCIsInZlcmlmeUV2ZW50Iiwic3RyaXBlIiwiYm9keSIsInNpZ25hdHVyZSIsInNlY3JldCIsIk9SR0FOSVpBVElPTl9TVFJJUEVfV0VCSE9PS19TRUNSRVQiLCJzdGFydHNXaXRoIiwiZXZlbnQiLCJ3ZWJob29rcyIsImNvbnN0cnVjdEV2ZW50Iiwib2JqZWN0IiwiZGF0YSIsImN1c3RvbWVySWQiLCJjdXN0b21lciIsImlkIiwibGl2ZW1vZGUiLCJldmVudElkIiwidHlwZSIsInZlcmlmeU9yZ2FuaXphdGlvbkJpbGxpbmdFdmVudCIsImdldE9yZ2FuaXphdGlvbkJpbGxpbmdQcm92aWRlciIsIm9yaWdpbiIsIk9SR0FOSVpBVElPTl9TSVRFX09SSUdJTiIsInBhcnNlZCIsIlVSTCIsInByb3RvY29sIiwidXNlcm5hbWUiLCJwYXNzd29yZCIsInByaWNlcyIsInBybyIsIk9SR0FOSVpBVElPTl9TVFJJUEVfUFJPX1BSSUNFX0lEIiwic2VhdCIsIk9SR0FOSVpBVElPTl9TVFJJUEVfU0VBVF9QUklDRV9JRCIsInN0YXJ0ZXIiLCJPUkdBTklaQVRJT05fU1RSSVBFX1NUQVJURVJfUFJJQ0VfSUQiLCJQcm9taXNlIiwiYWxsIiwiT2JqZWN0IiwiZW50cmllcyIsIm1hcCIsIm5hbWUiLCJleHBlY3RlZCIsImJhc2VDZW50cyIsInByaWNlIiwicmV0cmlldmUiLCJhY3RpdmUiLCJjdXJyZW5jeSIsInVuaXRfYW1vdW50IiwicmVjdXJyaW5nIiwiaW50ZXJ2YWwiLCJpbnRlcnZhbF9jb3VudCIsInVzYWdlX3R5cGUiLCJzdWJzY3JpcHRpb25JZCIsInN0YXJ0aW5nQWZ0ZXIiLCJzdWJzY3JpcHRpb25zIiwibGlzdCIsImxpbWl0Iiwic3RhcnRpbmdfYWZ0ZXIiLCJzdGF0dXMiLCJsaXZlIiwiZmlsdGVyIiwic3Vic2NyaXB0aW9uIiwibGVuZ3RoIiwiaXRlbXMiLCJiYXNlIiwiZmluZCIsIml0ZW0iLCJoYXNfbW9yZSIsInF1YW50aXR5IiwiTnVtYmVyIiwiQm9vbGVhbiIsImlzU2FmZUludGVnZXIiLCJjdXJyZW50X3BlcmlvZF9lbmQiLCJjdXJyZW50X3BlcmlvZF9zdGFydCIsImludm9pY2VzIiwidW5zZXR0bGVkIiwiaW52b2ljZSIsIm1ldGFkYXRhIiwib3JnYW5pemF0aW9uQmlsbGluZ0pvYiIsImFtb3VudF9yZW1haW5pbmciLCJzb21lIiwiYXR0ZW1wdGVkIiwiYmFzZUl0ZW1JZCIsImNhbmNlbEF0UGVyaW9kRW5kIiwiY2FuY2VsX2F0X3BlcmlvZF9lbmQiLCJleHRyYVNlYXRzIiwibGFzdEpvYklkIiwicGVuZGluZ1BsYW4iLCJvcmdhbml6YXRpb25QZW5kaW5nUGxhbiIsInBlcmlvZEVuZCIsInBlcmlvZFN0YXJ0IiwicGxhbiIsInNlYXRJdGVtSWQiLCJzdGFydGVkQXQiLCJzdGFydF9kYXRlIiwic2Vzc2lvblJlc3VsdCIsInNlc3Npb24iLCJ1cmwiLCJleHBpcmVzQXQiLCJleHBpcmVzX2F0IiwiY2hlY2tvdXQiLCJzZXNzaW9ucyIsIm1hdGNoaW5nIiwib3JnYW5pemF0aW9uQ2hlY2tvdXRLZXkiLCJEYXRlIiwibm93IiwibGluZUl0ZW1zIiwiY3JlYXRlIiwiY2FuY2VsX3VybCIsImNsaWVudF9yZWZlcmVuY2VfaWQiLCJsaW5lX2l0ZW1zIiwicHJpY2VWZXJzaW9uIiwic3Vic2NyaXB0aW9uX2RhdGEiLCJzdWNjZXNzX3VybCIsImlkZW1wb3RlbmN5S2V5Iiwib3JnYW5pemF0aW9uSWQiLCJlbWFpbCIsImN1c3RvbWVycyIsInBvcnRhbCIsImNvbmZpZ3VyYXRpb24iLCJPUkdBTklaQVRJT05fU1RSSVBFX1BPUlRBTF9DT05GSUdVUkFUSU9OX0lEIiwiY29uZmlnIiwiYmlsbGluZ1BvcnRhbCIsImNvbmZpZ3VyYXRpb25zIiwiZmVhdHVyZXMiLCJzdWJzY3JpcHRpb25fY2FuY2VsIiwiZW5hYmxlZCIsInN1YnNjcmlwdGlvbl91cGRhdGUiLCJwYXltZW50X21ldGhvZF91cGRhdGUiLCJpbnZvaWNlX2hpc3RvcnkiLCJyZXR1cm5fdXJsIiwicHJldmlldyIsInNlYXRzIiwiZWZmZWN0aXZlQXQiLCJzZWF0SXRlbXMiLCJjcmVhdGVQcmV2aWV3Iiwic3Vic2NyaXB0aW9uX2RldGFpbHMiLCJwcm9yYXRpb25fZGF0ZSIsIk1hdGgiLCJmbG9vciIsImxpbmVzIiwibGluZSIsInBhcmVudCIsInN1YnNjcmlwdGlvbl9pdGVtX2RldGFpbHMiLCJwcm9yYXRpb24iLCJyZWR1Y2UiLCJ0b3RhbCIsImFtb3VudCIsInVwZGF0ZSIsInZlcmlmeSJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBT0EsWUFBWSxTQUFTO0FBRTVCLFNBQVFDLGdCQUFnQixRQUFPLDBCQUEwQjtBQUN6RCxTQUFRQyxnQ0FBZ0MsUUFBTyxzQkFBc0I7QUFDckUsU0FBUUMsbUJBQW1CLFFBQU8sYUFBYTtBQUMvQyxTQUFRQywwQkFBMEJDLE9BQU8sUUFBTywwQkFBMEI7QUFDMUUsU0FBUUMsZUFBZSxRQUFPLGFBQWE7QUFXM0MsT0FBTyxNQUFNQywwQkFBMEI7SUFDckMsTUFBTUMsT0FBT0MsUUFBUUMsR0FBRyxDQUFDQyx5QkFBeUIsSUFBSTtJQUN0RCxJQUFHLENBQUM7UUFBQztRQUFZO0tBQU8sQ0FBQ0MsUUFBUSxDQUFDSixPQUFPO1FB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
|
|
@@ -385,4 +385,4 @@ export const createOrganizationBillingUpdater = (stripe, prices)=>async (subscri
|
|
|
385
385
|
};
|
|
386
386
|
};
|
|
387
387
|
|
|
388
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb3JnYW5pemF0aW9ucy9iaWxsaW5nVXBkYXRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBGaW5hbmNpYWwgd3JpdGVzIGFyZSBvcmRlcmVkIGFuZCBmZW5jZWQ7IG1ldGFkYXRhIHJlY2VpcHRzIHN1cnZpdmUgcHJvdmlkZXIgaWRlbXBvdGVuY3kgZXhwaXJ5LiAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tYXdhaXQtaW4tbG9vcCAqL1xuaW1wb3J0IHtnZXRPcmdhbml6YXRpb25QbGFufSBmcm9tICcuL3BsYW5zLmpzJztcbmltcG9ydCB7bGlzdEFsbFByb3ZpZGVyUmVjb3Jkc30gZnJvbSAnLi9wcm92aWRlclBhZ2luYXRpb24uanMnO1xuaW1wb3J0IHtvcmdhbml6YXRpb25LZXl9IGZyb20gJy4vc3RvcmUuanMnO1xuXG5pbXBvcnQgdHlwZSBTdHJpcGUgZnJvbSAnc3RyaXBlJztcbmltcG9ydCB0eXBlIHtCaWxsaW5nQWRqdXN0bWVudCwgQmlsbGluZ1Byb3ZpZGVyLCBQbGFuS2V5fSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBQcmljZXMgPSBSZWFkb25seTx7cHJvOiBzdHJpbmc7IHNlYXQ6IHN0cmluZzsgc3RhcnRlcjogc3RyaW5nfT47XG50eXBlIFBlcmlvZCA9IFJlYWRvbmx5PHtlbmQ6IG51bWJlcjsgc3RhcnQ6IG51bWJlcn0+O1xuY29uc3QgcHVibGlzaGVkUGxhbiA9ICh2YWx1ZTogdW5rbm93bik6IFBsYW5LZXkgPT4gZ2V0T3JnYW5pemF0aW9uUGxhbih2YWx1ZSBhcyBQbGFuS2V5KS5rZXk7XG5jb25zdCBzYWZlUXVhbnRpdHkgPSAodmFsdWU6IHVua25vd24pOiBudW1iZXIgPT4ge1xuICBpZih0eXBlb2YgdmFsdWUgIT09ICdudW1iZXInIHx8ICFOdW1iZXIuaXNTYWZlSW50ZWdlcih2YWx1ZSkgfHwgdmFsdWUgPCAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfam9iJyk7XG4gIH1cbiAgcmV0dXJuIHZhbHVlO1xufTtcbmNvbnN0IGFkanVzdG1lbnRSZWNlaXB0ID0gKGl0ZW06IFN0cmlwZS5JbnZvaWNlSXRlbSk6IEJpbGxpbmdBZGp1c3RtZW50ID0+ICh7XG4gIGFtb3VudENlbnRzOiBpdGVtLmFtb3VudCxcbiAgcGVyaW9kRW5kOiBOdW1iZXIoaXRlbS5tZXRhZGF0YS5wZXJpb2RFbmQpLFxuICBwZXJpb2RTdGFydDogTnVtYmVyKGl0ZW0ubWV0YWRhdGEucGVyaW9kU3RhcnQpLFxuICBwcm92aWRlcklkOiBpdGVtLmlkXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU9yZ2FuaXphdGlvbkJpbGxpbmdVcGRhdGVyID1cbiAgKHN0cmlwZTogU3RyaXBlLCBwcmljZXM6IFByaWNlcyk6IEJpbGxpbmdQcm92aWRlclsndXBkYXRlJ10gPT5cbiAgICBhc3luYyAoc3Vic2NyaXB0aW9uLCBqb2IsIGZlbmNlKSA9PiB7XG4gICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgaWYoam9iLnByaWNlVmVyc2lvbiAhPT0gJzIwMjYtMTAtdjEnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19yYXRlX3ZlcnNpb25fdW5hdmFpbGFibGUnKTtcbiAgICAgIH1cbiAgICAgIGlmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihqb2IuZWZmZWN0aXZlQXQpIHx8IGpvYi5lZmZlY3RpdmVBdCA8IDApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfam9iJyk7XG4gICAgICB9XG4gICAgICBjb25zdCByYXcgPSBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9ucy5yZXRyaWV2ZShzdWJzY3JpcHRpb24uaWQpO1xuICAgICAgY29uc3QgY3VzdG9tZXIgPSB0eXBlb2YgcmF3LmN1c3RvbWVyID09PSAnc3RyaW5nJyA/IHJhdy5jdXN0b21lciA6IHJhdy5jdXN0b21lci5pZDtcbiAgICAgIGNvbnN0IGJhc2UgPSByYXcuaXRlbXMuZGF0YS5maW5kKChpdGVtKSA9PiBbcHJpY2VzLnBybywgcHJpY2VzLnN0YXJ0ZXJdLmluY2x1ZGVzKGl0ZW0ucHJpY2UuaWQpKTtcbiAgICAgIGNvbnN0IHNlYXQgPSByYXcuaXRlbXMuZGF0YS5maW5kKChpdGVtKSA9PiBpdGVtLnByaWNlLmlkID09PSBwcmljZXMuc2VhdCk7XG4gICAgICBpZihyYXcubGl2ZW1vZGUgfHwgY3VzdG9tZXIgIT09IHN1YnNjcmlwdGlvbi5jdXN0b21lcklkIHx8ICFiYXNlIHx8IHJhdy5pdGVtcy5oYXNfbW9yZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfc3Vic2NyaXB0aW9uX21pc21hdGNoJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IGxpc3RBbGxQcm92aWRlclJlY29yZHMoKHN0YXJ0aW5nQWZ0ZXIpID0+XG4gICAgICAgIHN0cmlwZS5pbnZvaWNlSXRlbXMubGlzdCh7Y3VzdG9tZXIsIGxpbWl0OiAxMDAsIHN0YXJ0aW5nX2FmdGVyOiBzdGFydGluZ0FmdGVyfSlcbiAgICAgICk7XG4gICAgICBjb25zdCBhZGp1c3RtZW50cyA9IGV4aXN0aW5nXG4gICAgICAgIC5maWx0ZXIoKGl0ZW0pID0+IGl0ZW0ubWV0YWRhdGEub3JnYW5pemF0aW9uQmlsbGluZ0pvYiA9PT0gam9iLmpvYklkKVxuICAgICAgICAubWFwKGFkanVzdG1lbnRSZWNlaXB0KTtcbiAgICAgIGlmKHJhdy5tZXRhZGF0YS5vcmdhbml6YXRpb25CaWxsaW5nSm9iID09PSBqb2Iuam9iSWQpIHtcbiAgICAgICAgcmV0dXJuIHthZGp1c3RtZW50c307XG4gICAgICB9XG4gICAgICBpZihqb2Iua2luZCA9PT0gJ3NlYXRzJyAmJiBqb2IuZWZmZWN0aXZlQXQgPCByYXcuc3RhcnRfZGF0ZSAqIDEwMDApIHtcbiAgICAgICAgcmV0dXJuIHthZGp1c3RtZW50c307XG4gICAgICB9XG4gICAgICBjb25zdCBzY2hlZHVsZUlkID0gdHlwZW9mIHJhdy5zY2hlZHVsZSA9PT0gJ3N0cmluZycgPyByYXcuc2NoZWR1bGUgOiByYXcuc2NoZWR1bGU/LmlkO1xuICAgICAgY29uc3Qgc2NoZWR1bGUgPSBzY2hlZHVsZUlkID8gYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvblNjaGVkdWxlcy5yZXRyaWV2ZShzY2hlZHVsZUlkKSA6IG51bGw7XG4gICAgICBjb25zdCBib3VuZGFyeUNoYW5nZSA9IGpvYi5raW5kID09PSAnY2FuY2VsJyB8fCAoam9iLmtpbmQgPT09ICdwbGFuJyAmJiBqb2IuZGVzaXJlZC5jaGFuZ2VBdCA9PT0gJ3BlcmlvZF9lbmQnKTtcbiAgICAgIGNvbnN0IHRhcmdldFBlcmlvZEVuZCA9IE51bWJlcihqb2IuZGVzaXJlZC50YXJnZXRQZXJpb2RFbmQpO1xuICAgICAgY29uc3Qgc2NoZWR1bGVCb3VuZGFyeSA9IGJvdW5kYXJ5Q2hhbmdlID8gdGFyZ2V0UGVyaW9kRW5kIDogTnVtYmVyKHJhdy5tZXRhZGF0YS5vcmdhbml6YXRpb25QZW5kaW5nQm91bmRhcnkpO1xuICAgICAgY29uc3Qga2V5ID0gKG9wZXJhdGlvbjogc3RyaW5nKTogc3RyaW5nID0+IG9yZ2FuaXphdGlvbktleSgnYmlsbGluZy1qb2InLCBqb2Iuam9iSWQsIG9wZXJhdGlvbik7XG4gICAgICBjb25zdCBtZXRhZGF0YSA9IChwZW5kaW5nUGxhbiA9ICcnKSA9PiAoe1xuICAgICAgICBvcmdhbml6YXRpb25CaWxsaW5nSm9iOiBqb2Iuam9iSWQsXG4gICAgICAgIG9yZ2FuaXphdGlvblBlbmRpbmdCb3VuZGFyeTogcGVuZGluZ1BsYW4gPyBTdHJpbmcoc2NoZWR1bGVCb3VuZGFyeSkgOiAnJyxcbiAgICAgICAgb3JnYW5pemF0aW9uUGVuZGluZ1BsYW46IHBlbmRpbmdQbGFuXG4gICAgICB9KTtcbiAgICAgIGxldCBjbG9zZWQgPSByYXcuc3RhdHVzID09PSAnY2FuY2VsZWQnO1xuICAgICAgaWYoYm91bmRhcnlDaGFuZ2UgJiYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcih0YXJnZXRQZXJpb2RFbmQpIHx8IHRhcmdldFBlcmlvZEVuZCA8PSBqb2IuZWZmZWN0aXZlQXRcbiAgICAgICAgfHwgam9iLmRlc2lyZWQuc3Vic2NyaXB0aW9uSWQgIT09IHJhdy5pZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX2NoYW5nZV9ib3VuZGFyeV9yZXF1aXJlZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgbGF0ZUJvdW5kYXJ5ID0gYm91bmRhcnlDaGFuZ2UgJiYgdGFyZ2V0UGVyaW9kRW5kIDw9IERhdGUubm93KCk7XG5cbiAgICAgIGlmKGpvYi5raW5kID09PSAnY2FuY2VsJyAmJiAhY2xvc2VkKSB7XG4gICAgICAgIGlmKHNjaGVkdWxlSWQpIHtcbiAgICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICAgIGF3YWl0IHN0cmlwZS5zdWJzY3JpcHRpb25TY2hlZHVsZXMucmVsZWFzZShzY2hlZHVsZUlkLCB7fSwge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ3JlbGVhc2UnKX0pO1xuICAgICAgICB9XG4gICAgICAgIGlmKCFsYXRlQm91bmRhcnkpIHtcbiAgICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICAgIGF3YWl0IHN0cmlwZS5zdWJzY3JpcHRpb25zLnVwZGF0ZShyYXcuaWQsIHtjYW5jZWxfYXQ6IHRhcmdldFBlcmlvZEVuZCAvIDEwMDAsIG1ldGFkYXRhOiB7Li4ubWV0YWRhdGEoKSwgb3JnYW5pemF0aW9uQ2FuY2VsQm91bmRhcnk6IFN0cmluZyh0YXJnZXRQZXJpb2RFbmQpfSwgcHJvcmF0aW9uX2JlaGF2aW9yOiAnbm9uZSd9LCB7aWRlbXBvdGVuY3lLZXk6IGtleSgnY2FuY2VsJyl9KTtcbiAgICAgICAgICByZXR1cm4ge2FkanVzdG1lbnRzfTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9ucy51cGRhdGUocmF3LmlkLCB7bWV0YWRhdGE6IHtvcmdhbml6YXRpb25DYW5jZWxCb3VuZGFyeTogU3RyaW5nKHRhcmdldFBlcmlvZEVuZCl9fSwge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ2NhbmNlbC1pbnRlbnQnKX0pO1xuICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9ucy5jYW5jZWwocmF3LmlkLCB7aW52b2ljZV9ub3c6IGZhbHNlLCBwcm9yYXRlOiBmYWxzZX0sIHtpZGVtcG90ZW5jeUtleToga2V5KCdjYW5jZWwnKX0pO1xuICAgICAgICBjbG9zZWQgPSB0cnVlO1xuICAgICAgfVxuICAgICAgaWYoIVsnY2FuY2VsJywgJ3BsYW4nLCAnc2VhdHMnXS5pbmNsdWRlcyhqb2Iua2luZCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfam9iJyk7XG4gICAgICB9XG4gICAgICBjb25zdCBjdXJyZW50UGxhbiA9IGJhc2UucHJpY2UuaWQgPT09IHByaWNlcy5wcm8gPyAncHJvJyA6ICdzdGFydGVyJztcbiAgICAgIGNvbnN0IHBsYW4gPSBqb2Iua2luZCA9PT0gJ3BsYW4nID8gcHVibGlzaGVkUGxhbihqb2IuZGVzaXJlZC5wbGFuKSA6IGN1cnJlbnRQbGFuO1xuICAgICAgY29uc3Qgc2VhdHMgPSBqb2Iua2luZCA9PT0gJ3NlYXRzJyA/IHNhZmVRdWFudGl0eShqb2IuZGVzaXJlZC5leHRyYVNlYXRzKSA6IHNlYXQ/LnF1YW50aXR5IHx8IDA7XG4gICAgICBsZXQgcGVuZGluZ1BsYW46IFBsYW5LZXkgfCBudWxsID0gbnVsbDtcbiAgICAgIGlmKGpvYi5raW5kID09PSAncGxhbicgJiYgam9iLmRlc2lyZWQuY2hhbmdlQXQgPT09ICdwZXJpb2RfZW5kJyAmJiAhbGF0ZUJvdW5kYXJ5KSB7XG4gICAgICAgIHBlbmRpbmdQbGFuID0gcGxhbjtcbiAgICAgIH0gZWxzZSBpZighbGF0ZUJvdW5kYXJ5ICYmIHJhdy5tZXRhZGF0YS5vcmdhbml6YXRpb25QZW5kaW5nUGxhbiA9PT0gJ3N0YXJ0ZXInICYmIGN1cnJlbnRQbGFuICE9PSAnc3RhcnRlcicpIHtcbiAgICAgICAgcGVuZGluZ1BsYW4gPSAnc3RhcnRlcic7XG4gICAgICB9XG4gICAgICBpZihwZW5kaW5nUGxhbiAmJiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKHNjaGVkdWxlQm91bmRhcnkpIHx8IHNjaGVkdWxlQm91bmRhcnkgPD0gRGF0ZS5ub3coKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX2NoYW5nZV9ib3VuZGFyeV9yZXF1aXJlZCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcGhhc2VJdGVtcyA9IChwaGFzZVBsYW46IFBsYW5LZXkpID0+IFtcbiAgICAgICAge3ByaWNlOiBwcmljZXNbcGhhc2VQbGFuXSwgcXVhbnRpdHk6IDF9LFxuICAgICAgICAuLi4oc2VhdHMgPyBbe3ByaWNlOiBwcmljZXMuc2VhdCwgcXVhbnRpdHk6IHNlYXRzfV0gOiBbXSlcbiAgICAgIF07XG4gICAgICBjb25zdCBhcHBseVNjaGVkdWxlID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICBjb25zdCBpZCA9XG4gICAgICAgICAgc2NoZWR1bGVJZCB8fFxuICAgICAgICAoXG4gICAgICAgICAgYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvblNjaGVkdWxlcy5jcmVhdGUoXG4gICAgICAgICAgICB7ZnJvbV9zdWJzY3JpcHRpb246IHJhdy5pZH0sXG4gICAgICAgICAgICB7aWRlbXBvdGVuY3lLZXk6IGtleSgnc2NoZWR1bGUtY3JlYXRlJyl9XG4gICAgICAgICAgKVxuICAgICAgICApLmlkO1xuICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9uU2NoZWR1bGVzLnVwZGF0ZShcbiAgICAgICAgICBpZCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBlbmRfYmVoYXZpb3I6ICdyZWxlYXNlJyxcbiAgICAgICAgICAgIG1ldGFkYXRhOiBtZXRhZGF0YShwZW5kaW5nUGxhbiEpLFxuICAgICAgICAgICAgcGhhc2VzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBlbmRfZGF0ZTogc2NoZWR1bGVCb3VuZGFyeSAvIDEwMDAsXG4gICAgICAgICAgICAgICAgaXRlbXM6IHBoYXNlSXRlbXMoY3VycmVudFBsYW4pLFxuICAgICAgICAgICAgICAgIHByb3JhdGlvbl9iZWhhdmlvcjogJ25vbmUnLFxuICAgICAgICAgICAgICAgIHN0YXJ0X2RhdGU6IGJhc2UuY3VycmVudF9wZXJpb2Rfc3RhcnRcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGR1cmF0aW9uOiB7aW50ZXJ2YWw6ICdtb250aCcsIGludGVydmFsX2NvdW50OiAxfSxcbiAgICAgICAgICAgICAgICBpdGVtczogcGhhc2VJdGVtcyhwZW5kaW5nUGxhbiEpLFxuICAgICAgICAgICAgICAgIHByb3JhdGlvbl9iZWhhdmlvcjogJ25vbmUnLFxuICAgICAgICAgICAgICAgIHN0YXJ0X2RhdGU6IHNjaGVkdWxlQm91bmRhcnkgLyAxMDAwXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwcm9yYXRpb25fYmVoYXZpb3I6ICdub25lJ1xuICAgICAgICAgIH0sXG4gICAgICAgICAge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ3NjaGVkdWxlLXVwZGF0ZScpfVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIGNvbnN0IG1hcmtBcHBsaWVkID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9ucy51cGRhdGUoXG4gICAgICAgICAgcmF3LmlkLFxuICAgICAgICAgIHttZXRhZGF0YTogbWV0YWRhdGEocGVuZGluZ1BsYW4gfHwgJycpfSxcbiAgICAgICAgICB7aWRlbXBvdGVuY3lLZXk6IGtleSgnbWFya2VyJyl9XG4gICAgICAgICk7XG4gICAgICB9O1xuICAgICAgaWYoc2NoZWR1bGU/Lm1ldGFkYXRhLm9yZ2FuaXphdGlvbkJpbGxpbmdKb2IgPT09IGpvYi5qb2JJZCkge1xuICAgICAgICBhd2FpdCBtYXJrQXBwbGllZCgpO1xuICAgICAgICByZXR1cm4ge2FkanVzdG1lbnRzfTtcbiAgICAgIH1cbiAgICAgIGlmKGpvYi5raW5kID09PSAncGxhbicgJiYgam9iLmRlc2lyZWQuY2hhbmdlQXQgPT09ICdwZXJpb2RfZW5kJyAmJiAhbGF0ZUJvdW5kYXJ5KSB7XG4gICAgICAgIGF3YWl0IGFwcGx5U2NoZWR1bGUoKTtcbiAgICAgICAgYXdhaXQgbWFya0FwcGxpZWQoKTtcbiAgICAgICAgcmV0dXJuIHthZGp1c3RtZW50c307XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGN1cnJlbnRSYXRlID0gZ2V0T3JnYW5pemF0aW9uUGxhbihjdXJyZW50UGxhbikuYmFzZUNlbnRzICsgKHNlYXRzICogODAwKTtcbiAgICAgIGxldCByYXRlRGVsdGEgPSAtY3VycmVudFJhdGU7XG4gICAgICBpZihqb2Iua2luZCAhPT0gJ2NhbmNlbCcpIHtcbiAgICAgICAgcmF0ZURlbHRhID0gam9iLmtpbmQgPT09ICdzZWF0cydcbiAgICAgICAgICA/IChzZWF0cyAtIHNhZmVRdWFudGl0eShqb2IuZGVzaXJlZC5wcmV2aW91c0V4dHJhU2VhdHMpKSAqIDgwMFxuICAgICAgICAgIDogZ2V0T3JnYW5pemF0aW9uUGxhbihwbGFuKS5iYXNlQ2VudHMgLVxuICAgICAgICAgIGdldE9yZ2FuaXphdGlvblBsYW4ocHVibGlzaGVkUGxhbihqb2IuZGVzaXJlZC5wcmV2aW91c1BsYW4pKS5iYXNlQ2VudHM7XG4gICAgICB9XG4gICAgICBpZihcbiAgICAgICAgam9iLmtpbmQgPT09ICdwbGFuJyAmJlxuICAgICAgKCghbGF0ZUJvdW5kYXJ5ICYmIChqb2IuZGVzaXJlZC5jaGFuZ2VBdCAhPT0gJ2ltbWVkaWF0ZScgfHwgcmF0ZURlbHRhIDw9IDApKSB8fCAobGF0ZUJvdW5kYXJ5ICYmIHJhdGVEZWx0YSA+PSAwKSB8fCByYXcuc3RhdHVzICE9PSAnYWN0aXZlJylcbiAgICAgICkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfYmlsbGluZ19qb2InKTtcbiAgICAgIH1cbiAgICAgIGlmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihyYXRlRGVsdGEpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2pvYicpO1xuICAgICAgfVxuICAgICAgY29uc3QgaW52b2ljZXMgPSBhd2FpdCBsaXN0QWxsUHJvdmlkZXJSZWNvcmRzKChzdGFydGluZ0FmdGVyKSA9PlxuICAgICAgICBzdHJpcGUuaW52b2ljZXMubGlzdCh7Y3VzdG9tZXIsIGxpbWl0OiAxMDAsIHN0YXJ0aW5nX2FmdGVyOiBzdGFydGluZ0FmdGVyLCBzdWJzY3JpcHRpb246IHJhdy5pZH0pXG4gICAgICApO1xuICAgICAgaWYoaW52b2ljZXMuc29tZSgoaW52b2ljZSkgPT4gaW52b2ljZS5tZXRhZGF0YT8ub3JnYW5pemF0aW9uQmlsbGluZ0pvYiA9PT0gam9iLmpvYklkXG4gICAgICAgICYmICghTnVtYmVyLmlzU2FmZUludGVnZXIoTnVtYmVyKGludm9pY2UubWV0YWRhdGEucGVyaW9kU3RhcnQpKVxuICAgICAgICAgIHx8ICFOdW1iZXIuaXNTYWZlSW50ZWdlcihOdW1iZXIoaW52b2ljZS5tZXRhZGF0YS5wZXJpb2RFbmQpKVxuICAgICAgICAgIHx8IE51bWJlcihpbnZvaWNlLm1ldGFkYXRhLnBlcmlvZEVuZCkgPD0gTnVtYmVyKGludm9pY2UubWV0YWRhdGEucGVyaW9kU3RhcnQpKSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3NldHRsZW1lbnRfY29uZmxpY3QnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBlcmlvZHMgPSBuZXcgTWFwPHN0cmluZywgUGVyaW9kPigpO1xuICAgICAgY29uc3QgcmVuZXdhbFJhdGVzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgICAgIGZvcihjb25zdCBpbnZvaWNlIG9mIGludm9pY2VzKSB7XG4gICAgICAgIGlmKGludm9pY2UubGluZXMuaGFzX21vcmUpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfbG9va3VwX2luY29tcGxldGUnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpbnZvaWNlUmF0ZXMgPSBuZXcgTWFwPHN0cmluZywgbnVtYmVyPigpO1xuICAgICAgICBmb3IoY29uc3QgbGluZSBvZiBpbnZvaWNlLmxpbmVzLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBwcmljZSA9IGxpbmUucHJpY2luZz8ucHJpY2VfZGV0YWlscz8ucHJpY2U7XG4gICAgICAgICAgY29uc3QgcHJpY2VJZCA9IHR5cGVvZiBwcmljZSA9PT0gJ3N0cmluZycgPyBwcmljZSA6IHByaWNlPy5pZDtcbiAgICAgICAgICBpZihcbiAgICAgICAgICAgIFtwcmljZXMucHJvLCBwcmljZXMuc3RhcnRlciwgcHJpY2VzLnNlYXRdLmluY2x1ZGVzKHByaWNlSWQgfHwgJycpICYmXG4gICAgICAgICAgIWxpbmUucGFyZW50Py5zdWJzY3JpcHRpb25faXRlbV9kZXRhaWxzPy5wcm9yYXRpb25cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHBlcmlvZCA9IHtlbmQ6IGxpbmUucGVyaW9kLmVuZCAqIDEwMDAsIHN0YXJ0OiBsaW5lLnBlcmlvZC5zdGFydCAqIDEwMDB9O1xuICAgICAgICAgICAgY29uc3QgcGVyaW9kS2V5ID0gYCR7cGVyaW9kLnN0YXJ0fS0ke3BlcmlvZC5lbmR9YDtcbiAgICAgICAgICAgIGlmKHByaWNlSWQgIT09IHByaWNlcy5zZWF0KSB7XG4gICAgICAgICAgICAgIHBlcmlvZHMuc2V0KHBlcmlvZEtleSwgcGVyaW9kKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHJhdGUgPSBwcmljZUlkID09PSBwcmljZXMuc2VhdCA/IDgwMCAqIHNhZmVRdWFudGl0eShsaW5lLnF1YW50aXR5KSA6IGdldE9yZ2FuaXphdGlvblBsYW4ocHJpY2VJZCA9PT0gcHJpY2VzLnBybyA/ICdwcm8nIDogJ3N0YXJ0ZXInKS5iYXNlQ2VudHM7XG4gICAgICAgICAgICBpbnZvaWNlUmF0ZXMuc2V0KHBlcmlvZEtleSwgKGludm9pY2VSYXRlcy5nZXQocGVyaW9kS2V5KSB8fCAwKSArIHJhdGUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IoY29uc3QgW3BlcmlvZEtleSwgcmF0ZV0gb2YgaW52b2ljZVJhdGVzKSB7XG4gICAgICAgICAgaWYocmVuZXdhbFJhdGVzLmhhcyhwZXJpb2RLZXkpICYmIHJlbmV3YWxSYXRlcy5nZXQocGVyaW9kS2V5KSAhPT0gcmF0ZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3BlcmlvZF9oaXN0b3J5X3JlcXVpcmVkJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlbmV3YWxSYXRlcy5zZXQocGVyaW9kS2V5LCByYXRlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQ2FuY2VsZWQgc3Vic2NyaXB0aW9ucyBtYXkgdHJ1bmNhdGUgaXRlbSBkYXRlcy4gTGljZW5zZWQgcmVuZXdhbCBpbnZvaWNlcyByZXRhaW4gdGhlIGZ1bGwgY2hhcmdlZCBwZXJpb2QuXG4gICAgICBjb25zdCBjdXJyZW50U3RhcnQgPSBiYXNlLmN1cnJlbnRfcGVyaW9kX3N0YXJ0ICogMTAwMDtcbiAgICAgIGNvbnN0IGN1cnJlbnRQZXJpb2QgPSB7XG4gICAgICAgIGVuZDogTWF0aC5tYXgoYmFzZS5jdXJyZW50X3BlcmlvZF9lbmQgKiAxMDAwLCAuLi5bLi4ucGVyaW9kcy52YWx1ZXMoKV1cbiAgICAgICAgICAuZmlsdGVyKChwZXJpb2QpID0+IHBlcmlvZC5zdGFydCA9PT0gY3VycmVudFN0YXJ0KS5tYXAoKHBlcmlvZCkgPT4gcGVyaW9kLmVuZCkpLFxuICAgICAgICBzdGFydDogY3VycmVudFN0YXJ0XG4gICAgICB9O1xuICAgICAgcGVyaW9kcy5zZXQoYCR7Y3VycmVudFBlcmlvZC5zdGFydH0tJHtjdXJyZW50UGVyaW9kLmVuZH1gLCBjdXJyZW50UGVyaW9kKTtcbiAgICAgIGNvbnN0IGVmZmVjdGl2ZUF0ID0gTWF0aC5mbG9vcigoYm91bmRhcnlDaGFuZ2UgPyB0YXJnZXRQZXJpb2RFbmQgOiBqb2IuZWZmZWN0aXZlQXQpIC8gMTAwMCkgKiAxMDAwO1xuICAgICAgY29uc3QgY2FuY2VsZWRCb3VuZGFyeSA9IE51bWJlcihyYXcubWV0YWRhdGEub3JnYW5pemF0aW9uQ2FuY2VsQm91bmRhcnkpO1xuICAgICAgY29uc3QgY2hhcmdlVGhyb3VnaCA9IGNsb3NlZCAmJiBOdW1iZXIuaXNTYWZlSW50ZWdlcihjYW5jZWxlZEJvdW5kYXJ5KSAmJiBjYW5jZWxlZEJvdW5kYXJ5ID4gMCAmJiBqb2Iua2luZCAhPT0gJ2NhbmNlbCdcbiAgICAgICAgPyBNYXRoLm1pbihjdXJyZW50UGVyaW9kLmVuZCwgY2FuY2VsZWRCb3VuZGFyeSkgOiBjdXJyZW50UGVyaW9kLmVuZDtcbiAgICAgIGNvbnN0IGFwcGxpY2FibGUgPSBbLi4ucGVyaW9kcy52YWx1ZXMoKV1cbiAgICAgICAgLmZpbHRlcigocGVyaW9kKSA9PiBwZXJpb2QuZW5kID4gZWZmZWN0aXZlQXQgJiYgcGVyaW9kLnN0YXJ0IDw9IGN1cnJlbnRQZXJpb2Quc3RhcnQpXG4gICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLnN0YXJ0IC0gYi5zdGFydCk7XG4gICAgICBsZXQgY292ZXJlZFRocm91Z2ggPSBlZmZlY3RpdmVBdDtcbiAgICAgIGZvcihjb25zdCBwZXJpb2Qgb2YgYXBwbGljYWJsZSkge1xuICAgICAgICBpZihcbiAgICAgICAgICAhTnVtYmVyLmlzU2FmZUludGVnZXIocGVyaW9kLnN0YXJ0KSB8fFxuICAgICAgICAhTnVtYmVyLmlzU2FmZUludGVnZXIocGVyaW9kLmVuZCkgfHxcbiAgICAgICAgcGVyaW9kLmVuZCA8PSBwZXJpb2Quc3RhcnQgfHxcbiAgICAgICAgcGVyaW9kLnN0YXJ0ID4gY292ZXJlZFRocm91Z2hcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3BlcmlvZF9oaXN0b3J5X3JlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICAgICAgY292ZXJlZFRocm91Z2ggPSBNYXRoLm1heChjb3ZlcmVkVGhyb3VnaCwgcGVyaW9kLmVuZCk7XG4gICAgICB9XG4gICAgICBpZihjb3ZlcmVkVGhyb3VnaCA8IGNoYXJnZVRocm91Z2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3BlcmlvZF9oaXN0b3J5X3JlcXVpcmVkJyk7XG4gICAgICB9XG4gICAgICAvLyBGaXhlZCwgcHVibGlzaGVkIFVTRCByYXRlcy4gQXBwbHkgb3JpZ2luYWwtdGltZSBhZGp1c3RtZW50cyBiZWZvcmUgZGlzYWJsaW5nIGF1dG9tYXRpYyBwcm92aWRlciBwcm9yYXRpb24uXG4gICAgICBmb3IoY29uc3QgcGVyaW9kIG9mIGFwcGxpY2FibGUpIHtcbiAgICAgICAgY29uc3QgcGVyaW9kUmF0ZSA9IGpvYi5raW5kID09PSAnY2FuY2VsJyA/IC0ocmVuZXdhbFJhdGVzLmdldChgJHtwZXJpb2Quc3RhcnR9LSR7cGVyaW9kLmVuZH1gKSA/PyAtcmF0ZURlbHRhKSA6IHJhdGVEZWx0YTtcbiAgICAgICAgY29uc3QgYW1vdW50Q2VudHMgPSBNYXRoLnJvdW5kKFxuICAgICAgICAgIChwZXJpb2RSYXRlICogTWF0aC5tYXgoMCwgTWF0aC5taW4ocGVyaW9kLmVuZCwgY2hhcmdlVGhyb3VnaCkgLSBNYXRoLm1heChlZmZlY3RpdmVBdCwgcGVyaW9kLnN0YXJ0KSkpXG4gICAgICAgICAgLyAocGVyaW9kLmVuZCAtIHBlcmlvZC5zdGFydClcbiAgICAgICAgKTtcbiAgICAgICAgaWYoIWFtb3VudENlbnRzKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGFtb3VudENlbnRzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2pvYicpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlY2VpcHQgPSBleGlzdGluZy5maW5kKChpdGVtKSA9PiBpdGVtLm1ldGFkYXRhLm9yZ2FuaXphdGlvbkJpbGxpbmdKb2IgPT09IGpvYi5qb2JJZFxuICAgICAgICAgICYmIE51bWJlcihpdGVtLm1ldGFkYXRhLnBlcmlvZFN0YXJ0KSA9PT0gcGVyaW9kLnN0YXJ0ICYmIE51bWJlcihpdGVtLm1ldGFkYXRhLnBlcmlvZEVuZCkgPT09IHBlcmlvZC5lbmQpO1xuICAgICAgICBjb25zdCBpbnZvaWNlSWQgPSB0eXBlb2YgcmVjZWlwdD8uaW52b2ljZSA9PT0gJ3N0cmluZycgPyByZWNlaXB0Lmludm9pY2UgOiByZWNlaXB0Py5pbnZvaWNlPy5pZDtcbiAgICAgICAgbGV0IHNldHRsZW1lbnQgPSBpbnZvaWNlSWQgPyBhd2FpdCBzdHJpcGUuaW52b2ljZXMucmV0cmlldmUoaW52b2ljZUlkKSA6IGludm9pY2VzLmZpbmQoKGludm9pY2UpID0+XG4gICAgICAgICAgaW52b2ljZS5tZXRhZGF0YT8ub3JnYW5pemF0aW9uQmlsbGluZ0pvYiA9PT0gam9iLmpvYklkXG4gICAgICAgICAgJiYgTnVtYmVyKGludm9pY2UubWV0YWRhdGEucGVyaW9kU3RhcnQpID09PSBwZXJpb2Quc3RhcnRcbiAgICAgICAgICAmJiBOdW1iZXIoaW52b2ljZS5tZXRhZGF0YS5wZXJpb2RFbmQpID09PSBwZXJpb2QuZW5kKTtcbiAgICAgICAgaWYocmVjZWlwdCAmJiAoIWludm9pY2VJZCB8fCByZWNlaXB0LmFtb3VudCAhPT0gYW1vdW50Q2VudHMpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3NldHRsZW1lbnRfY29uZmxpY3QnKTtcbiAgICAgICAgfVxuICAgICAgICBpZighc2V0dGxlbWVudCkge1xuICAgICAgICAgIGF3YWl0IGZlbmNlKCk7XG4gICAgICAgICAgc2V0dGxlbWVudCA9IGF3YWl0IHN0cmlwZS5pbnZvaWNlcy5jcmVhdGUoe2F1dG9fYWR2YW5jZTogZmFsc2UsIGN1c3RvbWVyLFxuICAgICAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICAgICAgb3JnYW5pemF0aW9uQmlsbGluZ0pvYjogam9iLmpvYklkLFxuICAgICAgICAgICAgICBwZXJpb2RFbmQ6IFN0cmluZyhwZXJpb2QuZW5kKSxcbiAgICAgICAgICAgICAgcGVyaW9kU3RhcnQ6IFN0cmluZyhwZXJpb2Quc3RhcnQpLFxuICAgICAgICAgICAgICBzdWJzY3JpcHRpb25JZDogcmF3LmlkXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcGVuZGluZ19pbnZvaWNlX2l0ZW1zX2JlaGF2aW9yOiAnZXhjbHVkZScsIC4uLihjbG9zZWQgPyB7fSA6IHtzdWJzY3JpcHRpb246IHJhdy5pZH0pXG4gICAgICAgICAgfSwge2lkZW1wb3RlbmN5S2V5OiBrZXkoYHNldHRsZW1lbnQtJHtwZXJpb2Quc3RhcnR9LSR7cGVyaW9kLmVuZH1gKX0pO1xuICAgICAgICB9XG4gICAgICAgIGlmKCFyZWNlaXB0KSB7XG4gICAgICAgICAgaWYoc2V0dGxlbWVudC5zdGF0dXMgIT09ICdkcmFmdCcpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19zZXR0bGVtZW50X2NvbmZsaWN0Jyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGF3YWl0IGZlbmNlKCk7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IGF3YWl0IHN0cmlwZS5pbnZvaWNlSXRlbXMuY3JlYXRlKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhbW91bnQ6IGFtb3VudENlbnRzLFxuICAgICAgICAgICAgICBjdXJyZW5jeTogJ3VzZCcsXG4gICAgICAgICAgICAgIGN1c3RvbWVyLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogYFJlYWt0b3IgJHtqb2Iua2luZCA9PT0gJ3NlYXRzJyA/ICdhY3RpdmUtbWVtYmVyJyA6ICdwbGFuJ30gcHJvcmF0aW9uICgke2pvYi5wcmljZVZlcnNpb259KWAsXG4gICAgICAgICAgICAgIGRpc2NvdW50YWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgIGludm9pY2U6IHNldHRsZW1lbnQuaWQsXG4gICAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgICAgb3JnYW5pemF0aW9uQmlsbGluZ0pvYjogam9iLmpvYklkLFxuICAgICAgICAgICAgICAgIHBlcmlvZEVuZDogU3RyaW5nKHBlcmlvZC5lbmQpLFxuICAgICAgICAgICAgICAgIHBlcmlvZFN0YXJ0OiBTdHJpbmcocGVyaW9kLnN0YXJ0KSxcbiAgICAgICAgICAgICAgICBwcmljZVZlcnNpb246IGpvYi5wcmljZVZlcnNpb25cbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcGVyaW9kOiB7ZW5kOiBwZXJpb2QuZW5kIC8gMTAwMCwgc3RhcnQ6IE1hdGgubWF4KGVmZmVjdGl2ZUF0LCBwZXJpb2Quc3RhcnQpIC8gMTAwMH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7aWRlbXBvdGVuY3lLZXk6IGtleShgYWRqdXN0bWVudC0ke3BlcmlvZC5zdGFydH0tJHtwZXJpb2QuZW5kfWApfVxuICAgICAgICAgICk7XG4gICAgICAgICAgYWRqdXN0bWVudHMucHVzaChhZGp1c3RtZW50UmVjZWlwdChpdGVtKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoc2V0dGxlbWVudD8uc3RhdHVzID09PSAnZHJhZnQnKSB7XG4gICAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgICBhd2FpdCBzdHJpcGUuaW52b2ljZXMuZmluYWxpemVJbnZvaWNlKFxuICAgICAgICAgICAgc2V0dGxlbWVudC5pZCxcbiAgICAgICAgICAgIHthdXRvX2FkdmFuY2U6IHRydWV9LFxuICAgICAgICAgICAge2lkZW1wb3RlbmN5S2V5OiBrZXkoYHNldHRsZW1lbnQtZmluYWxpemUtJHtwZXJpb2Quc3RhcnR9LSR7cGVyaW9kLmVuZH1gKX1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZihqb2Iua2luZCA9PT0gJ3BsYW4nICYmIGxhdGVCb3VuZGFyeSAmJiBzY2hlZHVsZUlkKSB7XG4gICAgICAgIGF3YWl0IGZlbmNlKCk7XG4gICAgICAgIGF3YWl0IHN0cmlwZS5zdWJzY3JpcHRpb25TY2hlZHVsZXMucmVsZWFzZShzY2hlZHVsZUlkLCB7fSwge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ3JlbGVhc2UnKX0pO1xuICAgICAgfVxuICAgICAgaWYoY2xvc2VkKSB7XG4gICAgICAgIGF3YWl0IG1hcmtBcHBsaWVkKCk7XG4gICAgICB9IGVsc2UgaWYocGVuZGluZ1BsYW4pIHtcbiAgICAgICAgYXdhaXQgYXBwbHlTY2hlZHVsZSgpO1xuICAgICAgICBhd2FpdCBtYXJrQXBwbGllZCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qgc2VhdEl0ZW1zID0gc2VhdHMgPyBbe3ByaWNlOiBwcmljZXMuc2VhdCwgcXVhbnRpdHk6IHNlYXRzfV0gOiBbXTtcbiAgICAgICAgY29uc3QgaXRlbXM6IFN0cmlwZS5TdWJzY3JpcHRpb25VcGRhdGVQYXJhbXMuSXRlbVtdID0gW1xuICAgICAgICAgIHtpZDogYmFzZS5pZCwgcHJpY2U6IHByaWNlc1twbGFuXSwgcXVhbnRpdHk6IDF9LFxuICAgICAgICAgIC4uLihzZWF0XG4gICAgICAgICAgICA/IFt7aWQ6IHNlYXQuaWQsIHByaWNlOiBwcmljZXMuc2VhdCwgcXVhbnRpdHk6IHNlYXRzfV1cbiAgICAgICAgICAgIDogc2VhdEl0ZW1zKVxuICAgICAgICBdO1xuICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9ucy51cGRhdGUoXG4gICAgICAgICAgcmF3LmlkLFxuICAgICAgICAgIHtpdGVtcywgbWV0YWRhdGE6IG1ldGFkYXRhKCksIHByb3JhdGlvbl9iZWhhdmlvcjogJ25vbmUnfSxcbiAgICAgICAgICB7aWRlbXBvdGVuY3lLZXk6IGtleSgnYXBwbHknKX1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB7YWRqdXN0bWVudHN9O1xuICAgIH07XG4iXSwibmFtZXMiOlsiZ2V0T3JnYW5pemF0aW9uUGxhbiIsImxpc3RBbGxQcm92aWRlclJlY29yZHMiLCJvcmdhbml6YXRpb25LZXkiLCJwdWJsaXNoZWRQbGFuIiwidmFsdWUiLCJrZXkiLCJzYWZlUXVhbnRpdHkiLCJOdW1iZXIiLCJpc1NhZmVJbnRlZ2VyIiwiRXJyb3IiLCJhZGp1c3RtZW50UmVjZWlwdCIsIml0ZW0iLCJhbW91bnRDZW50cyIsImFtb3VudCIsInBlcmlvZEVuZCIsIm1ldGFkYXRhIiwicGVyaW9kU3RhcnQiLCJwcm92aWRlcklkIiwiaWQiLCJjcmVhdGVPcmdhbml6YXRpb25CaWxsaW5nVXBkYXRlciIsInN0cmlwZSIsInByaWNlcyIsInN1YnNjcmlwdGlvbiIsImpvYiIsImZlbmNlIiwicHJpY2VWZXJzaW9uIiwiZWZmZWN0aXZlQXQiLCJyYXciLCJzdWJzY3JpcHRpb25zIiwicmV0cmlldmUiLCJjdXN0b21lciIsImJhc2UiLCJpdGVtcyIsImRhdGEiLCJmaW5kIiwicHJvIiwic3RhcnRlciIsImluY2x1ZGVzIiwicHJpY2UiLCJzZWF0IiwibGl2ZW1vZGUiLCJjdXN0b21lcklkIiwiaGFzX21vcmUiLCJleGlzdGluZyIsInN0YXJ0aW5nQWZ0ZXIiLCJpbnZvaWNlSXRlbXMiLCJsaXN0IiwibGltaXQiLCJzdGFydGluZ19hZnRlciIsImFkanVzdG1lbnRzIiwiZmlsdGVyIiwib3JnYW5pemF0aW9uQmlsbGluZ0pvYiIsImpvYklkIiwibWFwIiwia2luZCIsInN0YXJ0X2RhdGUiLCJzY2hlZHVsZUlkIiwic2NoZWR1bGUiLCJzdWJzY3JpcHRpb25TY2hlZHVsZXMiLCJib3VuZGFyeUNoYW5nZSIsImRlc2lyZWQiLCJjaGFuZ2VBdCIsInRhcmdldFBlcmlvZEVuZCIsInNjaGVkdWxlQm91bmRhcnkiLCJvcmdhbml6YXRpb25QZW5kaW5nQm91bmRhcnkiLCJvcGVyYXRpb24iLCJwZW5kaW5nUGxhbiIsIlN0cmluZyIsIm9yZ2FuaXphdGlvblBlbmRpbmdQbGFuIiwiY2xvc2VkIiwic3RhdHVzIiwic3Vic2NyaXB0aW9uSWQiLCJsYXRlQm91bmRhcnkiLCJEYXRlIiwibm93IiwicmVsZWFzZSIsImlkZW1wb3RlbmN5S2V5IiwidXBkYXRlIiwiY2FuY2VsX2F0Iiwib3JnYW5pemF0aW9uQ2FuY2VsQm91bmRhcnkiLCJwcm9yYXRpb25fYmVoYXZpb3IiLCJjYW5jZWwiLCJpbnZvaWNlX25vdyIsInByb3JhdGUiLCJjdXJyZW50UGxhbiIsInBsYW4iLCJzZWF0cyIsImV4dHJhU2VhdHMiLCJxdWFudGl0eSIsInBoYXNlSXRlbXMiLCJwaGFzZVBsYW4iLCJhcHBseVNjaGVkdWxlIiwiY3JlYXRlIiwiZnJvbV9zdWJzY3JpcHRpb24iLCJlbmRfYmVoYXZpb3IiLCJwaGFzZXMiLCJlbmRfZGF0ZSIsImN1cnJlbnRfcGVyaW9kX3N0YXJ0IiwiZHVyYXRpb24iLCJpbnRlcnZhbCIsImludGVydmFsX2NvdW50IiwibWFya0FwcGxpZWQiLCJjdXJyZW50UmF0ZSIsImJhc2VDZW50cyIsInJhdGVEZWx0YSIsInByZXZpb3VzRXh0cmFTZWF0cyIsInByZXZpb3VzUGxhbiIsImludm9pY2VzIiwic29tZSIsImludm9pY2UiLCJwZXJpb2RzIiwiTWFwIiwicmVuZXdhbFJhdGVzIiwibGluZXMiLCJpbnZvaWNlUmF0ZXMiLCJsaW5lIiwicHJpY2luZyIsInByaWNlX2RldGFpbHMiLCJwcmljZUlkIiwicGFyZW50Iiwic3Vic2NyaXB0aW9uX2l0ZW1fZGV0YWlscyIsInByb3JhdGlvbiIsInBlcmlvZCIsImVuZCIsInN0YXJ0IiwicGVyaW9kS2V5Iiwic2V0IiwicmF0ZSIsImdldCIsImhhcyIsImN1cnJlbnRTdGFydCIsImN1cnJlbnRQZXJpb2QiLCJNYXRoIiwibWF4IiwiY3VycmVudF9wZXJpb2RfZW5kIiwidmFsdWVzIiwiZmxvb3IiLCJjYW5jZWxlZEJvdW5kYXJ5IiwiY2hhcmdlVGhyb3VnaCIsIm1pbiIsImFwcGxpY2FibGUiLCJzb3J0IiwiYSIsImIiLCJjb3ZlcmVkVGhyb3VnaCIsInBlcmlvZFJhdGUiLCJyb3VuZCIsInJlY2VpcHQiLCJpbnZvaWNlSWQiLCJzZXR0bGVtZW50IiwiYXV0b19hZHZhbmNlIiwicGVuZGluZ19pbnZvaWNlX2l0ZW1zX2JlaGF2aW9yIiwiY3VycmVuY3kiLCJkZXNjcmlwdGlvbiIsImRpc2NvdW50YWJsZSIsInB1c2giLCJmaW5hbGl6ZUludm9pY2UiLCJzZWF0SXRlbXMiXSwibWFwcGluZ3MiOiJBQUFBLG1HQUFtRyxHQUNuRyxtQ0FBbUMsR0FDbkMsU0FBUUEsbUJBQW1CLFFBQU8sYUFBYTtBQUMvQyxTQUFRQyxzQkFBc0IsUUFBTywwQkFBMEI7QUFDL0QsU0FBUUMsZUFBZSxRQUFPLGFBQWE7QUFPM0MsTUFBTUMsZ0JBQWdCLENBQUNDLFFBQTRCSixvQkFBb0JJLE9BQWtCQyxHQUFHO0FBQzVGLE1BQU1DLGVBQWUsQ0FBQ0Y7SUFDcEIsSUFBRyxPQUFPQSxVQUFVLFlBQVksQ0FBQ0csT0FBT0MsYUFBYSxDQUFDSixVQUFVQSxRQUFRLEdBQUc7UUFDekUsTUFBTSxJQUFJSyxNQUFNO0lBQ2xCO0lBQ0EsT0FBT0w7QUFDVDtBQUNBLE1BQU1NLG9CQUFvQixDQUFDQyxPQUFpRCxDQUFBO1FBQzFFQyxhQUFhRCxLQUFLRSxNQUFNO1FBQ3hCQyxXQUFXUCxPQUFPSSxLQUFLSSxRQUFRLENBQUNELFNBQVM7UUFDekNFLGFBQWFULE9BQU9JLEtBQUtJLFFBQVEsQ0FBQ0MsV0FBVztRQUM3Q0MsWUFBWU4sS0FBS08sRUFBRTtJQUNyQixDQUFBO0FBRUEsT0FBTyxNQUFNQyxtQ0FDWCxDQUFDQyxRQUFnQkMsU0FDZixPQUFPQyxjQUFjQyxLQUFLQztRQUN4QixNQUFNQTtRQUNOLElBQUdELElBQUlFLFlBQVksS0FBSyxjQUFjO1lBQ3BDLE1BQU0sSUFBSWhCLE1BQU07UUFDbEI7UUFDQSxJQUFHLENBQUNGLE9BQU9DLGFBQWEsQ0FBQ2UsSUFBSUcsV0FBVyxLQUFLSCxJQUFJRyxXQUFXLEdBQUcsR0FBRztZQUNoRSxNQUFNLElBQUlqQixNQUFNO1FBQ2xCO1FBQ0EsTUFBTWtCLE1BQU0sTUFBTVAsT0FBT1EsYUFBYSxDQUFDQyxRQUFRLENBQUNQLGFBQWFKLEVBQUU7UUFDL0QsTUFBTVksV0FBVyxPQUFPSCxJQUFJRyxRQUFRLEtBQUssV0FBV0gsSUFBSUcsUUFBUSxHQUFHSCxJQUFJRyxRQUFRLENBQUNaLEVBQUU7UUFDbEYsTUFBTWEsT0FBT0osSUFBSUssS0FBSyxDQUFDQyxJQUFJLENBQUNDLElBQUksQ0FBQyxDQUFDdkIsT0FBUztnQkFBQ1UsT0FBT2MsR0FBRztnQkFBRWQsT0FBT2UsT0FBTzthQUFDLENBQUNDLFFBQVEsQ0FBQzFCLEtBQUsyQixLQUFLLENBQUNwQixFQUFFO1FBQzlGLE1BQU1xQixPQUFPWixJQUFJSyxLQUFLLENBQUNDLElBQUksQ0FBQ0MsSUFBSSxDQUFDLENBQUN2QixPQUFTQSxLQUFLMkIsS0FBSyxDQUFDcEIsRUFBRSxLQUFLRyxPQUFPa0IsSUFBSTtRQUN4RSxJQUFHWixJQUFJYSxRQUFRLElBQUlWLGFBQWFSLGFBQWFtQixVQUFVLElBQUksQ0FBQ1YsUUFBUUosSUFBSUssS0FBSyxDQUFDVSxRQUFRLEVBQUU7WUFDdEYsTUFBTSxJQUFJakMsTUFBTTtRQUNsQjtRQUNBLE1BQU1rQyxXQUFXLE1BQU0xQyx1QkFBdUIsQ0FBQzJDLGdCQUM3Q3hCLE9BQU95QixZQUFZLENBQUNDLElBQUksQ0FBQztnQkFBQ2hCO2dCQUFVaUIsT0FBTztnQkFBS0MsZ0JBQWdCSjtZQUFhO1FBRS9FLE1BQU1LLGNBQWNOLFNBQ2pCTyxNQUFNLENBQUMsQ0FBQ3ZDLE9BQVNBLEtBQUtJLFFBQVEsQ0FBQ29DLHNCQUFzQixLQUFLNUIsSUFBSTZCLEtBQUssRUFDbkVDLEdBQUcsQ0FBQzNDO1FBQ1AsSUFBR2lCLElBQUlaLFFBQVEsQ0FBQ29DLHNCQUFzQixLQUFLNUIsSUFBSTZCLEtBQUssRUFBRTtZQUNwRCxPQUFPO2dCQUFDSDtZQUFXO1FBQ3JCO1FBQ0EsSUFBRzFCLElBQUkrQixJQUFJLEtBQUssV0FBVy9CLElBQUlHLFdBQVcsR0FBR0MsSUFBSTRCLFVBQVUsR0FBRyxNQUFNO1lBQ2xFLE9BQU87Z0JBQUNOO1lBQVc7UUFDckI7UUFDQSxNQUFNTyxhQUFhLE9BQU83QixJQUFJOEIsUUFBUSxLQUFLLFdBQVc5QixJQUFJOEIsUUFBUSxHQUFHOUIsSUFBSThCLFFBQVEsRUFBRXZDO1FBQ25GLE1BQU11QyxXQUFXRCxhQUFhLE1BQU1wQyxPQUFPc0MscUJBQXFCLENBQUM3QixRQUFRLENBQUMyQixjQUFjO1FBQ3hGLE1BQU1HLGlCQUFpQnBDLElBQUkrQixJQUFJLEtBQUssWUFBYS9CLElBQUkrQixJQUFJLEtBQUssVUFBVS9CLElBQUlxQyxPQUFPLENBQUNDLFFBQVEsS0FBSztRQUNqRyxNQUFNQyxrQkFBa0J2RCxPQUFPZ0IsSUFBSXFDLE9BQU8sQ0FBQ0UsZUFBZTtRQUMxRCxNQUFNQyxtQkFBbUJKLGlCQUFpQkcsa0JBQWtCdkQsT0FBT29CLElBQUlaLFFBQVEsQ0FBQ2lELDJCQUEyQjtRQUMzRyxNQUFNM0QsTUFBTSxDQUFDNEQsWUFBOEIvRCxnQkFBZ0IsZUFBZXFCLElBQUk2QixLQUFLLEVBQUVhO1FBQ3JGLE1BQU1sRCxXQUFXLENBQUNtRCxjQUFjLEVBQUUsR0FBTSxDQUFBO2dCQUN0Q2Ysd0JBQXdCNUIsSUFBSTZCLEtBQUs7Z0JBQ2pDWSw2QkFBNkJFLGNBQWNDLE9BQU9KLG9CQUFvQjtnQkFDdEVLLHlCQUF5QkY7WUFDM0IsQ0FBQTtRQUNBLElBQUlHLFNBQVMxQyxJQUFJMkMsTUFBTSxLQUFLO1FBQzVCLElBQUdYLGtCQUFtQixDQUFBLENBQUNwRCxPQUFPQyxhQUFhLENBQUNzRCxvQkFBb0JBLG1CQUFtQnZDLElBQUlHLFdBQVcsSUFDN0ZILElBQUlxQyxPQUFPLENBQUNXLGNBQWMsS0FBSzVDLElBQUlULEVBQUUsQUFBRCxHQUFJO1lBQzNDLE1BQU0sSUFBSVQsTUFBTTtRQUNsQjtRQUNBLE1BQU0rRCxlQUFlYixrQkFBa0JHLG1CQUFtQlcsS0FBS0MsR0FBRztRQUVsRSxJQUFHbkQsSUFBSStCLElBQUksS0FBSyxZQUFZLENBQUNlLFFBQVE7WUFDbkMsSUFBR2IsWUFBWTtnQkFDYixNQUFNaEM7Z0JBQ04sTUFBTUosT0FBT3NDLHFCQUFxQixDQUFDaUIsT0FBTyxDQUFDbkIsWUFBWSxDQUFDLEdBQUc7b0JBQUNvQixnQkFBZ0J2RSxJQUFJO2dCQUFVO1lBQzVGO1lBQ0EsSUFBRyxDQUFDbUUsY0FBYztnQkFDaEIsTUFBTWhEO2dCQUNOLE1BQU1KLE9BQU9RLGFBQWEsQ0FBQ2lELE1BQU0sQ0FBQ2xELElBQUlULEVBQUUsRUFBRTtvQkFBQzRELFdBQVdoQixrQkFBa0I7b0JBQU0vQyxVQUFVO3dCQUFDLEdBQUdBLFVBQVU7d0JBQUVnRSw0QkFBNEJaLE9BQU9MO29CQUFnQjtvQkFBR2tCLG9CQUFvQjtnQkFBTSxHQUFHO29CQUFDSixnQkFBZ0J2RSxJQUFJO2dCQUFTO2dCQUN6TixPQUFPO29CQUFDNEM7Z0JBQVc7WUFDckI7WUFDQSxNQUFNekI7WUFDTixNQUFNSixPQUFPUSxhQUFhLENBQUNpRCxNQUFNLENBQUNsRCxJQUFJVCxFQUFFLEVBQUU7Z0JBQUNILFVBQVU7b0JBQUNnRSw0QkFBNEJaLE9BQU9MO2dCQUFnQjtZQUFDLEdBQUc7Z0JBQUNjLGdCQUFnQnZFLElBQUk7WUFBZ0I7WUFDbEosTUFBTW1CO1lBQ04sTUFBTUosT0FBT1EsYUFBYSxDQUFDcUQsTUFBTSxDQUFDdEQsSUFBSVQsRUFBRSxFQUFFO2dCQUFDZ0UsYUFBYTtnQkFBT0MsU0FBUztZQUFLLEdBQUc7Z0JBQUNQLGdCQUFnQnZFLElBQUk7WUFBUztZQUM5R2dFLFNBQVM7UUFDWDtRQUNBLElBQUcsQ0FBQztZQUFDO1lBQVU7WUFBUTtTQUFRLENBQUNoQyxRQUFRLENBQUNkLElBQUkrQixJQUFJLEdBQUc7WUFDbEQsTUFBTSxJQUFJN0MsTUFBTTtRQUNsQjtRQUNBLE1BQU0yRSxjQUFjckQsS0FBS08sS0FBSyxDQUFDcEIsRUFBRSxLQUFLRyxPQUFPYyxHQUFHLEdBQUcsUUFBUTtRQUMzRCxNQUFNa0QsT0FBTzlELElBQUkrQixJQUFJLEtBQUssU0FBU25ELGNBQWNvQixJQUFJcUMsT0FBTyxDQUFDeUIsSUFBSSxJQUFJRDtRQUNyRSxNQUFNRSxRQUFRL0QsSUFBSStCLElBQUksS0FBSyxVQUFVaEQsYUFBYWlCLElBQUlxQyxPQUFPLENBQUMyQixVQUFVLElBQUloRCxNQUFNaUQsWUFBWTtRQUM5RixJQUFJdEIsY0FBOEI7UUFDbEMsSUFBRzNDLElBQUkrQixJQUFJLEtBQUssVUFBVS9CLElBQUlxQyxPQUFPLENBQUNDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQ1csY0FBYztZQUNoRk4sY0FBY21CO1FBQ2hCLE9BQU8sSUFBRyxDQUFDYixnQkFBZ0I3QyxJQUFJWixRQUFRLENBQUNxRCx1QkFBdUIsS0FBSyxhQUFhZ0IsZ0JBQWdCLFdBQVc7WUFDMUdsQixjQUFjO1FBQ2hCO1FBQ0EsSUFBR0EsZUFBZ0IsQ0FBQSxDQUFDM0QsT0FBT0MsYUFBYSxDQUFDdUQscUJBQXFCQSxvQkFBb0JVLEtBQUtDLEdBQUcsRUFBQyxHQUFJO1lBQzdGLE1BQU0sSUFBSWpFLE1BQU07UUFDbEI7UUFDQSxNQUFNZ0YsYUFBYSxDQUFDQyxZQUF1QjtnQkFDekM7b0JBQUNwRCxPQUFPakIsTUFBTSxDQUFDcUUsVUFBVTtvQkFBRUYsVUFBVTtnQkFBQzttQkFDbENGLFFBQVE7b0JBQUM7d0JBQUNoRCxPQUFPakIsT0FBT2tCLElBQUk7d0JBQUVpRCxVQUFVRjtvQkFBSztpQkFBRSxHQUFHLEVBQUU7YUFDekQ7UUFDRCxNQUFNSyxnQkFBZ0I7WUFDcEIsTUFBTW5FO1lBQ04sTUFBTU4sS0FDSnNDLGNBQ0YsQUFDRSxDQUFBLE1BQU1wQyxPQUFPc0MscUJBQXFCLENBQUNrQyxNQUFNLENBQ3ZDO2dCQUFDQyxtQkFBbUJsRSxJQUFJVCxFQUFFO1lBQUEsR0FDMUI7Z0JBQUMwRCxnQkFBZ0J2RSxJQUFJO1lBQWtCLEVBQ3pDLEVBQ0FhLEVBQUU7WUFDSixNQUFNTTtZQUNOLE1BQU1KLE9BQU9zQyxxQkFBcUIsQ0FBQ21CLE1BQU0sQ0FDdkMzRCxJQUNBO2dCQUNFNEUsY0FBYztnQkFDZC9FLFVBQVVBLFNBQVNtRDtnQkFDbkI2QixRQUFRO29CQUNOO3dCQUNFQyxVQUFVakMsbUJBQW1CO3dCQUM3Qi9CLE9BQU95RCxXQUFXTDt3QkFDbEJKLG9CQUFvQjt3QkFDcEJ6QixZQUFZeEIsS0FBS2tFLG9CQUFvQjtvQkFDdkM7b0JBQ0E7d0JBQ0VDLFVBQVU7NEJBQUNDLFVBQVU7NEJBQVNDLGdCQUFnQjt3QkFBQzt3QkFDL0NwRSxPQUFPeUQsV0FBV3ZCO3dCQUNsQmMsb0JBQW9CO3dCQUNwQnpCLFlBQVlRLG1CQUFtQjtvQkFDakM7aUJBQ0Q7Z0JBQ0RpQixvQkFBb0I7WUFDdEIsR0FDQTtnQkFBQ0osZ0JBQWdCdkUsSUFBSTtZQUFrQjtRQUUzQztRQUNBLE1BQU1nRyxjQUFjO1lBQ2xCLE1BQU03RTtZQUNOLE1BQU1KLE9BQU9RLGFBQWEsQ0FBQ2lELE1BQU0sQ0FDL0JsRCxJQUFJVCxFQUFFLEVBQ047Z0JBQUNILFVBQVVBLFNBQVNtRCxlQUFlO1lBQUcsR0FDdEM7Z0JBQUNVLGdCQUFnQnZFLElBQUk7WUFBUztRQUVsQztRQUNBLElBQUdvRCxVQUFVMUMsU0FBU29DLDJCQUEyQjVCLElBQUk2QixLQUFLLEVBQUU7WUFDMUQsTUFBTWlEO1lBQ04sT0FBTztnQkFBQ3BEO1lBQVc7UUFDckI7UUFDQSxJQUFHMUIsSUFBSStCLElBQUksS0FBSyxVQUFVL0IsSUFBSXFDLE9BQU8sQ0FBQ0MsUUFBUSxLQUFLLGdCQUFnQixDQUFDVyxjQUFjO1lBQ2hGLE1BQU1tQjtZQUNOLE1BQU1VO1lBQ04sT0FBTztnQkFBQ3BEO1lBQVc7UUFDckI7UUFFQSxNQUFNcUQsY0FBY3RHLG9CQUFvQm9GLGFBQWFtQixTQUFTLEdBQUlqQixRQUFRO1FBQzFFLElBQUlrQixZQUFZLENBQUNGO1FBQ2pCLElBQUcvRSxJQUFJK0IsSUFBSSxLQUFLLFVBQVU7WUFDeEJrRCxZQUFZakYsSUFBSStCLElBQUksS0FBSyxVQUNyQixBQUFDZ0MsQ0FBQUEsUUFBUWhGLGFBQWFpQixJQUFJcUMsT0FBTyxDQUFDNkMsa0JBQWtCLENBQUEsSUFBSyxNQUN6RHpHLG9CQUFvQnFGLE1BQU1rQixTQUFTLEdBQ3JDdkcsb0JBQW9CRyxjQUFjb0IsSUFBSXFDLE9BQU8sQ0FBQzhDLFlBQVksR0FBR0gsU0FBUztRQUMxRTtRQUNBLElBQ0VoRixJQUFJK0IsSUFBSSxLQUFLLFVBQ2QsQ0FBQSxBQUFDLENBQUNrQixnQkFBaUJqRCxDQUFBQSxJQUFJcUMsT0FBTyxDQUFDQyxRQUFRLEtBQUssZUFBZTJDLGFBQWEsQ0FBQSxLQUFRaEMsZ0JBQWdCZ0MsYUFBYSxLQUFNN0UsSUFBSTJDLE1BQU0sS0FBSyxRQUFPLEdBQ3hJO1lBQ0EsTUFBTSxJQUFJN0QsTUFBTTtRQUNsQjtRQUNBLElBQUcsQ0FBQ0YsT0FBT0MsYUFBYSxDQUFDZ0csWUFBWTtZQUNuQyxNQUFNLElBQUkvRixNQUFNO1FBQ2xCO1FBQ0EsTUFBTWtHLFdBQVcsTUFBTTFHLHVCQUF1QixDQUFDMkMsZ0JBQzdDeEIsT0FBT3VGLFFBQVEsQ0FBQzdELElBQUksQ0FBQztnQkFBQ2hCO2dCQUFVaUIsT0FBTztnQkFBS0MsZ0JBQWdCSjtnQkFBZXRCLGNBQWNLLElBQUlULEVBQUU7WUFBQTtRQUVqRyxJQUFHeUYsU0FBU0MsSUFBSSxDQUFDLENBQUNDLFVBQVlBLFFBQVE5RixRQUFRLEVBQUVvQywyQkFBMkI1QixJQUFJNkIsS0FBSyxJQUM5RSxDQUFBLENBQUM3QyxPQUFPQyxhQUFhLENBQUNELE9BQU9zRyxRQUFROUYsUUFBUSxDQUFDQyxXQUFXLE1BQ3hELENBQUNULE9BQU9DLGFBQWEsQ0FBQ0QsT0FBT3NHLFFBQVE5RixRQUFRLENBQUNELFNBQVMsTUFDdkRQLE9BQU9zRyxRQUFROUYsUUFBUSxDQUFDRCxTQUFTLEtBQUtQLE9BQU9zRyxRQUFROUYsUUFBUSxDQUFDQyxXQUFXLENBQUEsSUFBSztZQUNuRixNQUFNLElBQUlQLE1BQU07UUFDbEI7UUFDQSxNQUFNcUcsVUFBVSxJQUFJQztRQUNwQixNQUFNQyxlQUFlLElBQUlEO1FBQ3pCLEtBQUksTUFBTUYsV0FBV0YsU0FBVTtZQUM3QixJQUFHRSxRQUFRSSxLQUFLLENBQUN2RSxRQUFRLEVBQUU7Z0JBQ3pCLE1BQU0sSUFBSWpDLE1BQU07WUFDbEI7WUFDQSxNQUFNeUcsZUFBZSxJQUFJSDtZQUN6QixLQUFJLE1BQU1JLFFBQVFOLFFBQVFJLEtBQUssQ0FBQ2hGLElBQUksQ0FBRTtnQkFDcEMsTUFBTUssUUFBUTZFLEtBQUtDLE9BQU8sRUFBRUMsZUFBZS9FO2dCQUMzQyxNQUFNZ0YsVUFBVSxPQUFPaEYsVUFBVSxXQUFXQSxRQUFRQSxPQUFPcEI7Z0JBQzNELElBQ0U7b0JBQUNHLE9BQU9jLEdBQUc7b0JBQUVkLE9BQU9lLE9BQU87b0JBQUVmLE9BQU9rQixJQUFJO2lCQUFDLENBQUNGLFFBQVEsQ0FBQ2lGLFdBQVcsT0FDaEUsQ0FBQ0gsS0FBS0ksTUFBTSxFQUFFQywyQkFBMkJDLFdBQ3ZDO29CQUNBLE1BQU1DLFNBQVM7d0JBQUNDLEtBQUtSLEtBQUtPLE1BQU0sQ0FBQ0MsR0FBRyxHQUFHO3dCQUFNQyxPQUFPVCxLQUFLTyxNQUFNLENBQUNFLEtBQUssR0FBRztvQkFBSTtvQkFDNUUsTUFBTUMsWUFBWSxHQUFHSCxPQUFPRSxLQUFLLENBQUMsQ0FBQyxFQUFFRixPQUFPQyxHQUFHLEVBQUU7b0JBQ2pELElBQUdMLFlBQVlqRyxPQUFPa0IsSUFBSSxFQUFFO3dCQUMxQnVFLFFBQVFnQixHQUFHLENBQUNELFdBQVdIO29CQUN6QjtvQkFDQSxNQUFNSyxPQUFPVCxZQUFZakcsT0FBT2tCLElBQUksR0FBRyxNQUFNakMsYUFBYTZHLEtBQUszQixRQUFRLElBQUl4RixvQkFBb0JzSCxZQUFZakcsT0FBT2MsR0FBRyxHQUFHLFFBQVEsV0FBV29FLFNBQVM7b0JBQ3BKVyxhQUFhWSxHQUFHLENBQUNELFdBQVcsQUFBQ1gsQ0FBQUEsYUFBYWMsR0FBRyxDQUFDSCxjQUFjLENBQUEsSUFBS0U7Z0JBQ25FO1lBQ0Y7WUFDQSxLQUFJLE1BQU0sQ0FBQ0YsV0FBV0UsS0FBSyxJQUFJYixhQUFjO2dCQUMzQyxJQUFHRixhQUFhaUIsR0FBRyxDQUFDSixjQUFjYixhQUFhZ0IsR0FBRyxDQUFDSCxlQUFlRSxNQUFNO29CQUN0RSxNQUFNLElBQUl0SCxNQUFNO2dCQUNsQjtnQkFDQXVHLGFBQWFjLEdBQUcsQ0FBQ0QsV0FBV0U7WUFDOUI7UUFDRjtRQUNBLDRHQUE0RztRQUM1RyxNQUFNRyxlQUFlbkcsS0FBS2tFLG9CQUFvQixHQUFHO1FBQ2pELE1BQU1rQyxnQkFBZ0I7WUFDcEJSLEtBQUtTLEtBQUtDLEdBQUcsQ0FBQ3RHLEtBQUt1RyxrQkFBa0IsR0FBRyxTQUFTO21CQUFJeEIsUUFBUXlCLE1BQU07YUFBRyxDQUNuRXJGLE1BQU0sQ0FBQyxDQUFDd0UsU0FBV0EsT0FBT0UsS0FBSyxLQUFLTSxjQUFjN0UsR0FBRyxDQUFDLENBQUNxRSxTQUFXQSxPQUFPQyxHQUFHO1lBQy9FQyxPQUFPTTtRQUNUO1FBQ0FwQixRQUFRZ0IsR0FBRyxDQUFDLEdBQUdLLGNBQWNQLEtBQUssQ0FBQyxDQUFDLEVBQUVPLGNBQWNSLEdBQUcsRUFBRSxFQUFFUTtRQUMzRCxNQUFNekcsY0FBYzBHLEtBQUtJLEtBQUssQ0FBQyxBQUFDN0UsQ0FBQUEsaUJBQWlCRyxrQkFBa0J2QyxJQUFJRyxXQUFXLEFBQUQsSUFBSyxRQUFRO1FBQzlGLE1BQU0rRyxtQkFBbUJsSSxPQUFPb0IsSUFBSVosUUFBUSxDQUFDZ0UsMEJBQTBCO1FBQ3ZFLE1BQU0yRCxnQkFBZ0JyRSxVQUFVOUQsT0FBT0MsYUFBYSxDQUFDaUkscUJBQXFCQSxtQkFBbUIsS0FBS2xILElBQUkrQixJQUFJLEtBQUssV0FDM0c4RSxLQUFLTyxHQUFHLENBQUNSLGNBQWNSLEdBQUcsRUFBRWMsb0JBQW9CTixjQUFjUixHQUFHO1FBQ3JFLE1BQU1pQixhQUFhO2VBQUk5QixRQUFReUIsTUFBTTtTQUFHLENBQ3JDckYsTUFBTSxDQUFDLENBQUN3RSxTQUFXQSxPQUFPQyxHQUFHLEdBQUdqRyxlQUFlZ0csT0FBT0UsS0FBSyxJQUFJTyxjQUFjUCxLQUFLLEVBQ2xGaUIsSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELEVBQUVsQixLQUFLLEdBQUdtQixFQUFFbkIsS0FBSztRQUNuQyxJQUFJb0IsaUJBQWlCdEg7UUFDckIsS0FBSSxNQUFNZ0csVUFBVWtCLFdBQVk7WUFDOUIsSUFDRSxDQUFDckksT0FBT0MsYUFBYSxDQUFDa0gsT0FBT0UsS0FBSyxLQUNwQyxDQUFDckgsT0FBT0MsYUFBYSxDQUFDa0gsT0FBT0MsR0FBRyxLQUNoQ0QsT0FBT0MsR0FBRyxJQUFJRCxPQUFPRSxLQUFLLElBQzFCRixPQUFPRSxLQUFLLEdBQUdvQixnQkFDYjtnQkFDQSxNQUFNLElBQUl2SSxNQUFNO1lBQ2xCO1lBQ0F1SSxpQkFBaUJaLEtBQUtDLEdBQUcsQ0FBQ1csZ0JBQWdCdEIsT0FBT0MsR0FBRztRQUN0RDtRQUNBLElBQUdxQixpQkFBaUJOLGVBQWU7WUFDakMsTUFBTSxJQUFJakksTUFBTTtRQUNsQjtRQUNBLDZHQUE2RztRQUM3RyxLQUFJLE1BQU1pSCxVQUFVa0IsV0FBWTtZQUM5QixNQUFNSyxhQUFhMUgsSUFBSStCLElBQUksS0FBSyxXQUFXLENBQUUwRCxDQUFBQSxhQUFhZ0IsR0FBRyxDQUFDLEdBQUdOLE9BQU9FLEtBQUssQ0FBQyxDQUFDLEVBQUVGLE9BQU9DLEdBQUcsRUFBRSxLQUFLLENBQUNuQixTQUFRLElBQUtBO1lBQ2hILE1BQU01RixjQUFjd0gsS0FBS2MsS0FBSyxDQUM1QixBQUFDRCxhQUFhYixLQUFLQyxHQUFHLENBQUMsR0FBR0QsS0FBS08sR0FBRyxDQUFDakIsT0FBT0MsR0FBRyxFQUFFZSxpQkFBaUJOLEtBQUtDLEdBQUcsQ0FBQzNHLGFBQWFnRyxPQUFPRSxLQUFLLEtBQy9GRixDQUFBQSxPQUFPQyxHQUFHLEdBQUdELE9BQU9FLEtBQUssQUFBRDtZQUU3QixJQUFHLENBQUNoSCxhQUFhO2dCQUNmO1lBQ0Y7WUFDQSxJQUFHLENBQUNMLE9BQU9DLGFBQWEsQ0FBQ0ksY0FBYztnQkFDckMsTUFBTSxJQUFJSCxNQUFNO1lBQ2xCO1lBQ0EsTUFBTTBJLFVBQVV4RyxTQUFTVCxJQUFJLENBQUMsQ0FBQ3ZCLE9BQVNBLEtBQUtJLFFBQVEsQ0FBQ29DLHNCQUFzQixLQUFLNUIsSUFBSTZCLEtBQUssSUFDckY3QyxPQUFPSSxLQUFLSSxRQUFRLENBQUNDLFdBQVcsTUFBTTBHLE9BQU9FLEtBQUssSUFBSXJILE9BQU9JLEtBQUtJLFFBQVEsQ0FBQ0QsU0FBUyxNQUFNNEcsT0FBT0MsR0FBRztZQUN6RyxNQUFNeUIsWUFBWSxPQUFPRCxTQUFTdEMsWUFBWSxXQUFXc0MsUUFBUXRDLE9BQU8sR0FBR3NDLFNBQVN0QyxTQUFTM0Y7WUFDN0YsSUFBSW1JLGFBQWFELFlBQVksTUFBTWhJLE9BQU91RixRQUFRLENBQUM5RSxRQUFRLENBQUN1SCxhQUFhekMsU0FBU3pFLElBQUksQ0FBQyxDQUFDMkUsVUFDdEZBLFFBQVE5RixRQUFRLEVBQUVvQywyQkFBMkI1QixJQUFJNkIsS0FBSyxJQUNuRDdDLE9BQU9zRyxRQUFROUYsUUFBUSxDQUFDQyxXQUFXLE1BQU0wRyxPQUFPRSxLQUFLLElBQ3JEckgsT0FBT3NHLFFBQVE5RixRQUFRLENBQUNELFNBQVMsTUFBTTRHLE9BQU9DLEdBQUc7WUFDdEQsSUFBR3dCLFdBQVksQ0FBQSxDQUFDQyxhQUFhRCxRQUFRdEksTUFBTSxLQUFLRCxXQUFVLEdBQUk7Z0JBQzVELE1BQU0sSUFBSUgsTUFBTTtZQUNsQjtZQUNBLElBQUcsQ0FBQzRJLFlBQVk7Z0JBQ2QsTUFBTTdIO2dCQUNONkgsYUFBYSxNQUFNakksT0FBT3VGLFFBQVEsQ0FBQ2YsTUFBTSxDQUFDO29CQUFDMEQsY0FBYztvQkFBT3hIO29CQUM5RGYsVUFBVTt3QkFDUm9DLHdCQUF3QjVCLElBQUk2QixLQUFLO3dCQUNqQ3RDLFdBQVdxRCxPQUFPdUQsT0FBT0MsR0FBRzt3QkFDNUIzRyxhQUFhbUQsT0FBT3VELE9BQU9FLEtBQUs7d0JBQ2hDckQsZ0JBQWdCNUMsSUFBSVQsRUFBRTtvQkFDeEI7b0JBQ0FxSSxnQ0FBZ0M7b0JBQVcsR0FBSWxGLFNBQVMsQ0FBQyxJQUFJO3dCQUFDL0MsY0FBY0ssSUFBSVQsRUFBRTtvQkFBQSxDQUFDO2dCQUNyRixHQUFHO29CQUFDMEQsZ0JBQWdCdkUsSUFBSSxDQUFDLFdBQVcsRUFBRXFILE9BQU9FLEtBQUssQ0FBQyxDQUFDLEVBQUVGLE9BQU9DLEdBQUcsRUFBRTtnQkFBQztZQUNyRTtZQUNBLElBQUcsQ0FBQ3dCLFNBQVM7Z0JBQ1gsSUFBR0UsV0FBVy9FLE1BQU0sS0FBSyxTQUFTO29CQUNoQyxNQUFNLElBQUk3RCxNQUFNO2dCQUNsQjtnQkFDQSxNQUFNZTtnQkFDTixNQUFNYixPQUFPLE1BQU1TLE9BQU95QixZQUFZLENBQUMrQyxNQUFNLENBQzNDO29CQUNFL0UsUUFBUUQ7b0JBQ1I0SSxVQUFVO29CQUNWMUg7b0JBQ0EySCxhQUFhLENBQUMsUUFBUSxFQUFFbEksSUFBSStCLElBQUksS0FBSyxVQUFVLGtCQUFrQixPQUFPLFlBQVksRUFBRS9CLElBQUlFLFlBQVksQ0FBQyxDQUFDLENBQUM7b0JBQ3pHaUksY0FBYztvQkFDZDdDLFNBQVN3QyxXQUFXbkksRUFBRTtvQkFDdEJILFVBQVU7d0JBQ1JvQyx3QkFBd0I1QixJQUFJNkIsS0FBSzt3QkFDakN0QyxXQUFXcUQsT0FBT3VELE9BQU9DLEdBQUc7d0JBQzVCM0csYUFBYW1ELE9BQU91RCxPQUFPRSxLQUFLO3dCQUNoQ25HLGNBQWNGLElBQUlFLFlBQVk7b0JBQ2hDO29CQUNBaUcsUUFBUTt3QkFBQ0MsS0FBS0QsT0FBT0MsR0FBRyxHQUFHO3dCQUFNQyxPQUFPUSxLQUFLQyxHQUFHLENBQUMzRyxhQUFhZ0csT0FBT0UsS0FBSyxJQUFJO29CQUFJO2dCQUNwRixHQUNBO29CQUFDaEQsZ0JBQWdCdkUsSUFBSSxDQUFDLFdBQVcsRUFBRXFILE9BQU9FLEtBQUssQ0FBQyxDQUFDLEVBQUVGLE9BQU9DLEdBQUcsRUFBRTtnQkFBQztnQkFFbEUxRSxZQUFZMEcsSUFBSSxDQUFDakosa0JBQWtCQztZQUNyQztZQUNBLElBQUcwSSxZQUFZL0UsV0FBVyxTQUFTO2dCQUNqQyxNQUFNOUM7Z0JBQ04sTUFBTUosT0FBT3VGLFFBQVEsQ0FBQ2lELGVBQWUsQ0FDbkNQLFdBQVduSSxFQUFFLEVBQ2I7b0JBQUNvSSxjQUFjO2dCQUFJLEdBQ25CO29CQUFDMUUsZ0JBQWdCdkUsSUFBSSxDQUFDLG9CQUFvQixFQUFFcUgsT0FBT0UsS0FBSyxDQUFDLENBQUMsRUFBRUYsT0FBT0MsR0FBRyxFQUFFO2dCQUFDO1lBRTdFO1FBQ0Y7UUFDQSxJQUFHcEcsSUFBSStCLElBQUksS0FBSyxVQUFVa0IsZ0JBQWdCaEIsWUFBWTtZQUNwRCxNQUFNaEM7WUFDTixNQUFNSixPQUFPc0MscUJBQXFCLENBQUNpQixPQUFPLENBQUNuQixZQUFZLENBQUMsR0FBRztnQkFBQ29CLGdCQUFnQnZFLElBQUk7WUFBVTtRQUM1RjtRQUNBLElBQUdnRSxRQUFRO1lBQ1QsTUFBTWdDO1FBQ1IsT0FBTyxJQUFHbkMsYUFBYTtZQUNyQixNQUFNeUI7WUFDTixNQUFNVTtRQUNSLE9BQU87WUFDTCxNQUFNd0QsWUFBWXZFLFFBQVE7Z0JBQUM7b0JBQUNoRCxPQUFPakIsT0FBT2tCLElBQUk7b0JBQUVpRCxVQUFVRjtnQkFBSzthQUFFLEdBQUcsRUFBRTtZQUN0RSxNQUFNdEQsUUFBZ0Q7Z0JBQ3BEO29CQUFDZCxJQUFJYSxLQUFLYixFQUFFO29CQUFFb0IsT0FBT2pCLE1BQU0sQ0FBQ2dFLEtBQUs7b0JBQUVHLFVBQVU7Z0JBQUM7bUJBQzFDakQsT0FDQTtvQkFBQzt3QkFBQ3JCLElBQUlxQixLQUFLckIsRUFBRTt3QkFBRW9CLE9BQU9qQixPQUFPa0IsSUFBSTt3QkFBRWlELFVBQVVGO29CQUFLO2lCQUFFLEdBQ3BEdUU7YUFDTDtZQUNELE1BQU1ySTtZQUNOLE1BQU1KLE9BQU9RLGFBQWEsQ0FBQ2lELE1BQU0sQ0FDL0JsRCxJQUFJVCxFQUFFLEVBQ047Z0JBQUNjO2dCQUFPakIsVUFBVUE7Z0JBQVlpRSxvQkFBb0I7WUFBTSxHQUN4RDtnQkFBQ0osZ0JBQWdCdkUsSUFBSTtZQUFRO1FBRWpDO1FBQ0EsT0FBTztZQUFDNEM7UUFBVztJQUNyQixFQUFFIn0=
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3Ly5jb2RleC93b3JrdHJlZXMvdmF1bHQtczMtcmVsZWFzZS9yZWFrdG9yL3BhY2thZ2VzL3JlYWt0b3Ivc3JjL29yZ2FuaXphdGlvbnMvYmlsbGluZ1VwZGF0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogRmluYW5jaWFsIHdyaXRlcyBhcmUgb3JkZXJlZCBhbmQgZmVuY2VkOyBtZXRhZGF0YSByZWNlaXB0cyBzdXJ2aXZlIHByb3ZpZGVyIGlkZW1wb3RlbmN5IGV4cGlyeS4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB7Z2V0T3JnYW5pemF0aW9uUGxhbn0gZnJvbSAnLi9wbGFucy5qcyc7XG5pbXBvcnQge2xpc3RBbGxQcm92aWRlclJlY29yZHN9IGZyb20gJy4vcHJvdmlkZXJQYWdpbmF0aW9uLmpzJztcbmltcG9ydCB7b3JnYW5pemF0aW9uS2V5fSBmcm9tICcuL3N0b3JlLmpzJztcblxuaW1wb3J0IHR5cGUgU3RyaXBlIGZyb20gJ3N0cmlwZSc7XG5pbXBvcnQgdHlwZSB7QmlsbGluZ0FkanVzdG1lbnQsIEJpbGxpbmdQcm92aWRlciwgUGxhbktleX0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgUHJpY2VzID0gUmVhZG9ubHk8e3Bybzogc3RyaW5nOyBzZWF0OiBzdHJpbmc7IHN0YXJ0ZXI6IHN0cmluZ30+O1xudHlwZSBQZXJpb2QgPSBSZWFkb25seTx7ZW5kOiBudW1iZXI7IHN0YXJ0OiBudW1iZXJ9PjtcbmNvbnN0IHB1Ymxpc2hlZFBsYW4gPSAodmFsdWU6IHVua25vd24pOiBQbGFuS2V5ID0+IGdldE9yZ2FuaXphdGlvblBsYW4odmFsdWUgYXMgUGxhbktleSkua2V5O1xuY29uc3Qgc2FmZVF1YW50aXR5ID0gKHZhbHVlOiB1bmtub3duKTogbnVtYmVyID0+IHtcbiAgaWYodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCAhTnVtYmVyLmlzU2FmZUludGVnZXIodmFsdWUpIHx8IHZhbHVlIDwgMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2pvYicpO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn07XG5jb25zdCBhZGp1c3RtZW50UmVjZWlwdCA9IChpdGVtOiBTdHJpcGUuSW52b2ljZUl0ZW0pOiBCaWxsaW5nQWRqdXN0bWVudCA9PiAoe1xuICBhbW91bnRDZW50czogaXRlbS5hbW91bnQsXG4gIHBlcmlvZEVuZDogTnVtYmVyKGl0ZW0ubWV0YWRhdGEucGVyaW9kRW5kKSxcbiAgcGVyaW9kU3RhcnQ6IE51bWJlcihpdGVtLm1ldGFkYXRhLnBlcmlvZFN0YXJ0KSxcbiAgcHJvdmlkZXJJZDogaXRlbS5pZFxufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVPcmdhbml6YXRpb25CaWxsaW5nVXBkYXRlciA9XG4gIChzdHJpcGU6IFN0cmlwZSwgcHJpY2VzOiBQcmljZXMpOiBCaWxsaW5nUHJvdmlkZXJbJ3VwZGF0ZSddID0+XG4gICAgYXN5bmMgKHN1YnNjcmlwdGlvbiwgam9iLCBmZW5jZSkgPT4ge1xuICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgIGlmKGpvYi5wcmljZVZlcnNpb24gIT09ICcyMDI2LTEwLXYxJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfcmF0ZV92ZXJzaW9uX3VuYXZhaWxhYmxlJyk7XG4gICAgICB9XG4gICAgICBpZighTnVtYmVyLmlzU2FmZUludGVnZXIoam9iLmVmZmVjdGl2ZUF0KSB8fCBqb2IuZWZmZWN0aXZlQXQgPCAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2pvYicpO1xuICAgICAgfVxuICAgICAgY29uc3QgcmF3ID0gYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvbnMucmV0cmlldmUoc3Vic2NyaXB0aW9uLmlkKTtcbiAgICAgIGNvbnN0IGN1c3RvbWVyID0gdHlwZW9mIHJhdy5jdXN0b21lciA9PT0gJ3N0cmluZycgPyByYXcuY3VzdG9tZXIgOiByYXcuY3VzdG9tZXIuaWQ7XG4gICAgICBjb25zdCBiYXNlID0gcmF3Lml0ZW1zLmRhdGEuZmluZCgoaXRlbSkgPT4gW3ByaWNlcy5wcm8sIHByaWNlcy5zdGFydGVyXS5pbmNsdWRlcyhpdGVtLnByaWNlLmlkKSk7XG4gICAgICBjb25zdCBzZWF0ID0gcmF3Lml0ZW1zLmRhdGEuZmluZCgoaXRlbSkgPT4gaXRlbS5wcmljZS5pZCA9PT0gcHJpY2VzLnNlYXQpO1xuICAgICAgaWYocmF3LmxpdmVtb2RlIHx8IGN1c3RvbWVyICE9PSBzdWJzY3JpcHRpb24uY3VzdG9tZXJJZCB8fCAhYmFzZSB8fCByYXcuaXRlbXMuaGFzX21vcmUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX3N1YnNjcmlwdGlvbl9taXNtYXRjaCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhpc3RpbmcgPSBhd2FpdCBsaXN0QWxsUHJvdmlkZXJSZWNvcmRzKChzdGFydGluZ0FmdGVyKSA9PlxuICAgICAgICBzdHJpcGUuaW52b2ljZUl0ZW1zLmxpc3Qoe2N1c3RvbWVyLCBsaW1pdDogMTAwLCBzdGFydGluZ19hZnRlcjogc3RhcnRpbmdBZnRlcn0pXG4gICAgICApO1xuICAgICAgY29uc3QgYWRqdXN0bWVudHMgPSBleGlzdGluZ1xuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtLm1ldGFkYXRhLm9yZ2FuaXphdGlvbkJpbGxpbmdKb2IgPT09IGpvYi5qb2JJZClcbiAgICAgICAgLm1hcChhZGp1c3RtZW50UmVjZWlwdCk7XG4gICAgICBpZihyYXcubWV0YWRhdGEub3JnYW5pemF0aW9uQmlsbGluZ0pvYiA9PT0gam9iLmpvYklkKSB7XG4gICAgICAgIHJldHVybiB7YWRqdXN0bWVudHN9O1xuICAgICAgfVxuICAgICAgaWYoam9iLmtpbmQgPT09ICdzZWF0cycgJiYgam9iLmVmZmVjdGl2ZUF0IDwgcmF3LnN0YXJ0X2RhdGUgKiAxMDAwKSB7XG4gICAgICAgIHJldHVybiB7YWRqdXN0bWVudHN9O1xuICAgICAgfVxuICAgICAgY29uc3Qgc2NoZWR1bGVJZCA9IHR5cGVvZiByYXcuc2NoZWR1bGUgPT09ICdzdHJpbmcnID8gcmF3LnNjaGVkdWxlIDogcmF3LnNjaGVkdWxlPy5pZDtcbiAgICAgIGNvbnN0IHNjaGVkdWxlID0gc2NoZWR1bGVJZCA/IGF3YWl0IHN0cmlwZS5zdWJzY3JpcHRpb25TY2hlZHVsZXMucmV0cmlldmUoc2NoZWR1bGVJZCkgOiBudWxsO1xuICAgICAgY29uc3QgYm91bmRhcnlDaGFuZ2UgPSBqb2Iua2luZCA9PT0gJ2NhbmNlbCcgfHwgKGpvYi5raW5kID09PSAncGxhbicgJiYgam9iLmRlc2lyZWQuY2hhbmdlQXQgPT09ICdwZXJpb2RfZW5kJyk7XG4gICAgICBjb25zdCB0YXJnZXRQZXJpb2RFbmQgPSBOdW1iZXIoam9iLmRlc2lyZWQudGFyZ2V0UGVyaW9kRW5kKTtcbiAgICAgIGNvbnN0IHNjaGVkdWxlQm91bmRhcnkgPSBib3VuZGFyeUNoYW5nZSA/IHRhcmdldFBlcmlvZEVuZCA6IE51bWJlcihyYXcubWV0YWRhdGEub3JnYW5pemF0aW9uUGVuZGluZ0JvdW5kYXJ5KTtcbiAgICAgIGNvbnN0IGtleSA9IChvcGVyYXRpb246IHN0cmluZyk6IHN0cmluZyA9PiBvcmdhbml6YXRpb25LZXkoJ2JpbGxpbmctam9iJywgam9iLmpvYklkLCBvcGVyYXRpb24pO1xuICAgICAgY29uc3QgbWV0YWRhdGEgPSAocGVuZGluZ1BsYW4gPSAnJykgPT4gKHtcbiAgICAgICAgb3JnYW5pemF0aW9uQmlsbGluZ0pvYjogam9iLmpvYklkLFxuICAgICAgICBvcmdhbml6YXRpb25QZW5kaW5nQm91bmRhcnk6IHBlbmRpbmdQbGFuID8gU3RyaW5nKHNjaGVkdWxlQm91bmRhcnkpIDogJycsXG4gICAgICAgIG9yZ2FuaXphdGlvblBlbmRpbmdQbGFuOiBwZW5kaW5nUGxhblxuICAgICAgfSk7XG4gICAgICBsZXQgY2xvc2VkID0gcmF3LnN0YXR1cyA9PT0gJ2NhbmNlbGVkJztcbiAgICAgIGlmKGJvdW5kYXJ5Q2hhbmdlICYmICghTnVtYmVyLmlzU2FmZUludGVnZXIodGFyZ2V0UGVyaW9kRW5kKSB8fCB0YXJnZXRQZXJpb2RFbmQgPD0gam9iLmVmZmVjdGl2ZUF0XG4gICAgICAgIHx8IGpvYi5kZXNpcmVkLnN1YnNjcmlwdGlvbklkICE9PSByYXcuaWQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19jaGFuZ2VfYm91bmRhcnlfcmVxdWlyZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGxhdGVCb3VuZGFyeSA9IGJvdW5kYXJ5Q2hhbmdlICYmIHRhcmdldFBlcmlvZEVuZCA8PSBEYXRlLm5vdygpO1xuXG4gICAgICBpZihqb2Iua2luZCA9PT0gJ2NhbmNlbCcgJiYgIWNsb3NlZCkge1xuICAgICAgICBpZihzY2hlZHVsZUlkKSB7XG4gICAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9uU2NoZWR1bGVzLnJlbGVhc2Uoc2NoZWR1bGVJZCwge30sIHtpZGVtcG90ZW5jeUtleToga2V5KCdyZWxlYXNlJyl9KTtcbiAgICAgICAgfVxuICAgICAgICBpZighbGF0ZUJvdW5kYXJ5KSB7XG4gICAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9ucy51cGRhdGUocmF3LmlkLCB7Y2FuY2VsX2F0OiB0YXJnZXRQZXJpb2RFbmQgLyAxMDAwLCBtZXRhZGF0YTogey4uLm1ldGFkYXRhKCksIG9yZ2FuaXphdGlvbkNhbmNlbEJvdW5kYXJ5OiBTdHJpbmcodGFyZ2V0UGVyaW9kRW5kKX0sIHByb3JhdGlvbl9iZWhhdmlvcjogJ25vbmUnfSwge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ2NhbmNlbCcpfSk7XG4gICAgICAgICAgcmV0dXJuIHthZGp1c3RtZW50c307XG4gICAgICAgIH1cbiAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvbnMudXBkYXRlKHJhdy5pZCwge21ldGFkYXRhOiB7b3JnYW5pemF0aW9uQ2FuY2VsQm91bmRhcnk6IFN0cmluZyh0YXJnZXRQZXJpb2RFbmQpfX0sIHtpZGVtcG90ZW5jeUtleToga2V5KCdjYW5jZWwtaW50ZW50Jyl9KTtcbiAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvbnMuY2FuY2VsKHJhdy5pZCwge2ludm9pY2Vfbm93OiBmYWxzZSwgcHJvcmF0ZTogZmFsc2V9LCB7aWRlbXBvdGVuY3lLZXk6IGtleSgnY2FuY2VsJyl9KTtcbiAgICAgICAgY2xvc2VkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIGlmKCFbJ2NhbmNlbCcsICdwbGFuJywgJ3NlYXRzJ10uaW5jbHVkZXMoam9iLmtpbmQpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9iaWxsaW5nX2pvYicpO1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudFBsYW4gPSBiYXNlLnByaWNlLmlkID09PSBwcmljZXMucHJvID8gJ3BybycgOiAnc3RhcnRlcic7XG4gICAgICBjb25zdCBwbGFuID0gam9iLmtpbmQgPT09ICdwbGFuJyA/IHB1Ymxpc2hlZFBsYW4oam9iLmRlc2lyZWQucGxhbikgOiBjdXJyZW50UGxhbjtcbiAgICAgIGNvbnN0IHNlYXRzID0gam9iLmtpbmQgPT09ICdzZWF0cycgPyBzYWZlUXVhbnRpdHkoam9iLmRlc2lyZWQuZXh0cmFTZWF0cykgOiBzZWF0Py5xdWFudGl0eSB8fCAwO1xuICAgICAgbGV0IHBlbmRpbmdQbGFuOiBQbGFuS2V5IHwgbnVsbCA9IG51bGw7XG4gICAgICBpZihqb2Iua2luZCA9PT0gJ3BsYW4nICYmIGpvYi5kZXNpcmVkLmNoYW5nZUF0ID09PSAncGVyaW9kX2VuZCcgJiYgIWxhdGVCb3VuZGFyeSkge1xuICAgICAgICBwZW5kaW5nUGxhbiA9IHBsYW47XG4gICAgICB9IGVsc2UgaWYoIWxhdGVCb3VuZGFyeSAmJiByYXcubWV0YWRhdGEub3JnYW5pemF0aW9uUGVuZGluZ1BsYW4gPT09ICdzdGFydGVyJyAmJiBjdXJyZW50UGxhbiAhPT0gJ3N0YXJ0ZXInKSB7XG4gICAgICAgIHBlbmRpbmdQbGFuID0gJ3N0YXJ0ZXInO1xuICAgICAgfVxuICAgICAgaWYocGVuZGluZ1BsYW4gJiYgKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihzY2hlZHVsZUJvdW5kYXJ5KSB8fCBzY2hlZHVsZUJvdW5kYXJ5IDw9IERhdGUubm93KCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19jaGFuZ2VfYm91bmRhcnlfcmVxdWlyZWQnKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBoYXNlSXRlbXMgPSAocGhhc2VQbGFuOiBQbGFuS2V5KSA9PiBbXG4gICAgICAgIHtwcmljZTogcHJpY2VzW3BoYXNlUGxhbl0sIHF1YW50aXR5OiAxfSxcbiAgICAgICAgLi4uKHNlYXRzID8gW3twcmljZTogcHJpY2VzLnNlYXQsIHF1YW50aXR5OiBzZWF0c31dIDogW10pXG4gICAgICBdO1xuICAgICAgY29uc3QgYXBwbHlTY2hlZHVsZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgY29uc3QgaWQgPVxuICAgICAgICAgIHNjaGVkdWxlSWQgfHxcbiAgICAgICAgKFxuICAgICAgICAgIGF3YWl0IHN0cmlwZS5zdWJzY3JpcHRpb25TY2hlZHVsZXMuY3JlYXRlKFxuICAgICAgICAgICAge2Zyb21fc3Vic2NyaXB0aW9uOiByYXcuaWR9LFxuICAgICAgICAgICAge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ3NjaGVkdWxlLWNyZWF0ZScpfVxuICAgICAgICAgIClcbiAgICAgICAgKS5pZDtcbiAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvblNjaGVkdWxlcy51cGRhdGUoXG4gICAgICAgICAgaWQsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZW5kX2JlaGF2aW9yOiAncmVsZWFzZScsXG4gICAgICAgICAgICBtZXRhZGF0YTogbWV0YWRhdGEocGVuZGluZ1BsYW4hKSxcbiAgICAgICAgICAgIHBoYXNlczogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgZW5kX2RhdGU6IHNjaGVkdWxlQm91bmRhcnkgLyAxMDAwLFxuICAgICAgICAgICAgICAgIGl0ZW1zOiBwaGFzZUl0ZW1zKGN1cnJlbnRQbGFuKSxcbiAgICAgICAgICAgICAgICBwcm9yYXRpb25fYmVoYXZpb3I6ICdub25lJyxcbiAgICAgICAgICAgICAgICBzdGFydF9kYXRlOiBiYXNlLmN1cnJlbnRfcGVyaW9kX3N0YXJ0XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbjoge2ludGVydmFsOiAnbW9udGgnLCBpbnRlcnZhbF9jb3VudDogMX0sXG4gICAgICAgICAgICAgICAgaXRlbXM6IHBoYXNlSXRlbXMocGVuZGluZ1BsYW4hKSxcbiAgICAgICAgICAgICAgICBwcm9yYXRpb25fYmVoYXZpb3I6ICdub25lJyxcbiAgICAgICAgICAgICAgICBzdGFydF9kYXRlOiBzY2hlZHVsZUJvdW5kYXJ5IC8gMTAwMFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcHJvcmF0aW9uX2JlaGF2aW9yOiAnbm9uZSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtpZGVtcG90ZW5jeUtleToga2V5KCdzY2hlZHVsZS11cGRhdGUnKX1cbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBjb25zdCBtYXJrQXBwbGllZCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvbnMudXBkYXRlKFxuICAgICAgICAgIHJhdy5pZCxcbiAgICAgICAgICB7bWV0YWRhdGE6IG1ldGFkYXRhKHBlbmRpbmdQbGFuIHx8ICcnKX0sXG4gICAgICAgICAge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ21hcmtlcicpfVxuICAgICAgICApO1xuICAgICAgfTtcbiAgICAgIGlmKHNjaGVkdWxlPy5tZXRhZGF0YS5vcmdhbml6YXRpb25CaWxsaW5nSm9iID09PSBqb2Iuam9iSWQpIHtcbiAgICAgICAgYXdhaXQgbWFya0FwcGxpZWQoKTtcbiAgICAgICAgcmV0dXJuIHthZGp1c3RtZW50c307XG4gICAgICB9XG4gICAgICBpZihqb2Iua2luZCA9PT0gJ3BsYW4nICYmIGpvYi5kZXNpcmVkLmNoYW5nZUF0ID09PSAncGVyaW9kX2VuZCcgJiYgIWxhdGVCb3VuZGFyeSkge1xuICAgICAgICBhd2FpdCBhcHBseVNjaGVkdWxlKCk7XG4gICAgICAgIGF3YWl0IG1hcmtBcHBsaWVkKCk7XG4gICAgICAgIHJldHVybiB7YWRqdXN0bWVudHN9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBjdXJyZW50UmF0ZSA9IGdldE9yZ2FuaXphdGlvblBsYW4oY3VycmVudFBsYW4pLmJhc2VDZW50cyArIChzZWF0cyAqIDgwMCk7XG4gICAgICBsZXQgcmF0ZURlbHRhID0gLWN1cnJlbnRSYXRlO1xuICAgICAgaWYoam9iLmtpbmQgIT09ICdjYW5jZWwnKSB7XG4gICAgICAgIHJhdGVEZWx0YSA9IGpvYi5raW5kID09PSAnc2VhdHMnXG4gICAgICAgICAgPyAoc2VhdHMgLSBzYWZlUXVhbnRpdHkoam9iLmRlc2lyZWQucHJldmlvdXNFeHRyYVNlYXRzKSkgKiA4MDBcbiAgICAgICAgICA6IGdldE9yZ2FuaXphdGlvblBsYW4ocGxhbikuYmFzZUNlbnRzIC1cbiAgICAgICAgICBnZXRPcmdhbml6YXRpb25QbGFuKHB1Ymxpc2hlZFBsYW4oam9iLmRlc2lyZWQucHJldmlvdXNQbGFuKSkuYmFzZUNlbnRzO1xuICAgICAgfVxuICAgICAgaWYoXG4gICAgICAgIGpvYi5raW5kID09PSAncGxhbicgJiZcbiAgICAgICgoIWxhdGVCb3VuZGFyeSAmJiAoam9iLmRlc2lyZWQuY2hhbmdlQXQgIT09ICdpbW1lZGlhdGUnIHx8IHJhdGVEZWx0YSA8PSAwKSkgfHwgKGxhdGVCb3VuZGFyeSAmJiByYXRlRGVsdGEgPj0gMCkgfHwgcmF3LnN0YXR1cyAhPT0gJ2FjdGl2ZScpXG4gICAgICApIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2JpbGxpbmdfam9iJyk7XG4gICAgICB9XG4gICAgICBpZighTnVtYmVyLmlzU2FmZUludGVnZXIocmF0ZURlbHRhKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfYmlsbGluZ19qb2InKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGludm9pY2VzID0gYXdhaXQgbGlzdEFsbFByb3ZpZGVyUmVjb3Jkcygoc3RhcnRpbmdBZnRlcikgPT5cbiAgICAgICAgc3RyaXBlLmludm9pY2VzLmxpc3Qoe2N1c3RvbWVyLCBsaW1pdDogMTAwLCBzdGFydGluZ19hZnRlcjogc3RhcnRpbmdBZnRlciwgc3Vic2NyaXB0aW9uOiByYXcuaWR9KVxuICAgICAgKTtcbiAgICAgIGlmKGludm9pY2VzLnNvbWUoKGludm9pY2UpID0+IGludm9pY2UubWV0YWRhdGE/Lm9yZ2FuaXphdGlvbkJpbGxpbmdKb2IgPT09IGpvYi5qb2JJZFxuICAgICAgICAmJiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKE51bWJlcihpbnZvaWNlLm1ldGFkYXRhLnBlcmlvZFN0YXJ0KSlcbiAgICAgICAgICB8fCAhTnVtYmVyLmlzU2FmZUludGVnZXIoTnVtYmVyKGludm9pY2UubWV0YWRhdGEucGVyaW9kRW5kKSlcbiAgICAgICAgICB8fCBOdW1iZXIoaW52b2ljZS5tZXRhZGF0YS5wZXJpb2RFbmQpIDw9IE51bWJlcihpbnZvaWNlLm1ldGFkYXRhLnBlcmlvZFN0YXJ0KSkpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19zZXR0bGVtZW50X2NvbmZsaWN0Jyk7XG4gICAgICB9XG4gICAgICBjb25zdCBwZXJpb2RzID0gbmV3IE1hcDxzdHJpbmcsIFBlcmlvZD4oKTtcbiAgICAgIGNvbnN0IHJlbmV3YWxSYXRlcyA9IG5ldyBNYXA8c3RyaW5nLCBudW1iZXI+KCk7XG4gICAgICBmb3IoY29uc3QgaW52b2ljZSBvZiBpbnZvaWNlcykge1xuICAgICAgICBpZihpbnZvaWNlLmxpbmVzLmhhc19tb3JlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX2xvb2t1cF9pbmNvbXBsZXRlJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW52b2ljZVJhdGVzID0gbmV3IE1hcDxzdHJpbmcsIG51bWJlcj4oKTtcbiAgICAgICAgZm9yKGNvbnN0IGxpbmUgb2YgaW52b2ljZS5saW5lcy5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgcHJpY2UgPSBsaW5lLnByaWNpbmc/LnByaWNlX2RldGFpbHM/LnByaWNlO1xuICAgICAgICAgIGNvbnN0IHByaWNlSWQgPSB0eXBlb2YgcHJpY2UgPT09ICdzdHJpbmcnID8gcHJpY2UgOiBwcmljZT8uaWQ7XG4gICAgICAgICAgaWYoXG4gICAgICAgICAgICBbcHJpY2VzLnBybywgcHJpY2VzLnN0YXJ0ZXIsIHByaWNlcy5zZWF0XS5pbmNsdWRlcyhwcmljZUlkIHx8ICcnKSAmJlxuICAgICAgICAgICFsaW5lLnBhcmVudD8uc3Vic2NyaXB0aW9uX2l0ZW1fZGV0YWlscz8ucHJvcmF0aW9uXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBjb25zdCBwZXJpb2QgPSB7ZW5kOiBsaW5lLnBlcmlvZC5lbmQgKiAxMDAwLCBzdGFydDogbGluZS5wZXJpb2Quc3RhcnQgKiAxMDAwfTtcbiAgICAgICAgICAgIGNvbnN0IHBlcmlvZEtleSA9IGAke3BlcmlvZC5zdGFydH0tJHtwZXJpb2QuZW5kfWA7XG4gICAgICAgICAgICBpZihwcmljZUlkICE9PSBwcmljZXMuc2VhdCkge1xuICAgICAgICAgICAgICBwZXJpb2RzLnNldChwZXJpb2RLZXksIHBlcmlvZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByYXRlID0gcHJpY2VJZCA9PT0gcHJpY2VzLnNlYXQgPyA4MDAgKiBzYWZlUXVhbnRpdHkobGluZS5xdWFudGl0eSkgOiBnZXRPcmdhbml6YXRpb25QbGFuKHByaWNlSWQgPT09IHByaWNlcy5wcm8gPyAncHJvJyA6ICdzdGFydGVyJykuYmFzZUNlbnRzO1xuICAgICAgICAgICAgaW52b2ljZVJhdGVzLnNldChwZXJpb2RLZXksIChpbnZvaWNlUmF0ZXMuZ2V0KHBlcmlvZEtleSkgfHwgMCkgKyByYXRlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZm9yKGNvbnN0IFtwZXJpb2RLZXksIHJhdGVdIG9mIGludm9pY2VSYXRlcykge1xuICAgICAgICAgIGlmKHJlbmV3YWxSYXRlcy5oYXMocGVyaW9kS2V5KSAmJiByZW5ld2FsUmF0ZXMuZ2V0KHBlcmlvZEtleSkgIT09IHJhdGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19wZXJpb2RfaGlzdG9yeV9yZXF1aXJlZCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZW5ld2FsUmF0ZXMuc2V0KHBlcmlvZEtleSwgcmF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIENhbmNlbGVkIHN1YnNjcmlwdGlvbnMgbWF5IHRydW5jYXRlIGl0ZW0gZGF0ZXMuIExpY2Vuc2VkIHJlbmV3YWwgaW52b2ljZXMgcmV0YWluIHRoZSBmdWxsIGNoYXJnZWQgcGVyaW9kLlxuICAgICAgY29uc3QgY3VycmVudFN0YXJ0ID0gYmFzZS5jdXJyZW50X3BlcmlvZF9zdGFydCAqIDEwMDA7XG4gICAgICBjb25zdCBjdXJyZW50UGVyaW9kID0ge1xuICAgICAgICBlbmQ6IE1hdGgubWF4KGJhc2UuY3VycmVudF9wZXJpb2RfZW5kICogMTAwMCwgLi4uWy4uLnBlcmlvZHMudmFsdWVzKCldXG4gICAgICAgICAgLmZpbHRlcigocGVyaW9kKSA9PiBwZXJpb2Quc3RhcnQgPT09IGN1cnJlbnRTdGFydCkubWFwKChwZXJpb2QpID0+IHBlcmlvZC5lbmQpKSxcbiAgICAgICAgc3RhcnQ6IGN1cnJlbnRTdGFydFxuICAgICAgfTtcbiAgICAgIHBlcmlvZHMuc2V0KGAke2N1cnJlbnRQZXJpb2Quc3RhcnR9LSR7Y3VycmVudFBlcmlvZC5lbmR9YCwgY3VycmVudFBlcmlvZCk7XG4gICAgICBjb25zdCBlZmZlY3RpdmVBdCA9IE1hdGguZmxvb3IoKGJvdW5kYXJ5Q2hhbmdlID8gdGFyZ2V0UGVyaW9kRW5kIDogam9iLmVmZmVjdGl2ZUF0KSAvIDEwMDApICogMTAwMDtcbiAgICAgIGNvbnN0IGNhbmNlbGVkQm91bmRhcnkgPSBOdW1iZXIocmF3Lm1ldGFkYXRhLm9yZ2FuaXphdGlvbkNhbmNlbEJvdW5kYXJ5KTtcbiAgICAgIGNvbnN0IGNoYXJnZVRocm91Z2ggPSBjbG9zZWQgJiYgTnVtYmVyLmlzU2FmZUludGVnZXIoY2FuY2VsZWRCb3VuZGFyeSkgJiYgY2FuY2VsZWRCb3VuZGFyeSA+IDAgJiYgam9iLmtpbmQgIT09ICdjYW5jZWwnXG4gICAgICAgID8gTWF0aC5taW4oY3VycmVudFBlcmlvZC5lbmQsIGNhbmNlbGVkQm91bmRhcnkpIDogY3VycmVudFBlcmlvZC5lbmQ7XG4gICAgICBjb25zdCBhcHBsaWNhYmxlID0gWy4uLnBlcmlvZHMudmFsdWVzKCldXG4gICAgICAgIC5maWx0ZXIoKHBlcmlvZCkgPT4gcGVyaW9kLmVuZCA+IGVmZmVjdGl2ZUF0ICYmIHBlcmlvZC5zdGFydCA8PSBjdXJyZW50UGVyaW9kLnN0YXJ0KVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5zdGFydCAtIGIuc3RhcnQpO1xuICAgICAgbGV0IGNvdmVyZWRUaHJvdWdoID0gZWZmZWN0aXZlQXQ7XG4gICAgICBmb3IoY29uc3QgcGVyaW9kIG9mIGFwcGxpY2FibGUpIHtcbiAgICAgICAgaWYoXG4gICAgICAgICAgIU51bWJlci5pc1NhZmVJbnRlZ2VyKHBlcmlvZC5zdGFydCkgfHxcbiAgICAgICAgIU51bWJlci5pc1NhZmVJbnRlZ2VyKHBlcmlvZC5lbmQpIHx8XG4gICAgICAgIHBlcmlvZC5lbmQgPD0gcGVyaW9kLnN0YXJ0IHx8XG4gICAgICAgIHBlcmlvZC5zdGFydCA+IGNvdmVyZWRUaHJvdWdoXG4gICAgICAgICkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19wZXJpb2RfaGlzdG9yeV9yZXF1aXJlZCcpO1xuICAgICAgICB9XG4gICAgICAgIGNvdmVyZWRUaHJvdWdoID0gTWF0aC5tYXgoY292ZXJlZFRocm91Z2gsIHBlcmlvZC5lbmQpO1xuICAgICAgfVxuICAgICAgaWYoY292ZXJlZFRocm91Z2ggPCBjaGFyZ2VUaHJvdWdoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19wZXJpb2RfaGlzdG9yeV9yZXF1aXJlZCcpO1xuICAgICAgfVxuICAgICAgLy8gRml4ZWQsIHB1Ymxpc2hlZCBVU0QgcmF0ZXMuIEFwcGx5IG9yaWdpbmFsLXRpbWUgYWRqdXN0bWVudHMgYmVmb3JlIGRpc2FibGluZyBhdXRvbWF0aWMgcHJvdmlkZXIgcHJvcmF0aW9uLlxuICAgICAgZm9yKGNvbnN0IHBlcmlvZCBvZiBhcHBsaWNhYmxlKSB7XG4gICAgICAgIGNvbnN0IHBlcmlvZFJhdGUgPSBqb2Iua2luZCA9PT0gJ2NhbmNlbCcgPyAtKHJlbmV3YWxSYXRlcy5nZXQoYCR7cGVyaW9kLnN0YXJ0fS0ke3BlcmlvZC5lbmR9YCkgPz8gLXJhdGVEZWx0YSkgOiByYXRlRGVsdGE7XG4gICAgICAgIGNvbnN0IGFtb3VudENlbnRzID0gTWF0aC5yb3VuZChcbiAgICAgICAgICAocGVyaW9kUmF0ZSAqIE1hdGgubWF4KDAsIE1hdGgubWluKHBlcmlvZC5lbmQsIGNoYXJnZVRocm91Z2gpIC0gTWF0aC5tYXgoZWZmZWN0aXZlQXQsIHBlcmlvZC5zdGFydCkpKVxuICAgICAgICAgIC8gKHBlcmlvZC5lbmQgLSBwZXJpb2Quc3RhcnQpXG4gICAgICAgICk7XG4gICAgICAgIGlmKCFhbW91bnRDZW50cykge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihhbW91bnRDZW50cykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfYmlsbGluZ19qb2InKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWNlaXB0ID0gZXhpc3RpbmcuZmluZCgoaXRlbSkgPT4gaXRlbS5tZXRhZGF0YS5vcmdhbml6YXRpb25CaWxsaW5nSm9iID09PSBqb2Iuam9iSWRcbiAgICAgICAgICAmJiBOdW1iZXIoaXRlbS5tZXRhZGF0YS5wZXJpb2RTdGFydCkgPT09IHBlcmlvZC5zdGFydCAmJiBOdW1iZXIoaXRlbS5tZXRhZGF0YS5wZXJpb2RFbmQpID09PSBwZXJpb2QuZW5kKTtcbiAgICAgICAgY29uc3QgaW52b2ljZUlkID0gdHlwZW9mIHJlY2VpcHQ/Lmludm9pY2UgPT09ICdzdHJpbmcnID8gcmVjZWlwdC5pbnZvaWNlIDogcmVjZWlwdD8uaW52b2ljZT8uaWQ7XG4gICAgICAgIGxldCBzZXR0bGVtZW50ID0gaW52b2ljZUlkID8gYXdhaXQgc3RyaXBlLmludm9pY2VzLnJldHJpZXZlKGludm9pY2VJZCkgOiBpbnZvaWNlcy5maW5kKChpbnZvaWNlKSA9PlxuICAgICAgICAgIGludm9pY2UubWV0YWRhdGE/Lm9yZ2FuaXphdGlvbkJpbGxpbmdKb2IgPT09IGpvYi5qb2JJZFxuICAgICAgICAgICYmIE51bWJlcihpbnZvaWNlLm1ldGFkYXRhLnBlcmlvZFN0YXJ0KSA9PT0gcGVyaW9kLnN0YXJ0XG4gICAgICAgICAgJiYgTnVtYmVyKGludm9pY2UubWV0YWRhdGEucGVyaW9kRW5kKSA9PT0gcGVyaW9kLmVuZCk7XG4gICAgICAgIGlmKHJlY2VpcHQgJiYgKCFpbnZvaWNlSWQgfHwgcmVjZWlwdC5hbW91bnQgIT09IGFtb3VudENlbnRzKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmlsbGluZ19zZXR0bGVtZW50X2NvbmZsaWN0Jyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoIXNldHRsZW1lbnQpIHtcbiAgICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICAgIHNldHRsZW1lbnQgPSBhd2FpdCBzdHJpcGUuaW52b2ljZXMuY3JlYXRlKHthdXRvX2FkdmFuY2U6IGZhbHNlLCBjdXN0b21lcixcbiAgICAgICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgICAgIG9yZ2FuaXphdGlvbkJpbGxpbmdKb2I6IGpvYi5qb2JJZCxcbiAgICAgICAgICAgICAgcGVyaW9kRW5kOiBTdHJpbmcocGVyaW9kLmVuZCksXG4gICAgICAgICAgICAgIHBlcmlvZFN0YXJ0OiBTdHJpbmcocGVyaW9kLnN0YXJ0KSxcbiAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uSWQ6IHJhdy5pZFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHBlbmRpbmdfaW52b2ljZV9pdGVtc19iZWhhdmlvcjogJ2V4Y2x1ZGUnLCAuLi4oY2xvc2VkID8ge30gOiB7c3Vic2NyaXB0aW9uOiByYXcuaWR9KVxuICAgICAgICAgIH0sIHtpZGVtcG90ZW5jeUtleToga2V5KGBzZXR0bGVtZW50LSR7cGVyaW9kLnN0YXJ0fS0ke3BlcmlvZC5lbmR9YCl9KTtcbiAgICAgICAgfVxuICAgICAgICBpZighcmVjZWlwdCkge1xuICAgICAgICAgIGlmKHNldHRsZW1lbnQuc3RhdHVzICE9PSAnZHJhZnQnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfc2V0dGxlbWVudF9jb25mbGljdCcpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBzdHJpcGUuaW52b2ljZUl0ZW1zLmNyZWF0ZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYW1vdW50OiBhbW91bnRDZW50cyxcbiAgICAgICAgICAgICAgY3VycmVuY3k6ICd1c2QnLFxuICAgICAgICAgICAgICBjdXN0b21lcixcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGBSZWFrdG9yICR7am9iLmtpbmQgPT09ICdzZWF0cycgPyAnYWN0aXZlLW1lbWJlcicgOiAncGxhbid9IHByb3JhdGlvbiAoJHtqb2IucHJpY2VWZXJzaW9ufSlgLFxuICAgICAgICAgICAgICBkaXNjb3VudGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBpbnZvaWNlOiBzZXR0bGVtZW50LmlkLFxuICAgICAgICAgICAgICBtZXRhZGF0YToge1xuICAgICAgICAgICAgICAgIG9yZ2FuaXphdGlvbkJpbGxpbmdKb2I6IGpvYi5qb2JJZCxcbiAgICAgICAgICAgICAgICBwZXJpb2RFbmQ6IFN0cmluZyhwZXJpb2QuZW5kKSxcbiAgICAgICAgICAgICAgICBwZXJpb2RTdGFydDogU3RyaW5nKHBlcmlvZC5zdGFydCksXG4gICAgICAgICAgICAgICAgcHJpY2VWZXJzaW9uOiBqb2IucHJpY2VWZXJzaW9uXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHBlcmlvZDoge2VuZDogcGVyaW9kLmVuZCAvIDEwMDAsIHN0YXJ0OiBNYXRoLm1heChlZmZlY3RpdmVBdCwgcGVyaW9kLnN0YXJ0KSAvIDEwMDB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge2lkZW1wb3RlbmN5S2V5OiBrZXkoYGFkanVzdG1lbnQtJHtwZXJpb2Quc3RhcnR9LSR7cGVyaW9kLmVuZH1gKX1cbiAgICAgICAgICApO1xuICAgICAgICAgIGFkanVzdG1lbnRzLnB1c2goYWRqdXN0bWVudFJlY2VpcHQoaXRlbSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmKHNldHRsZW1lbnQ/LnN0YXR1cyA9PT0gJ2RyYWZ0Jykge1xuICAgICAgICAgIGF3YWl0IGZlbmNlKCk7XG4gICAgICAgICAgYXdhaXQgc3RyaXBlLmludm9pY2VzLmZpbmFsaXplSW52b2ljZShcbiAgICAgICAgICAgIHNldHRsZW1lbnQuaWQsXG4gICAgICAgICAgICB7YXV0b19hZHZhbmNlOiB0cnVlfSxcbiAgICAgICAgICAgIHtpZGVtcG90ZW5jeUtleToga2V5KGBzZXR0bGVtZW50LWZpbmFsaXplLSR7cGVyaW9kLnN0YXJ0fS0ke3BlcmlvZC5lbmR9YCl9XG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYoam9iLmtpbmQgPT09ICdwbGFuJyAmJiBsYXRlQm91bmRhcnkgJiYgc2NoZWR1bGVJZCkge1xuICAgICAgICBhd2FpdCBmZW5jZSgpO1xuICAgICAgICBhd2FpdCBzdHJpcGUuc3Vic2NyaXB0aW9uU2NoZWR1bGVzLnJlbGVhc2Uoc2NoZWR1bGVJZCwge30sIHtpZGVtcG90ZW5jeUtleToga2V5KCdyZWxlYXNlJyl9KTtcbiAgICAgIH1cbiAgICAgIGlmKGNsb3NlZCkge1xuICAgICAgICBhd2FpdCBtYXJrQXBwbGllZCgpO1xuICAgICAgfSBlbHNlIGlmKHBlbmRpbmdQbGFuKSB7XG4gICAgICAgIGF3YWl0IGFwcGx5U2NoZWR1bGUoKTtcbiAgICAgICAgYXdhaXQgbWFya0FwcGxpZWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHNlYXRJdGVtcyA9IHNlYXRzID8gW3twcmljZTogcHJpY2VzLnNlYXQsIHF1YW50aXR5OiBzZWF0c31dIDogW107XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBTdHJpcGUuU3Vic2NyaXB0aW9uVXBkYXRlUGFyYW1zLkl0ZW1bXSA9IFtcbiAgICAgICAgICB7aWQ6IGJhc2UuaWQsIHByaWNlOiBwcmljZXNbcGxhbl0sIHF1YW50aXR5OiAxfSxcbiAgICAgICAgICAuLi4oc2VhdFxuICAgICAgICAgICAgPyBbe2lkOiBzZWF0LmlkLCBwcmljZTogcHJpY2VzLnNlYXQsIHF1YW50aXR5OiBzZWF0c31dXG4gICAgICAgICAgICA6IHNlYXRJdGVtcylcbiAgICAgICAgXTtcbiAgICAgICAgYXdhaXQgZmVuY2UoKTtcbiAgICAgICAgYXdhaXQgc3RyaXBlLnN1YnNjcmlwdGlvbnMudXBkYXRlKFxuICAgICAgICAgIHJhdy5pZCxcbiAgICAgICAgICB7aXRlbXMsIG1ldGFkYXRhOiBtZXRhZGF0YSgpLCBwcm9yYXRpb25fYmVoYXZpb3I6ICdub25lJ30sXG4gICAgICAgICAge2lkZW1wb3RlbmN5S2V5OiBrZXkoJ2FwcGx5Jyl9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4ge2FkanVzdG1lbnRzfTtcbiAgICB9O1xuIl0sIm5hbWVzIjpbImdldE9yZ2FuaXphdGlvblBsYW4iLCJsaXN0QWxsUHJvdmlkZXJSZWNvcmRzIiwib3JnYW5pemF0aW9uS2V5IiwicHVibGlzaGVkUGxhbiIsInZhbHVlIiwia2V5Iiwic2FmZVF1YW50aXR5IiwiTnVtYmVyIiwiaXNTYWZlSW50ZWdlciIsIkVycm9yIiwiYWRqdXN0bWVudFJlY2VpcHQiLCJpdGVtIiwiYW1vdW50Q2VudHMiLCJhbW91bnQiLCJwZXJpb2RFbmQiLCJtZXRhZGF0YSIsInBlcmlvZFN0YXJ0IiwicHJvdmlkZXJJZCIsImlkIiwiY3JlYXRlT3JnYW5pemF0aW9uQmlsbGluZ1VwZGF0ZXIiLCJzdHJpcGUiLCJwcmljZXMiLCJzdWJzY3JpcHRpb24iLCJqb2IiLCJmZW5jZSIsInByaWNlVmVyc2lvbiIsImVmZmVjdGl2ZUF0IiwicmF3Iiwic3Vic2NyaXB0aW9ucyIsInJldHJpZXZlIiwiY3VzdG9tZXIiLCJiYXNlIiwiaXRlbXMiLCJkYXRhIiwiZmluZCIsInBybyIsInN0YXJ0ZXIiLCJpbmNsdWRlcyIsInByaWNlIiwic2VhdCIsImxpdmVtb2RlIiwiY3VzdG9tZXJJZCIsImhhc19tb3JlIiwiZXhpc3RpbmciLCJzdGFydGluZ0FmdGVyIiwiaW52b2ljZUl0ZW1zIiwibGlzdCIsImxpbWl0Iiwic3RhcnRpbmdfYWZ0ZXIiLCJhZGp1c3RtZW50cyIsImZpbHRlciIsIm9yZ2FuaXphdGlvbkJpbGxpbmdKb2IiLCJqb2JJZCIsIm1hcCIsImtpbmQiLCJzdGFydF9kYXRlIiwic2NoZWR1bGVJZCIsInNjaGVkdWxlIiwic3Vic2NyaXB0aW9uU2NoZWR1bGVzIiwiYm91bmRhcnlDaGFuZ2UiLCJkZXNpcmVkIiwiY2hhbmdlQXQiLCJ0YXJnZXRQZXJpb2RFbmQiLCJzY2hlZHVsZUJvdW5kYXJ5Iiwib3JnYW5pemF0aW9uUGVuZGluZ0JvdW5kYXJ5Iiwib3BlcmF0aW9uIiwicGVuZGluZ1BsYW4iLCJTdHJpbmciLCJvcmdhbml6YXRpb25QZW5kaW5nUGxhbiIsImNsb3NlZCIsInN0YXR1cyIsInN1YnNjcmlwdGlvbklkIiwibGF0ZUJvdW5kYXJ5IiwiRGF0ZSIsIm5vdyIsInJlbGVhc2UiLCJpZGVtcG90ZW5jeUtleSIsInVwZGF0ZSIsImNhbmNlbF9hdCIsIm9yZ2FuaXphdGlvbkNhbmNlbEJvdW5kYXJ5IiwicHJvcmF0aW9uX2JlaGF2aW9yIiwiY2FuY2VsIiwiaW52b2ljZV9ub3ciLCJwcm9yYXRlIiwiY3VycmVudFBsYW4iLCJwbGFuIiwic2VhdHMiLCJleHRyYVNlYXRzIiwicXVhbnRpdHkiLCJwaGFzZUl0ZW1zIiwicGhhc2VQbGFuIiwiYXBwbHlTY2hlZHVsZSIsImNyZWF0ZSIsImZyb21fc3Vic2NyaXB0aW9uIiwiZW5kX2JlaGF2aW9yIiwicGhhc2VzIiwiZW5kX2RhdGUiLCJjdXJyZW50X3BlcmlvZF9zdGFydCIsImR1cmF0aW9uIiwiaW50ZXJ2YWwiLCJpbnRlcnZhbF9jb3VudCIsIm1hcmtBcHBsaWVkIiwiY3VycmVudFJhdGUiLCJiYXNlQ2VudHMiLCJyYXRlRGVsdGEiLCJwcmV2aW91c0V4dHJhU2VhdHMiLCJwcmV2aW91c1BsYW4iLCJpbnZvaWNlcyIsInNvbWUiLCJpbnZvaWNlIiwicGVyaW9kcyIsIk1hcCIsInJlbmV3YWxSYXRlcyIsImxpbmVzIiwiaW52b2ljZVJhdGVzIiwibGluZSIsInByaWNpbmciLCJwcmljZV9kZXRhaWxzIiwicHJpY2VJZCIsInBhcmVudCIsInN1YnNjcmlwdGlvbl9pdGVtX2RldGFpbHMiLCJwcm9yYXRpb24iLCJwZXJpb2QiLCJlbmQiLCJzdGFydCIsInBlcmlvZEtleSIsInNldCIsInJhdGUiLCJnZXQiLCJoYXMiLCJjdXJyZW50U3RhcnQiLCJjdXJyZW50UGVyaW9kIiwiTWF0aCIsIm1heCIsImN1cnJlbnRfcGVyaW9kX2VuZCIsInZhbHVlcyIsImZsb29yIiwiY2FuY2VsZWRCb3VuZGFyeSIsImNoYXJnZVRocm91Z2giLCJtaW4iLCJhcHBsaWNhYmxlIiwic29ydCIsImEiLCJiIiwiY292ZXJlZFRocm91Z2giLCJwZXJpb2RSYXRlIiwicm91bmQiLCJyZWNlaXB0IiwiaW52b2ljZUlkIiwic2V0dGxlbWVudCIsImF1dG9fYWR2YW5jZSIsInBlbmRpbmdfaW52b2ljZV9pdGVtc19iZWhhdmlvciIsImN1cnJlbmN5IiwiZGVzY3JpcHRpb24iLCJkaXNjb3VudGFibGUiLCJwdXNoIiwiZmluYWxpemVJbnZvaWNlIiwic2VhdEl0ZW1zIl0sIm1hcHBpbmdzIjoiQUFBQSxtR0FBbUcsR0FDbkcsbUNBQW1DLEdBQ25DLFNBQVFBLG1CQUFtQixRQUFPLGFBQWE7QUFDL0MsU0FBUUMsc0JBQXNCLFFBQU8sMEJBQTBCO0FBQy9ELFNBQVFDLGVBQWUsUUFBTyxhQUFhO0FBTzNDLE1BQU1DLGdCQUFnQixDQUFDQyxRQUE0Qkosb0JBQW9CSSxPQUFrQkMsR0FBRztBQUM1RixNQUFNQyxlQUFlLENBQUNGO0lBQ3BCLElBQUcsT0FBT0EsVUFBVSxZQUFZLENBQUNHLE9BQU9DLGFBQWEsQ0FBQ0osVUFBVUEsUUFBUSxHQUFHO1FBQ3pFLE1BQU0sSUFBSUssTUFBTTtJQUNsQjtJQUNBLE9BQU9MO0FBQ1Q7QUFDQSxNQUFNTSxvQkFBb0IsQ0FBQ0MsT0FBaUQsQ0FBQTtRQUMxRUMsYUFBYUQsS0FBS0UsTUFBTTtRQUN4QkMsV0FBV1AsT0FBT0ksS0FBS0ksUUFBUSxDQUFDRCxTQUFTO1FBQ3pDRSxhQUFhVCxPQUFPSSxLQUFLSSxRQUFRLENBQUNDLFdBQVc7UUFDN0NDLFlBQVlOLEtBQUtPLEVBQUU7SUFDckIsQ0FBQTtBQUVBLE9BQU8sTUFBTUMsbUNBQ1gsQ0FBQ0MsUUFBZ0JDLFNBQ2YsT0FBT0MsY0FBY0MsS0FBS0M7UUFDeEIsTUFBTUE7UUFDTixJQUFHRCxJQUFJRSxZQUFZLEtBQUssY0FBYztZQUNwQyxNQUFNLElBQUloQixNQUFNO1FBQ2xCO1FBQ0EsSUFBRyxDQUFDRixPQUFPQyxhQUFhLENBQUNlLElBQUlHLFdBQVcsS0FBS0gsSUFBSUcsV0FBVyxHQUFHLEdBQUc7WUFDaEUsTUFBTSxJQUFJakIsTUFBTTtRQUNsQjtRQUNBLE1BQU1rQixNQUFNLE1BQU1QLE9BQU9RLGFBQWEsQ0FBQ0MsUUFBUSxDQUFDUCxhQUFhSixFQUFFO1FBQy9ELE1BQU1ZLFdBQVcsT0FBT0gsSUFBSUcsUUFBUSxLQUFLLFdBQVdILElBQUlHLFFBQVEsR0FBR0gsSUFBSUcsUUFBUSxDQUFDWixFQUFFO1FBQ2xGLE1BQU1hLE9BQU9KLElBQUlLLEtBQUssQ0FBQ0MsSUFBSSxDQUFDQyxJQUFJLENBQUMsQ0FBQ3ZCLE9BQVM7Z0JBQUNVLE9BQU9jLEdBQUc7Z0JBQUVkLE9BQU9lLE9BQU87YUFBQyxDQUFDQyxRQUFRLENBQUMxQixLQUFLMkIsS0FBSyxDQUFDcEIsRUFBRTtRQUM5RixNQUFNcUIsT0FBT1osSUFBSUssS0FBSyxDQUFDQyxJQUFJLENBQUNDLElBQUksQ0FBQyxDQUFDdkIsT0FBU0EsS0FBSzJCLEtBQUssQ0FBQ3BCLEVBQUUsS0FBS0csT0FBT2tCLElBQUk7UUFDeEUsSUFBR1osSUFBSWEsUUFBUSxJQUFJVixhQUFhUixhQUFhbUIsVUFBVSxJQUFJLENBQUNWLFFBQVFKLElBQUlLLEtBQUssQ0FBQ1UsUUFBUSxFQUFFO1lBQ3RGLE1BQU0sSUFBSWpDLE1BQU07UUFDbEI7UUFDQSxNQUFNa0MsV0FBVyxNQUFNMUMsdUJBQXVCLENBQUMyQyxnQkFDN0N4QixPQUFPeUIsWUFBWSxDQUFDQyxJQUFJLENBQUM7Z0JBQUNoQjtnQkFBVWlCLE9BQU87Z0JBQUtDLGdCQUFnQko7WUFBYTtRQUUvRSxNQUFNSyxjQUFjTixTQUNqQk8sTUFBTSxDQUFDLENBQUN2QyxPQUFTQSxLQUFLSSxRQUFRLENBQUNvQyxzQkFBc0IsS0FBSzVCLElBQUk2QixLQUFLLEVBQ25FQyxHQUFHLENBQUMzQztRQUNQLElBQUdpQixJQUFJWixRQUFRLENBQUNvQyxzQkFBc0IsS0FBSzVCLElBQUk2QixLQUFLLEVBQUU7WUFDcEQsT0FBTztnQkFBQ0g7WUFBVztRQUNyQjtRQUNBLElBQUcxQixJQUFJK0IsSUFBSSxLQUFLLFdBQVcvQixJQUFJRyxXQUFXLEdBQUdDLElBQUk0QixVQUFVLEdBQUcsTUFBTTtZQUNsRSxPQUFPO2dCQUFDTjtZQUFXO1FBQ3JCO1FBQ0EsTUFBTU8sYUFBYSxPQUFPN0IsSUFBSThCLFFBQVEsS0FBSyxXQUFXOUIsSUFBSThCLFFBQVEsR0FBRzlCLElBQUk4QixRQUFRLEVBQUV2QztRQUNuRixNQUFNdUMsV0FBV0QsYUFBYSxNQUFNcEMsT0FBT3NDLHFCQUFxQixDQUFDN0IsUUFBUSxDQUFDMkIsY0FBYztRQUN4RixNQUFNRyxpQkFBaUJwQyxJQUFJK0IsSUFBSSxLQUFLLFlBQWEvQixJQUFJK0IsSUFBSSxLQUFLLFVBQVUvQixJQUFJcUMsT0FBTyxDQUFDQyxRQUFRLEtBQUs7UUFDakcsTUFBTUMsa0JBQWtCdkQsT0FBT2dCLElBQUlxQyxPQUFPLENBQUNFLGVBQWU7UUFDMUQsTUFBTUMsbUJBQW1CSixpQkFBaUJHLGtCQUFrQnZELE9BQU9vQixJQUFJWixRQUFRLENBQUNpRCwyQkFBMkI7UUFDM0csTUFBTTNELE1BQU0sQ0FBQzRELFlBQThCL0QsZ0JBQWdCLGVBQWVxQixJQUFJNkIsS0FBSyxFQUFFYTtRQUNyRixNQUFNbEQsV0FBVyxDQUFDbUQsY0FBYyxFQUFFLEdBQU0sQ0FBQTtnQkFDdENmLHdCQUF3QjVCLElBQUk2QixLQUFLO2dCQUNqQ1ksNkJBQTZCRSxjQUFjQyxPQUFPSixvQkFBb0I7Z0JBQ3RFSyx5QkFBeUJGO1lBQzNCLENBQUE7UUFDQSxJQUFJRyxTQUFTMUMsSUFBSTJDLE1BQU0sS0FBSztRQUM1QixJQUFHWCxrQkFBbUIsQ0FBQSxDQUFDcEQsT0FBT0MsYUFBYSxDQUFDc0Qsb0JBQW9CQSxtQkFBbUJ2QyxJQUFJRyxXQUFXLElBQzdGSCxJQUFJcUMsT0FBTyxDQUFDVyxjQUFjLEtBQUs1QyxJQUFJVCxFQUFFLEFBQUQsR0FBSTtZQUMzQyxNQUFNLElBQUlULE1BQU07UUFDbEI7UUFDQSxNQUFNK0QsZUFBZWIsa0JBQWtCRyxtQkFBbUJXLEtBQUtDLEdBQUc7UUFFbEUsSUFBR25ELElBQUkrQixJQUFJLEtBQUssWUFBWSxDQUFDZSxRQUFRO1lBQ25DLElBQUdiLFlBQVk7Z0JBQ2IsTUFBTWhDO2dCQUNOLE1BQU1KLE9BQU9zQyxxQkFBcUIsQ0FBQ2lCLE9BQU8sQ0FBQ25CLFlBQVksQ0FBQyxHQUFHO29CQUFDb0IsZ0JBQWdCdkUsSUFBSTtnQkFBVTtZQUM1RjtZQUNBLElBQUcsQ0FBQ21FLGNBQWM7Z0JBQ2hCLE1BQU1oRDtnQkFDTixNQUFNSixPQUFPUSxhQUFhLENBQUNpRCxNQUFNLENBQUNsRCxJQUFJVCxFQUFFLEVBQUU7b0JBQUM0RCxXQUFXaEIsa0JBQWtCO29CQUFNL0MsVUFBVTt3QkFBQyxHQUFHQSxVQUFVO3dCQUFFZ0UsNEJBQTRCWixPQUFPTDtvQkFBZ0I7b0JBQUdrQixvQkFBb0I7Z0JBQU0sR0FBRztvQkFBQ0osZ0JBQWdCdkUsSUFBSTtnQkFBUztnQkFDek4sT0FBTztvQkFBQzRDO2dCQUFXO1lBQ3JCO1lBQ0EsTUFBTXpCO1lBQ04sTUFBTUosT0FBT1EsYUFBYSxDQUFDaUQsTUFBTSxDQUFDbEQsSUFBSVQsRUFBRSxFQUFFO2dCQUFDSCxVQUFVO29CQUFDZ0UsNEJBQTRCWixPQUFPTDtnQkFBZ0I7WUFBQyxHQUFHO2dCQUFDYyxnQkFBZ0J2RSxJQUFJO1lBQWdCO1lBQ2xKLE1BQU1tQjtZQUNOLE1BQU1KLE9BQU9RLGFBQWEsQ0FBQ3FELE1BQU0sQ0FBQ3RELElBQUlULEVBQUUsRUFBRTtnQkFBQ2dFLGFBQWE7Z0JBQU9DLFNBQVM7WUFBSyxHQUFHO2dCQUFDUCxnQkFBZ0J2RSxJQUFJO1lBQVM7WUFDOUdnRSxTQUFTO1FBQ1g7UUFDQSxJQUFHLENBQUM7WUFBQztZQUFVO1lBQVE7U0FBUSxDQUFDaEMsUUFBUSxDQUFDZCxJQUFJK0IsSUFBSSxHQUFHO1lBQ2xELE1BQU0sSUFBSTdDLE1BQU07UUFDbEI7UUFDQSxNQUFNMkUsY0FBY3JELEtBQUtPLEtBQUssQ0FBQ3BCLEVBQUUsS0FBS0csT0FBT2MsR0FBRyxHQUFHLFFBQVE7UUFDM0QsTUFBTWtELE9BQU85RCxJQUFJK0IsSUFBSSxLQUFLLFNBQVNuRCxjQUFjb0IsSUFBSXFDLE9BQU8sQ0FBQ3lCLElBQUksSUFBSUQ7UUFDckUsTUFBTUUsUUFBUS9ELElBQUkrQixJQUFJLEtBQUssVUFBVWhELGFBQWFpQixJQUFJcUMsT0FBTyxDQUFDMkIsVUFBVSxJQUFJaEQsTUFBTWlELFlBQVk7UUFDOUYsSUFBSXRCLGNBQThCO1FBQ2xDLElBQUczQyxJQUFJK0IsSUFBSSxLQUFLLFVBQVUvQixJQUFJcUMsT0FBTyxDQUFDQyxRQUFRLEtBQUssZ0JBQWdCLENBQUNXLGNBQWM7WUFDaEZOLGNBQWNtQjtRQUNoQixPQUFPLElBQUcsQ0FBQ2IsZ0JBQWdCN0MsSUFBSVosUUFBUSxDQUFDcUQsdUJBQXVCLEtBQUssYUFBYWdCLGdCQUFnQixXQUFXO1lBQzFHbEIsY0FBYztRQUNoQjtRQUNBLElBQUdBLGVBQWdCLENBQUEsQ0FBQzNELE9BQU9DLGFBQWEsQ0FBQ3VELHFCQUFxQkEsb0JBQW9CVSxLQUFLQyxHQUFHLEVBQUMsR0FBSTtZQUM3RixNQUFNLElBQUlqRSxNQUFNO1FBQ2xCO1FBQ0EsTUFBTWdGLGFBQWEsQ0FBQ0MsWUFBdUI7Z0JBQ3pDO29CQUFDcEQsT0FBT2pCLE1BQU0sQ0FBQ3FFLFVBQVU7b0JBQUVGLFVBQVU7Z0JBQUM7bUJBQ2xDRixRQUFRO29CQUFDO3dCQUFDaEQsT0FBT2pCLE9BQU9rQixJQUFJO3dCQUFFaUQsVUFBVUY7b0JBQUs7aUJBQUUsR0FBRyxFQUFFO2FBQ3pEO1FBQ0QsTUFBTUssZ0JBQWdCO1lBQ3BCLE1BQU1uRTtZQUNOLE1BQU1OLEtBQ0pzQyxjQUNGLEFBQ0UsQ0FBQSxNQUFNcEMsT0FBT3NDLHFCQUFxQixDQUFDa0MsTUFBTSxDQUN2QztnQkFBQ0MsbUJBQW1CbEUsSUFBSVQsRUFBRTtZQUFBLEdBQzFCO2dCQUFDMEQsZ0JBQWdCdkUsSUFBSTtZQUFrQixFQUN6QyxFQUNBYSxFQUFFO1lBQ0osTUFBTU07WUFDTixNQUFNSixPQUFPc0MscUJBQXFCLENBQUNtQixNQUFNLENBQ3ZDM0QsSUFDQTtnQkFDRTRFLGNBQWM7Z0JBQ2QvRSxVQUFVQSxTQUFTbUQ7Z0JBQ25CNkIsUUFBUTtvQkFDTjt3QkFDRUMsVUFBVWpDLG1CQUFtQjt3QkFDN0IvQixPQUFPeUQsV0FBV0w7d0JBQ2xCSixvQkFBb0I7d0JBQ3BCekIsWUFBWXhCLEtBQUtrRSxvQkFBb0I7b0JBQ3ZDO29CQUNBO3dCQUNFQyxVQUFVOzRCQUFDQyxVQUFVOzRCQUFTQyxnQkFBZ0I7d0JBQUM7d0JBQy9DcEUsT0FBT3lELFdBQVd2Qjt3QkFDbEJjLG9CQUFvQjt3QkFDcEJ6QixZQUFZUSxtQkFBbUI7b0JBQ2pDO2lCQUNEO2dCQUNEaUIsb0JBQW9CO1lBQ3RCLEdBQ0E7Z0JBQUNKLGdCQUFnQnZFLElBQUk7WUFBa0I7UUFFM0M7UUFDQSxNQUFNZ0csY0FBYztZQUNsQixNQUFNN0U7WUFDTixNQUFNSixPQUFPUSxhQUFhLENBQUNpRCxNQUFNLENBQy9CbEQsSUFBSVQsRUFBRSxFQUNOO2dCQUFDSCxVQUFVQSxTQUFTbUQsZUFBZTtZQUFHLEdBQ3RDO2dCQUFDVSxnQkFBZ0J2RSxJQUFJO1lBQVM7UUFFbEM7UUFDQSxJQUFHb0QsVUFBVTFDLFNBQVNvQywyQkFBMkI1QixJQUFJNkIsS0FBSyxFQUFFO1lBQzFELE1BQU1pRDtZQUNOLE9BQU87Z0JBQUNwRDtZQUFXO1FBQ3JCO1FBQ0EsSUFBRzFCLElBQUkrQixJQUFJLEtBQUssVUFBVS9CLElBQUlxQyxPQUFPLENBQUNDLFFBQVEsS0FBSyxnQkFBZ0IsQ0FBQ1csY0FBYztZQUNoRixNQUFNbUI7WUFDTixNQUFNVTtZQUNOLE9BQU87Z0JBQUNwRDtZQUFXO1FBQ3JCO1FBRUEsTUFBTXFELGNBQWN0RyxvQkFBb0JvRixhQUFhbUIsU0FBUyxHQUFJakIsUUFBUTtRQUMxRSxJQUFJa0IsWUFBWSxDQUFDRjtRQUNqQixJQUFHL0UsSUFBSStCLElBQUksS0FBSyxVQUFVO1lBQ3hCa0QsWUFBWWpGLElBQUkrQixJQUFJLEtBQUssVUFDckIsQUFBQ2dDLENBQUFBLFFBQVFoRixhQUFhaUIsSUFBSXFDLE9BQU8sQ0FBQzZDLGtCQUFrQixDQUFBLElBQUssTUFDekR6RyxvQkFBb0JxRixNQUFNa0IsU0FBUyxHQUNyQ3ZHLG9CQUFvQkcsY0FBY29CLElBQUlxQyxPQUFPLENBQUM4QyxZQUFZLEdBQUdILFNBQVM7UUFDMUU7UUFDQSxJQUNFaEYsSUFBSStCLElBQUksS0FBSyxVQUNkLENBQUEsQUFBQyxDQUFDa0IsZ0JBQWlCakQsQ0FBQUEsSUFBSXFDLE9BQU8sQ0FBQ0MsUUFBUSxLQUFLLGVBQWUyQyxhQUFhLENBQUEsS0FBUWhDLGdCQUFnQmdDLGFBQWEsS0FBTTdFLElBQUkyQyxNQUFNLEtBQUssUUFBTyxHQUN4STtZQUNBLE1BQU0sSUFBSTdELE1BQU07UUFDbEI7UUFDQSxJQUFHLENBQUNGLE9BQU9DLGFBQWEsQ0FBQ2dHLFlBQVk7WUFDbkMsTUFBTSxJQUFJL0YsTUFBTTtRQUNsQjtRQUNBLE1BQU1rRyxXQUFXLE1BQU0xRyx1QkFBdUIsQ0FBQzJDLGdCQUM3Q3hCLE9BQU91RixRQUFRLENBQUM3RCxJQUFJLENBQUM7Z0JBQUNoQjtnQkFBVWlCLE9BQU87Z0JBQUtDLGdCQUFnQko7Z0JBQWV0QixjQUFjSyxJQUFJVCxFQUFFO1lBQUE7UUFFakcsSUFBR3lGLFNBQVNDLElBQUksQ0FBQyxDQUFDQyxVQUFZQSxRQUFROUYsUUFBUSxFQUFFb0MsMkJBQTJCNUIsSUFBSTZCLEtBQUssSUFDOUUsQ0FBQSxDQUFDN0MsT0FBT0MsYUFBYSxDQUFDRCxPQUFPc0csUUFBUTlGLFFBQVEsQ0FBQ0MsV0FBVyxNQUN4RCxDQUFDVCxPQUFPQyxhQUFhLENBQUNELE9BQU9zRyxRQUFROUYsUUFBUSxDQUFDRCxTQUFTLE1BQ3ZEUCxPQUFPc0csUUFBUTlGLFFBQVEsQ0FBQ0QsU0FBUyxLQUFLUCxPQUFPc0csUUFBUTlGLFFBQVEsQ0FBQ0MsV0FBVyxDQUFBLElBQUs7WUFDbkYsTUFBTSxJQUFJUCxNQUFNO1FBQ2xCO1FBQ0EsTUFBTXFHLFVBQVUsSUFBSUM7UUFDcEIsTUFBTUMsZUFBZSxJQUFJRDtRQUN6QixLQUFJLE1BQU1GLFdBQVdGLFNBQVU7WUFDN0IsSUFBR0UsUUFBUUksS0FBSyxDQUFDdkUsUUFBUSxFQUFFO2dCQUN6QixNQUFNLElBQUlqQyxNQUFNO1lBQ2xCO1lBQ0EsTUFBTXlHLGVBQWUsSUFBSUg7WUFDekIsS0FBSSxNQUFNSSxRQUFRTixRQUFRSSxLQUFLLENBQUNoRixJQUFJLENBQUU7Z0JBQ3BDLE1BQU1LLFFBQVE2RSxLQUFLQyxPQUFPLEVBQUVDLGVBQWUvRTtnQkFDM0MsTUFBTWdGLFVBQVUsT0FBT2hGLFVBQVUsV0FBV0EsUUFBUUEsT0FBT3BCO2dCQUMzRCxJQUNFO29CQUFDRyxPQUFPYyxHQUFHO29CQUFFZCxPQUFPZSxPQUFPO29CQUFFZixPQUFPa0IsSUFBSTtpQkFBQyxDQUFDRixRQUFRLENBQUNpRixXQUFXLE9BQ2hFLENBQUNILEtBQUtJLE1BQU0sRUFBRUMsMkJBQTJCQyxXQUN2QztvQkFDQSxNQUFNQyxTQUFTO3dCQUFDQyxLQUFLUixLQUFLTyxNQUFNLENBQUNDLEdBQUcsR0FBRzt3QkFBTUMsT0FBT1QsS0FBS08sTUFBTSxDQUFDRSxLQUFLLEdBQUc7b0JBQUk7b0JBQzVFLE1BQU1DLFlBQVksR0FBR0gsT0FBT0UsS0FBSyxDQUFDLENBQUMsRUFBRUYsT0FBT0MsR0FBRyxFQUFFO29CQUNqRCxJQUFHTCxZQUFZakcsT0FBT2tCLElBQUksRUFBRTt3QkFDMUJ1RSxRQUFRZ0IsR0FBRyxDQUFDRCxXQUFXSDtvQkFDekI7b0JBQ0EsTUFBTUssT0FBT1QsWUFBWWpHLE9BQU9rQixJQUFJLEdBQUcsTUFBTWpDLGFBQWE2RyxLQUFLM0IsUUFBUSxJQUFJeEYsb0JBQW9Cc0gsWUFBWWpHLE9BQU9jLEdBQUcsR0FBRyxRQUFRLFdBQVdvRSxTQUFTO29CQUNwSlcsYUFBYVksR0FBRyxDQUFDRCxXQUFXLEFBQUNYLENBQUFBLGFBQWFjLEdBQUcsQ0FBQ0gsY0FBYyxDQUFBLElBQUtFO2dCQUNuRTtZQUNGO1lBQ0EsS0FBSSxNQUFNLENBQUNGLFdBQVdFLEtBQUssSUFBSWIsYUFBYztnQkFDM0MsSUFBR0YsYUFBYWlCLEdBQUcsQ0FBQ0osY0FBY2IsYUFBYWdCLEdBQUcsQ0FBQ0gsZUFBZUUsTUFBTTtvQkFDdEUsTUFBTSxJQUFJdEgsTUFBTTtnQkFDbEI7Z0JBQ0F1RyxhQUFhYyxHQUFHLENBQUNELFdBQVdFO1lBQzlCO1FBQ0Y7UUFDQSw0R0FBNEc7UUFDNUcsTUFBTUcsZUFBZW5HLEtBQUtrRSxvQkFBb0IsR0FBRztRQUNqRCxNQUFNa0MsZ0JBQWdCO1lBQ3BCUixLQUFLUyxLQUFLQyxHQUFHLENBQUN0RyxLQUFLdUcsa0JBQWtCLEdBQUcsU0FBUzttQkFBSXhCLFFBQVF5QixNQUFNO2FBQUcsQ0FDbkVyRixNQUFNLENBQUMsQ0FBQ3dFLFNBQVdBLE9BQU9FLEtBQUssS0FBS00sY0FBYzdFLEdBQUcsQ0FBQyxDQUFDcUUsU0FBV0EsT0FBT0MsR0FBRztZQUMvRUMsT0FBT007UUFDVDtRQUNBcEIsUUFBUWdCLEdBQUcsQ0FBQyxHQUFHSyxjQUFjUCxLQUFLLENBQUMsQ0FBQyxFQUFFTyxjQUFjUixHQUFHLEVBQUUsRUFBRVE7UUFDM0QsTUFBTXpHLGNBQWMwRyxLQUFLSSxLQUFLLENBQUMsQUFBQzdFLENBQUFBLGlCQUFpQkcsa0JBQWtCdkMsSUFBSUcsV0FBVyxBQUFELElBQUssUUFBUTtRQUM5RixNQUFNK0csbUJBQW1CbEksT0FBT29CLElBQUlaLFFBQVEsQ0FBQ2dFLDBCQUEwQjtRQUN2RSxNQUFNMkQsZ0JBQWdCckUsVUFBVTlELE9BQU9DLGFBQWEsQ0FBQ2lJLHFCQUFxQkEsbUJBQW1CLEtBQUtsSCxJQUFJK0IsSUFBSSxLQUFLLFdBQzNHOEUsS0FBS08sR0FBRyxDQUFDUixjQUFjUixHQUFHLEVBQUVjLG9CQUFvQk4sY0FBY1IsR0FBRztRQUNyRSxNQUFNaUIsYUFBYTtlQUFJOUIsUUFBUXlCLE1BQU07U0FBRyxDQUNyQ3JGLE1BQU0sQ0FBQyxDQUFDd0UsU0FBV0EsT0FBT0MsR0FBRyxHQUFHakcsZUFBZWdHLE9BQU9FLEtBQUssSUFBSU8sY0FBY1AsS0FBSyxFQUNsRmlCLElBQUksQ0FBQyxDQUFDQyxHQUFHQyxJQUFNRCxFQUFFbEIsS0FBSyxHQUFHbUIsRUFBRW5CLEtBQUs7UUFDbkMsSUFBSW9CLGlCQUFpQnRIO1FBQ3JCLEtBQUksTUFBTWdHLFVBQVVrQixXQUFZO1lBQzlCLElBQ0UsQ0FBQ3JJLE9BQU9DLGFBQWEsQ0FBQ2tILE9BQU9FLEtBQUssS0FDcEMsQ0FBQ3JILE9BQU9DLGFBQWEsQ0FBQ2tILE9BQU9DLEdBQUcsS0FDaENELE9BQU9DLEdBQUcsSUFBSUQsT0FBT0UsS0FBSyxJQUMxQkYsT0FBT0UsS0FBSyxHQUFHb0IsZ0JBQ2I7Z0JBQ0EsTUFBTSxJQUFJdkksTUFBTTtZQUNsQjtZQUNBdUksaUJBQWlCWixLQUFLQyxHQUFHLENBQUNXLGdCQUFnQnRCLE9BQU9DLEdBQUc7UUFDdEQ7UUFDQSxJQUFHcUIsaUJBQWlCTixlQUFlO1lBQ2pDLE1BQU0sSUFBSWpJLE1BQU07UUFDbEI7UUFDQSw2R0FBNkc7UUFDN0csS0FBSSxNQUFNaUgsVUFBVWtCLFdBQVk7WUFDOUIsTUFBTUssYUFBYTFILElBQUkrQixJQUFJLEtBQUssV0FBVyxDQUFFMEQsQ0FBQUEsYUFBYWdCLEdBQUcsQ0FBQyxHQUFHTixPQUFPRSxLQUFLLENBQUMsQ0FBQyxFQUFFRixPQUFPQyxHQUFHLEVBQUUsS0FBSyxDQUFDbkIsU0FBUSxJQUFLQTtZQUNoSCxNQUFNNUYsY0FBY3dILEtBQUtjLEtBQUssQ0FDNUIsQUFBQ0QsYUFBYWIsS0FBS0MsR0FBRyxDQUFDLEdBQUdELEtBQUtPLEdBQUcsQ0FBQ2pCLE9BQU9DLEdBQUcsRUFBRWUsaUJBQWlCTixLQUFLQyxHQUFHLENBQUMzRyxhQUFhZ0csT0FBT0UsS0FBSyxLQUMvRkYsQ0FBQUEsT0FBT0MsR0FBRyxHQUFHRCxPQUFPRSxLQUFLLEFBQUQ7WUFFN0IsSUFBRyxDQUFDaEgsYUFBYTtnQkFDZjtZQUNGO1lBQ0EsSUFBRyxDQUFDTCxPQUFPQyxhQUFhLENBQUNJLGNBQWM7Z0JBQ3JDLE1BQU0sSUFBSUgsTUFBTTtZQUNsQjtZQUNBLE1BQU0wSSxVQUFVeEcsU0FBU1QsSUFBSSxDQUFDLENBQUN2QixPQUFTQSxLQUFLSSxRQUFRLENBQUNvQyxzQkFBc0IsS0FBSzVCLElBQUk2QixLQUFLLElBQ3JGN0MsT0FBT0ksS0FBS0ksUUFBUSxDQUFDQyxXQUFXLE1BQU0wRyxPQUFPRSxLQUFLLElBQUlySCxPQUFPSSxLQUFLSSxRQUFRLENBQUNELFNBQVMsTUFBTTRHLE9BQU9DLEdBQUc7WUFDekcsTUFBTXlCLFlBQVksT0FBT0QsU0FBU3RDLFlBQVksV0FBV3NDLFFBQVF0QyxPQUFPLEdBQUdzQyxTQUFTdEMsU0FBUzNGO1lBQzdGLElBQUltSSxhQUFhRCxZQUFZLE1BQU1oSSxPQUFPdUYsUUFBUSxDQUFDOUUsUUFBUSxDQUFDdUgsYUFBYXpDLFNBQVN6RSxJQUFJLENBQUMsQ0FBQzJFLFVBQ3RGQSxRQUFROUYsUUFBUSxFQUFFb0MsMkJBQTJCNUIsSUFBSTZCLEtBQUssSUFDbkQ3QyxPQUFPc0csUUFBUTlGLFFBQVEsQ0FBQ0MsV0FBVyxNQUFNMEcsT0FBT0UsS0FBSyxJQUNyRHJILE9BQU9zRyxRQUFROUYsUUFBUSxDQUFDRCxTQUFTLE1BQU00RyxPQUFPQyxHQUFHO1lBQ3RELElBQUd3QixXQUFZLENBQUEsQ0FBQ0MsYUFBYUQsUUFBUXRJLE1BQU0sS0FBS0QsV0FBVSxHQUFJO2dCQUM1RCxNQUFNLElBQUlILE1BQU07WUFDbEI7WUFDQSxJQUFHLENBQUM0SSxZQUFZO2dCQUNkLE1BQU03SDtnQkFDTjZILGFBQWEsTUFBTWpJLE9BQU91RixRQUFRLENBQUNmLE1BQU0sQ0FBQztvQkFBQzBELGNBQWM7b0JBQU94SDtvQkFDOURmLFVBQVU7d0JBQ1JvQyx3QkFBd0I1QixJQUFJNkIsS0FBSzt3QkFDakN0QyxXQUFXcUQsT0FBT3VELE9BQU9DLEdBQUc7d0JBQzVCM0csYUFBYW1ELE9BQU91RCxPQUFPRSxLQUFLO3dCQUNoQ3JELGdCQUFnQjVDLElBQUlULEVBQUU7b0JBQ3hCO29CQUNBcUksZ0NBQWdDO29CQUFXLEdBQUlsRixTQUFTLENBQUMsSUFBSTt3QkFBQy9DLGNBQWNLLElBQUlULEVBQUU7b0JBQUEsQ0FBQztnQkFDckYsR0FBRztvQkFBQzBELGdCQUFnQnZFLElBQUksQ0FBQyxXQUFXLEVBQUVxSCxPQUFPRSxLQUFLLENBQUMsQ0FBQyxFQUFFRixPQUFPQyxHQUFHLEVBQUU7Z0JBQUM7WUFDckU7WUFDQSxJQUFHLENBQUN3QixTQUFTO2dCQUNYLElBQUdFLFdBQVcvRSxNQUFNLEtBQUssU0FBUztvQkFDaEMsTUFBTSxJQUFJN0QsTUFBTTtnQkFDbEI7Z0JBQ0EsTUFBTWU7Z0JBQ04sTUFBTWIsT0FBTyxNQUFNUyxPQUFPeUIsWUFBWSxDQUFDK0MsTUFBTSxDQUMzQztvQkFDRS9FLFFBQVFEO29CQUNSNEksVUFBVTtvQkFDVjFIO29CQUNBMkgsYUFBYSxDQUFDLFFBQVEsRUFBRWxJLElBQUkrQixJQUFJLEtBQUssVUFBVSxrQkFBa0IsT0FBTyxZQUFZLEVBQUUvQixJQUFJRSxZQUFZLENBQUMsQ0FBQyxDQUFDO29CQUN6R2lJLGNBQWM7b0JBQ2Q3QyxTQUFTd0MsV0FBV25JLEVBQUU7b0JBQ3RCSCxVQUFVO3dCQUNSb0Msd0JBQXdCNUIsSUFBSTZCLEtBQUs7d0JBQ2pDdEMsV0FBV3FELE9BQU91RCxPQUFPQyxHQUFHO3dCQUM1QjNHLGFBQWFtRCxPQUFPdUQsT0FBT0UsS0FBSzt3QkFDaENuRyxjQUFjRixJQUFJRSxZQUFZO29CQUNoQztvQkFDQWlHLFFBQVE7d0JBQUNDLEtBQUtELE9BQU9DLEdBQUcsR0FBRzt3QkFBTUMsT0FBT1EsS0FBS0MsR0FBRyxDQUFDM0csYUFBYWdHLE9BQU9FLEtBQUssSUFBSTtvQkFBSTtnQkFDcEYsR0FDQTtvQkFBQ2hELGdCQUFnQnZFLElBQUksQ0FBQyxXQUFXLEVBQUVxSCxPQUFPRSxLQUFLLENBQUMsQ0FBQyxFQUFFRixPQUFPQyxHQUFHLEVBQUU7Z0JBQUM7Z0JBRWxFMUUsWUFBWTBHLElBQUksQ0FBQ2pKLGtCQUFrQkM7WUFDckM7WUFDQSxJQUFHMEksWUFBWS9FLFdBQVcsU0FBUztnQkFDakMsTUFBTTlDO2dCQUNOLE1BQU1KLE9BQU91RixRQUFRLENBQUNpRCxlQUFlLENBQ25DUCxXQUFXbkksRUFBRSxFQUNiO29CQUFDb0ksY0FBYztnQkFBSSxHQUNuQjtvQkFBQzFFLGdCQUFnQnZFLElBQUksQ0FBQyxvQkFBb0IsRUFBRXFILE9BQU9FLEtBQUssQ0FBQyxDQUFDLEVBQUVGLE9BQU9DLEdBQUcsRUFBRTtnQkFBQztZQUU3RTtRQUNGO1FBQ0EsSUFBR3BHLElBQUkrQixJQUFJLEtBQUssVUFBVWtCLGdCQUFnQmhCLFlBQVk7WUFDcEQsTUFBTWhDO1lBQ04sTUFBTUosT0FBT3NDLHFCQUFxQixDQUFDaUIsT0FBTyxDQUFDbkIsWUFBWSxDQUFDLEdBQUc7Z0JBQUNvQixnQkFBZ0J2RSxJQUFJO1lBQVU7UUFDNUY7UUFDQSxJQUFHZ0UsUUFBUTtZQUNULE1BQU1nQztRQUNSLE9BQU8sSUFBR25DLGFBQWE7WUFDckIsTUFBTXlCO1lBQ04sTUFBTVU7UUFDUixPQUFPO1lBQ0wsTUFBTXdELFlBQVl2RSxRQUFRO2dCQUFDO29CQUFDaEQsT0FBT2pCLE9BQU9rQixJQUFJO29CQUFFaUQsVUFBVUY7Z0JBQUs7YUFBRSxHQUFHLEVBQUU7WUFDdEUsTUFBTXRELFFBQWdEO2dCQUNwRDtvQkFBQ2QsSUFBSWEsS0FBS2IsRUFBRTtvQkFBRW9CLE9BQU9qQixNQUFNLENBQUNnRSxLQUFLO29CQUFFRyxVQUFVO2dCQUFDO21CQUMxQ2pELE9BQ0E7b0JBQUM7d0JBQUNyQixJQUFJcUIsS0FBS3JCLEVBQUU7d0JBQUVvQixPQUFPakIsT0FBT2tCLElBQUk7d0JBQUVpRCxVQUFVRjtvQkFBSztpQkFBRSxHQUNwRHVFO2FBQ0w7WUFDRCxNQUFNckk7WUFDTixNQUFNSixPQUFPUSxhQUFhLENBQUNpRCxNQUFNLENBQy9CbEQsSUFBSVQsRUFBRSxFQUNOO2dCQUFDYztnQkFBT2pCLFVBQVVBO2dCQUFZaUUsb0JBQW9CO1lBQU0sR0FDeEQ7Z0JBQUNKLGdCQUFnQnZFLElBQUk7WUFBUTtRQUVqQztRQUNBLE9BQU87WUFBQzRDO1FBQVc7SUFDckIsRUFBRSJ9
|
|
@@ -9,4 +9,4 @@ export * from './reconciliation.js';
|
|
|
9
9
|
export * from './signup.js';
|
|
10
10
|
export * from './verification.js';
|
|
11
11
|
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3Ly5jb2RleC93b3JrdHJlZXMvdmF1bHQtczMtcmVsZWFzZS9yZWFrdG9yL3BhY2thZ2VzL3JlYWt0b3Ivc3JjL29yZ2FuaXphdGlvbnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wbGFucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYXV0aG9yaXphdGlvbi5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2JpbGxpbmcuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9iaWxsaW5nUHJvdmlkZXIuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9tZW1iZXJzaGlwLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vbWVtYmVyRGlyZWN0b3J5LmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjb25jaWxpYXRpb24uanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zaWdudXAuanMnO1xuZXhwb3J0ICogZnJvbSAnLi92ZXJpZmljYXRpb24uanMnO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYTtBQUMzQixjQUFjLGFBQWE7QUFDM0IsY0FBYyxxQkFBcUI7QUFDbkMsY0FBYyxlQUFlO0FBQzdCLGNBQWMsdUJBQXVCO0FBQ3JDLGNBQWMsa0JBQWtCO0FBQ2hDLGNBQWMsdUJBQXVCO0FBQ3JDLGNBQWMsc0JBQXNCO0FBQ3BDLGNBQWMsY0FBYztBQUM1QixjQUFjLG9CQUFvQiJ9
|
|
@@ -57,4 +57,4 @@ export const sendOrganizationMail = async (ciphertext)=>{
|
|
|
57
57
|
});
|
|
58
58
|
};
|
|
59
59
|
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3Ly5jb2RleC93b3JrdHJlZXMvdmF1bHQtczMtcmVsZWFzZS9yZWFrdG9yL3BhY2thZ2VzL3JlYWt0b3Ivc3JjL29yZ2FuaXphdGlvbnMvbWFpbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUNpcGhlcml2LCBjcmVhdGVEZWNpcGhlcml2LCByYW5kb21CeXRlc30gZnJvbSAnbm9kZTpjcnlwdG8nO1xuXG5pbXBvcnQge3Nlc1NlbmR9IGZyb20gJy4uL2FjdGlvbnMvZW1haWwuanMnO1xuXG50eXBlIE9yZ2FuaXphdGlvbk1haWwgPSB7ZW1haWw6IHN0cmluZzsgcmVnaXN0cmF0aW9uSWQ6IHN0cmluZzsgdG9rZW46IHN0cmluZ307XG5leHBvcnQgY29uc3Qgb3JnYW5pemF0aW9uTWFpbEtleSA9ICgpOiBCdWZmZXIgPT4ge1xuICBjb25zdCBrZXkgPSBwcm9jZXNzLmVudi5PUkdBTklaQVRJT05fTUFJTF9LRVkgfHwgJyc7XG4gIGlmKCEvXlthLWYwLTldezY0fSQvaS50ZXN0KGtleSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ29yZ2FuaXphdGlvbl9tYWlsX25vdF9jb25maWd1cmVkJyk7XG4gIH1cbiAgcmV0dXJuIEJ1ZmZlci5mcm9tKGtleSwgJ2hleCcpO1xufTtcbmV4cG9ydCBjb25zdCBlbmNvZGVPcmdhbml6YXRpb25NYWlsID0gKHBheWxvYWQ6IE9yZ2FuaXphdGlvbk1haWwpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBpdiA9IHJhbmRvbUJ5dGVzKDEyKTtcbiAgY29uc3QgY2lwaGVyID0gY3JlYXRlQ2lwaGVyaXYoJ2Flcy0yNTYtZ2NtJywgb3JnYW5pemF0aW9uTWFpbEtleSgpLCBpdik7XG4gIGNvbnN0IGNpcGhlcnRleHQgPSBCdWZmZXIuY29uY2F0KFtjaXBoZXIudXBkYXRlKEpTT04uc3RyaW5naWZ5KHBheWxvYWQpLCAndXRmOCcpLCBjaXBoZXIuZmluYWwoKV0pO1xuICByZXR1cm4gQnVmZmVyLmNvbmNhdChbaXYsIGNpcGhlci5nZXRBdXRoVGFnKCksIGNpcGhlcnRleHRdKS50b1N0cmluZygnYmFzZTY0dXJsJyk7XG59O1xuZXhwb3J0IGNvbnN0IGRlY29kZU9yZ2FuaXphdGlvbk1haWwgPSAoY2lwaGVydGV4dDogc3RyaW5nKTogT3JnYW5pemF0aW9uTWFpbCA9PiB7XG4gIGNvbnN0IGRhdGEgPSBCdWZmZXIuZnJvbShjaXBoZXJ0ZXh0LCAnYmFzZTY0dXJsJyk7XG4gIGNvbnN0IGRlY2lwaGVyID0gY3JlYXRlRGVjaXBoZXJpdignYWVzLTI1Ni1nY20nLCBvcmdhbml6YXRpb25NYWlsS2V5KCksIGRhdGEuc3ViYXJyYXkoMCwgMTIpKTtcbiAgZGVjaXBoZXIuc2V0QXV0aFRhZyhkYXRhLnN1YmFycmF5KDEyLCAyOCkpO1xuICByZXR1cm4gSlNPTi5wYXJzZShcbiAgICBCdWZmZXIuY29uY2F0KFtkZWNpcGhlci51cGRhdGUoZGF0YS5zdWJhcnJheSgyOCkpLCBkZWNpcGhlci5maW5hbCgpXSkudG9TdHJpbmcoJ3V0ZjgnKVxuICApIGFzIE9yZ2FuaXphdGlvbk1haWw7XG59O1xuZXhwb3J0IGNvbnN0IHNlbmRPcmdhbml6YXRpb25NYWlsID0gYXN5bmMgKGNpcGhlcnRleHQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBwYXlsb2FkID0gZGVjb2RlT3JnYW5pemF0aW9uTWFpbChjaXBoZXJ0ZXh0KTtcbiAgY29uc3Qgb3JpZ2luID0gcHJvY2Vzcy5lbnYuT1JHQU5JWkFUSU9OX1NJVEVfT1JJR0lOIHx8ICcnO1xuICBjb25zdCBmcm9tID0gcHJvY2Vzcy5lbnYuT1JHQU5JWkFUSU9OX0VNQUlMX0ZST00gfHwgJyc7XG4gIGlmKCEvXmh0dHBzOlxcL1xcL1teLz8jXSskLy50ZXN0KG9yaWdpbikgfHwgIWZyb20uaW5jbHVkZXMoJ0AnKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignb3JnYW5pemF0aW9uX21haWxfbm90X2NvbmZpZ3VyZWQnKTtcbiAgfVxuICBjb25zdCB1cmwgPSBgJHtvcmlnaW59L3ZlcmlmeS1lbWFpbCNyZWdpc3RyYXRpb249JHtlbmNvZGVVUklDb21wb25lbnQocGF5bG9hZC5yZWdpc3RyYXRpb25JZCl9JnRva2VuPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHBheWxvYWQudG9rZW4pfWA7XG4gIGF3YWl0IHNlc1NlbmQoe1xuICAgIERlc3RpbmF0aW9uOiB7VG9BZGRyZXNzZXM6IFtwYXlsb2FkLmVtYWlsXX0sXG4gICAgTWVzc2FnZToge1xuICAgICAgQm9keToge1RleHQ6IHtEYXRhOiBgVmVyaWZ5IHlvdXIgUmVha3RvciBhY2NvdW50OiAke3VybH1cXG5UaGlzIGxpbmsgZXhwaXJlcyBpbiAyNCBob3Vycy5gfX0sXG4gICAgICBTdWJqZWN0OiB7RGF0YTogJ1ZlcmlmeSB5b3VyIFJlYWt0b3IgYWNjb3VudCd9XG4gICAgfSxcbiAgICBTb3VyY2U6IGZyb21cbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbImNyZWF0ZUNpcGhlcml2IiwiY3JlYXRlRGVjaXBoZXJpdiIsInJhbmRvbUJ5dGVzIiwic2VzU2VuZCIsIm9yZ2FuaXphdGlvbk1haWxLZXkiLCJrZXkiLCJwcm9jZXNzIiwiZW52IiwiT1JHQU5JWkFUSU9OX01BSUxfS0VZIiwidGVzdCIsIkVycm9yIiwiQnVmZmVyIiwiZnJvbSIsImVuY29kZU9yZ2FuaXphdGlvbk1haWwiLCJwYXlsb2FkIiwiaXYiLCJjaXBoZXIiLCJjaXBoZXJ0ZXh0IiwiY29uY2F0IiwidXBkYXRlIiwiSlNPTiIsInN0cmluZ2lmeSIsImZpbmFsIiwiZ2V0QXV0aFRhZyIsInRvU3RyaW5nIiwiZGVjb2RlT3JnYW5pemF0aW9uTWFpbCIsImRhdGEiLCJkZWNpcGhlciIsInN1YmFycmF5Iiwic2V0QXV0aFRhZyIsInBhcnNlIiwic2VuZE9yZ2FuaXphdGlvbk1haWwiLCJvcmlnaW4iLCJPUkdBTklaQVRJT05fU0lURV9PUklHSU4iLCJPUkdBTklaQVRJT05fRU1BSUxfRlJPTSIsImluY2x1ZGVzIiwidXJsIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwicmVnaXN0cmF0aW9uSWQiLCJ0b2tlbiIsIkRlc3RpbmF0aW9uIiwiVG9BZGRyZXNzZXMiLCJlbWFpbCIsIk1lc3NhZ2UiLCJCb2R5IiwiVGV4dCIsIkRhdGEiLCJTdWJqZWN0IiwiU291cmNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFRQSxjQUFjLEVBQUVDLGdCQUFnQixFQUFFQyxXQUFXLFFBQU8sY0FBYztBQUUxRSxTQUFRQyxPQUFPLFFBQU8sc0JBQXNCO0FBRzVDLE9BQU8sTUFBTUMsc0JBQXNCO0lBQ2pDLE1BQU1DLE1BQU1DLFFBQVFDLEdBQUcsQ0FBQ0MscUJBQXFCLElBQUk7SUFDakQsSUFBRyxDQUFDLGtCQUFrQkMsSUFBSSxDQUFDSixNQUFNO1FBQy9CLE1BQU0sSUFBSUssTUFBTTtJQUNsQjtJQUNBLE9BQU9DLE9BQU9DLElBQUksQ0FBQ1AsS0FBSztBQUMxQixFQUFFO0FBQ0YsT0FBTyxNQUFNUSx5QkFBeUIsQ0FBQ0M7SUFDckMsTUFBTUMsS0FBS2IsWUFBWTtJQUN2QixNQUFNYyxTQUFTaEIsZUFBZSxlQUFlSSx1QkFBdUJXO0lBQ3BFLE1BQU1FLGFBQWFOLE9BQU9PLE1BQU0sQ0FBQztRQUFDRixPQUFPRyxNQUFNLENBQUNDLEtBQUtDLFNBQVMsQ0FBQ1AsVUFBVTtRQUFTRSxPQUFPTSxLQUFLO0tBQUc7SUFDakcsT0FBT1gsT0FBT08sTUFBTSxDQUFDO1FBQUNIO1FBQUlDLE9BQU9PLFVBQVU7UUFBSU47S0FBVyxFQUFFTyxRQUFRLENBQUM7QUFDdkUsRUFBRTtBQUNGLE9BQU8sTUFBTUMseUJBQXlCLENBQUNSO0lBQ3JDLE1BQU1TLE9BQU9mLE9BQU9DLElBQUksQ0FBQ0ssWUFBWTtJQUNyQyxNQUFNVSxXQUFXMUIsaUJBQWlCLGVBQWVHLHVCQUF1QnNCLEtBQUtFLFFBQVEsQ0FBQyxHQUFHO0lBQ3pGRCxTQUFTRSxVQUFVLENBQUNILEtBQUtFLFFBQVEsQ0FBQyxJQUFJO0lBQ3RDLE9BQU9SLEtBQUtVLEtBQUssQ0FDZm5CLE9BQU9PLE1BQU0sQ0FBQztRQUFDUyxTQUFTUixNQUFNLENBQUNPLEtBQUtFLFFBQVEsQ0FBQztRQUFNRCxTQUFTTCxLQUFLO0tBQUcsRUFBRUUsUUFBUSxDQUFDO0FBRW5GLEVBQUU7QUFDRixPQUFPLE1BQU1PLHVCQUF1QixPQUFPZDtJQUN6QyxNQUFNSCxVQUFVVyx1QkFBdUJSO0lBQ3ZDLE1BQU1lLFNBQVMxQixRQUFRQyxHQUFHLENBQUMwQix3QkFBd0IsSUFBSTtJQUN2RCxNQUFNckIsT0FBT04sUUFBUUMsR0FBRyxDQUFDMkIsdUJBQXVCLElBQUk7SUFDcEQsSUFBRyxDQUFDLHNCQUFzQnpCLElBQUksQ0FBQ3VCLFdBQVcsQ0FBQ3BCLEtBQUt1QixRQUFRLENBQUMsTUFBTTtRQUM3RCxNQUFNLElBQUl6QixNQUFNO0lBQ2xCO0lBQ0EsTUFBTTBCLE1BQU0sR0FBR0osT0FBTywyQkFBMkIsRUFBRUssbUJBQW1CdkIsUUFBUXdCLGNBQWMsRUFBRSxPQUFPLEVBQUVELG1CQUFtQnZCLFFBQVF5QixLQUFLLEdBQUc7SUFDMUksTUFBTXBDLFFBQVE7UUFDWnFDLGFBQWE7WUFBQ0MsYUFBYTtnQkFBQzNCLFFBQVE0QixLQUFLO2FBQUM7UUFBQTtRQUMxQ0MsU0FBUztZQUNQQyxNQUFNO2dCQUFDQyxNQUFNO29CQUFDQyxNQUFNLENBQUMsNkJBQTZCLEVBQUVWLElBQUksZ0NBQWdDLENBQUM7Z0JBQUE7WUFBQztZQUMxRlcsU0FBUztnQkFBQ0QsTUFBTTtZQUE2QjtRQUMvQztRQUNBRSxRQUFRcEM7SUFDVjtBQUNGLEVBQUUifQ==
|
|
@@ -25,4 +25,4 @@ export const listOrganizationTransfers = (context, organizationId)=>organization
|
|
|
25
25
|
}));
|
|
26
26
|
});
|
|
27
27
|
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3Ly5jb2RleC93b3JrdHJlZXMvdmF1bHQtczMtcmVsZWFzZS9yZWFrdG9yL3BhY2thZ2VzL3JlYWt0b3Ivc3JjL29yZ2FuaXphdGlvbnMvbWVtYmVyRGlyZWN0b3J5LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIEFyYW5nb0RCIGRvY3VtZW50IGtleXMgYXJlIHJlc2VydmVkIG1ldGFkYXRhLiAqL1xuLyogZXNsaW50IG5vLXVuZGVyc2NvcmUtZGFuZ2xlOiBbXCJ3YXJuXCIsIHtcImFsbG93XCI6IFtcIl9rZXlcIl19XSAqL1xuaW1wb3J0IHtvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9ufSBmcm9tICcuL2F1dGhvcml6YXRpb24uanMnO1xuaW1wb3J0IHtvcmdhbml6YXRpb25TdG9yZUZvcn0gZnJvbSAnLi9zdG9yZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcblxuZXhwb3J0IHR5cGUgUGVuZGluZ09yZ2FuaXphdGlvbkludml0YXRpb24gPSBSZWFkb25seTx7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xuICBpbnZpdGF0aW9uSWQ6IHN0cmluZztcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZztcbn0+O1xuZXhwb3J0IHR5cGUgUGVuZGluZ09yZ2FuaXphdGlvblRyYW5zZmVyID0gUmVhZG9ubHk8e1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZztcbiAgcmVjaXBpZW50VXNlcklkOiBzdHJpbmc7XG4gIHRyYW5zZmVySWQ6IHN0cmluZztcbn0+O1xudHlwZSBJbnZpdGF0aW9uID0gT21pdDxQZW5kaW5nT3JnYW5pemF0aW9uSW52aXRhdGlvbiwgJ2ludml0YXRpb25JZCc+ICYge3Jldm9rZWQ6IGJvb2xlYW47IHVzZWQ6IGJvb2xlYW59O1xudHlwZSBUcmFuc2ZlciA9IE9taXQ8UGVuZGluZ09yZ2FuaXphdGlvblRyYW5zZmVyLCAndHJhbnNmZXJJZCc+ICYge1xuICBvd25lclVzZXJJZDogc3RyaW5nO1xuICByZXZpc2lvbjogbnVtYmVyO1xuICB1c2VkOiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IGxpc3RPcmdhbml6YXRpb25JbnZpdGF0aW9ucyA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxQZW5kaW5nT3JnYW5pemF0aW9uSW52aXRhdGlvbltdPiA9PiBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgYXdhaXQgb3JnYW5pemF0aW9uQWNjZXNzSW5UcmFuc2FjdGlvbih0eCwgY29udGV4dCwgb3JnYW5pemF0aW9uSWQsICdhZG1pbicpO1xuICBjb25zdCBpbnZpdGF0aW9ucyA9IGF3YWl0IHR4LmZpbmQ8SW52aXRhdGlvbj4oJ29yZ2FuaXphdGlvbkludml0YXRpb25zJywge29yZ2FuaXphdGlvbklkfSk7XG4gIHJldHVybiBpbnZpdGF0aW9ucy5maWx0ZXIoKGl0ZW0pID0+ICFpdGVtLnVzZWQgJiYgIWl0ZW0ucmV2b2tlZCAmJiBpdGVtLmV4cGlyZXNBdCA+IERhdGUubm93KCkpXG4gICAgLm1hcCgoaXRlbSkgPT4gKHtlbWFpbDogaXRlbS5lbWFpbCwgZXhwaXJlc0F0OiBpdGVtLmV4cGlyZXNBdCwgaW52aXRhdGlvbklkOiBpdGVtLl9rZXksIG9yZ2FuaXphdGlvbklkfSkpO1xufSk7XG5cbmV4cG9ydCBjb25zdCBsaXN0T3JnYW5pemF0aW9uVHJhbnNmZXJzID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBvcmdhbml6YXRpb25JZDogc3RyaW5nXG4pOiBQcm9taXNlPFBlbmRpbmdPcmdhbml6YXRpb25UcmFuc2ZlcltdPiA9PiBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgY29uc3Qge29yZ2FuaXphdGlvbiwgdXNlcklkfSA9IGF3YWl0IG9yZ2FuaXphdGlvbkFjY2Vzc0luVHJhbnNhY3Rpb24odHgsIGNvbnRleHQsIG9yZ2FuaXphdGlvbklkLCAnbWVtYmVyJyk7XG4gIGNvbnN0IHRyYW5zZmVycyA9IGF3YWl0IHR4LmZpbmQ8VHJhbnNmZXI+KCdvcmdhbml6YXRpb25Pd25lclRyYW5zZmVycycsIHtvcmdhbml6YXRpb25JZH0pO1xuICByZXR1cm4gdHJhbnNmZXJzLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0udXNlZCAmJiBpdGVtLmV4cGlyZXNBdCA+IERhdGUubm93KClcbiAgICAmJiBpdGVtLnJldmlzaW9uID09PSBvcmdhbml6YXRpb24ucmV2aXNpb24gJiYgaXRlbS5vd25lclVzZXJJZCA9PT0gb3JnYW5pemF0aW9uLm93bmVyVXNlcklkXG4gICAgJiYgKHVzZXJJZCA9PT0gb3JnYW5pemF0aW9uLm93bmVyVXNlcklkIHx8IHVzZXJJZCA9PT0gaXRlbS5yZWNpcGllbnRVc2VySWQpKVxuICAgIC5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICBleHBpcmVzQXQ6IGl0ZW0uZXhwaXJlc0F0LCBvcmdhbml6YXRpb25JZCwgcmVjaXBpZW50VXNlcklkOiBpdGVtLnJlY2lwaWVudFVzZXJJZCwgdHJhbnNmZXJJZDogaXRlbS5fa2V5XG4gICAgfSkpO1xufSk7XG4iXSwibmFtZXMiOlsib3JnYW5pemF0aW9uQWNjZXNzSW5UcmFuc2FjdGlvbiIsIm9yZ2FuaXphdGlvblN0b3JlRm9yIiwibGlzdE9yZ2FuaXphdGlvbkludml0YXRpb25zIiwiY29udGV4dCIsIm9yZ2FuaXphdGlvbklkIiwidHJhbnNhY3Rpb24iLCJ0eCIsImludml0YXRpb25zIiwiZmluZCIsImZpbHRlciIsIml0ZW0iLCJ1c2VkIiwicmV2b2tlZCIsImV4cGlyZXNBdCIsIkRhdGUiLCJub3ciLCJtYXAiLCJlbWFpbCIsImludml0YXRpb25JZCIsIl9rZXkiLCJsaXN0T3JnYW5pemF0aW9uVHJhbnNmZXJzIiwib3JnYW5pemF0aW9uIiwidXNlcklkIiwidHJhbnNmZXJzIiwicmV2aXNpb24iLCJvd25lclVzZXJJZCIsInJlY2lwaWVudFVzZXJJZCIsInRyYW5zZmVySWQiXSwibWFwcGluZ3MiOiJBQUFBLGlEQUFpRCxHQUNqRCw4REFBOEQsR0FDOUQsU0FBUUEsK0JBQStCLFFBQU8scUJBQXFCO0FBQ25FLFNBQVFDLG9CQUFvQixRQUFPLGFBQWE7QUF1QmhELE9BQU8sTUFBTUMsOEJBQThCLENBQ3pDQyxTQUNBQyxpQkFDNkNILHFCQUFxQkUsU0FBU0UsV0FBVyxDQUFDLE9BQU9DO1FBQzlGLE1BQU1OLGdDQUFnQ00sSUFBSUgsU0FBU0MsZ0JBQWdCO1FBQ25FLE1BQU1HLGNBQWMsTUFBTUQsR0FBR0UsSUFBSSxDQUFhLDJCQUEyQjtZQUFDSjtRQUFjO1FBQ3hGLE9BQU9HLFlBQVlFLE1BQU0sQ0FBQyxDQUFDQyxPQUFTLENBQUNBLEtBQUtDLElBQUksSUFBSSxDQUFDRCxLQUFLRSxPQUFPLElBQUlGLEtBQUtHLFNBQVMsR0FBR0MsS0FBS0MsR0FBRyxJQUN6RkMsR0FBRyxDQUFDLENBQUNOLE9BQVUsQ0FBQTtnQkFBQ08sT0FBT1AsS0FBS08sS0FBSztnQkFBRUosV0FBV0gsS0FBS0csU0FBUztnQkFBRUssY0FBY1IsS0FBS1MsSUFBSTtnQkFBRWY7WUFBYyxDQUFBO0lBQzFHLEdBQUc7QUFFSCxPQUFPLE1BQU1nQiw0QkFBNEIsQ0FDdkNqQixTQUNBQyxpQkFDMkNILHFCQUFxQkUsU0FBU0UsV0FBVyxDQUFDLE9BQU9DO1FBQzVGLE1BQU0sRUFBQ2UsWUFBWSxFQUFFQyxNQUFNLEVBQUMsR0FBRyxNQUFNdEIsZ0NBQWdDTSxJQUFJSCxTQUFTQyxnQkFBZ0I7UUFDbEcsTUFBTW1CLFlBQVksTUFBTWpCLEdBQUdFLElBQUksQ0FBVyw4QkFBOEI7WUFBQ0o7UUFBYztRQUN2RixPQUFPbUIsVUFBVWQsTUFBTSxDQUFDLENBQUNDLE9BQVMsQ0FBQ0EsS0FBS0MsSUFBSSxJQUFJRCxLQUFLRyxTQUFTLEdBQUdDLEtBQUtDLEdBQUcsTUFDcEVMLEtBQUtjLFFBQVEsS0FBS0gsYUFBYUcsUUFBUSxJQUFJZCxLQUFLZSxXQUFXLEtBQUtKLGFBQWFJLFdBQVcsSUFDdkZILENBQUFBLFdBQVdELGFBQWFJLFdBQVcsSUFBSUgsV0FBV1osS0FBS2dCLGVBQWUsQUFBRCxHQUN4RVYsR0FBRyxDQUFDLENBQUNOLE9BQVUsQ0FBQTtnQkFDZEcsV0FBV0gsS0FBS0csU0FBUztnQkFBRVQ7Z0JBQWdCc0IsaUJBQWlCaEIsS0FBS2dCLGVBQWU7Z0JBQUVDLFlBQVlqQixLQUFLUyxJQUFJO1lBQ3pHLENBQUE7SUFDSixHQUFHIn0=
|
|
@@ -245,4 +245,4 @@ export const listOrganizationMembers = (context, organizationId)=>organizationSt
|
|
|
245
245
|
});
|
|
246
246
|
}); /* ArangoDB document metadata uses these reserved field names. */ /* eslint no-underscore-dangle: ["warn", {"allow": ["_key", "_rev", "_id"]}] */
|
|
247
247
|
|
|
248
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9wcml2YXRlL3RtcC92YXVsdC1yZWFrdG9yLWNvbXBsZXRpb24vcGFja2FnZXMvcmVha3Rvci9zcmMvb3JnYW5pemF0aW9ucy9tZW1iZXJzaGlwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7cmFuZG9tQnl0ZXN9IGZyb20gJ25vZGU6Y3J5cHRvJztcblxuaW1wb3J0IHtvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uLCBvcmdhbml6YXRpb25Vc2VySWR9IGZyb20gJy4vYXV0aG9yaXphdGlvbi5qcyc7XG5pbXBvcnQge1xuICBuZXdPcmdhbml6YXRpb25JZCxcbiAgb3JnYW5pemF0aW9uS2V5LFxuICBvcmdhbml6YXRpb25TdG9yZUZvcixcbiAgcmVxdWlyZUlkZW50aWZpZXIsXG4gIHR5cGUgT3JnYW5pemF0aW9uVHJhbnNhY3Rpb24sXG4gIHR5cGUgU3RvcmVkXG59IGZyb20gJy4vc3RvcmUuanMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7XG4gIEJpbGxpbmdKb2IsXG4gIE1lbWJlcnNoaXBDaGFuZ2UsXG4gIE9yZ2FuaXphdGlvbixcbiAgT3JnYW5pemF0aW9uTWVtYmVyc2hpcCxcbiAgU2VhdENoYW5nZVF1b3RlXG59IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgY29uc3QgYWN0aXZlTWVtYmVyQ291bnQgPSBhc3luYyAoXG4gIHR4OiBPcmdhbml6YXRpb25UcmFuc2FjdGlvbixcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxudW1iZXI+ID0+XG4gIChhd2FpdCB0eC5maW5kPE9yZ2FuaXphdGlvbk1lbWJlcnNoaXA+KCdvcmdhbml6YXRpb25NZW1iZXJzaGlwcycsIHtvcmdhbml6YXRpb25JZCwgc3RhdHVzOiAnYWN0aXZlJ30pKVxuICAgIC5sZW5ndGg7XG5cbmV4cG9ydCBjb25zdCB3cml0ZVNlYXRDaGFuZ2UgPSBhc3luYyAoXG4gIHR4OiBPcmdhbml6YXRpb25UcmFuc2FjdGlvbixcbiAgb3JnOiBTdG9yZWQ8T3JnYW5pemF0aW9uPixcbiAgcXVhbnRpdHk6IG51bWJlcixcbiAgZWZmZWN0aXZlQXQ6IG51bWJlcixcbiAgcHJldmlvdXNRdWFudGl0eTogbnVtYmVyXG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgcmV2aXNpb24gPSBvcmcucmV2aXNpb24gKyAxO1xuICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbnMnLCBvcmcub3JnYW5pemF0aW9uSWQsIHsuLi5vcmcsIHJldmlzaW9uLCB1cGRhdGVkQXQ6IGVmZmVjdGl2ZUF0fSwgb3JnKTtcbiAgY29uc3Qgam9iSWQgPSBvcmdhbml6YXRpb25LZXkob3JnLm9yZ2FuaXphdGlvbklkLCBTdHJpbmcocmV2aXNpb24pKTtcbiAgY29uc3Qgam9iOiBCaWxsaW5nSm9iID0ge1xuICAgIGF0dGVtcHRzOiAwLFxuICAgIGRlc2lyZWQ6IHtleHRyYVNlYXRzOiBNYXRoLm1heCgwLCBxdWFudGl0eSAtIDEwKSwgcHJldmlvdXNFeHRyYVNlYXRzOiBNYXRoLm1heCgwLCBwcmV2aW91c1F1YW50aXR5IC0gMTApfSxcbiAgICBlZmZlY3RpdmVBdCxcbiAgICBqb2JJZCxcbiAgICBraW5kOiAnc2VhdHMnLFxuICAgIGxlYXNlRXhwaXJlczogMCxcbiAgICBvcmdhbml6YXRpb25JZDogb3JnLm9yZ2FuaXphdGlvbklkLFxuICAgIG93bmVyOiAnJyxcbiAgICBwcmljZVZlcnNpb246ICcyMDI2LTEwLXYxJyxcbiAgICBzZXF1ZW5jZTogcmV2aXNpb24sXG4gICAgc3RhdHVzOiAncGVuZGluZydcbiAgfTtcbiAgYXdhaXQgdHgucHV0KCdvcmdhbml6YXRpb25CaWxsaW5nSm9icycsIGpvYklkLCBqb2IpO1xufTtcblxuZXhwb3J0IGNvbnN0IHZhbGlkYXRlU2VhdFF1b3RlID0gYXN5bmMgKFxuICB0eDogT3JnYW5pemF0aW9uVHJhbnNhY3Rpb24sXG4gIG9yZzogT3JnYW5pemF0aW9uLFxuICBjaGFuZ2U6IE1lbWJlcnNoaXBDaGFuZ2UsXG4gIHF1YW50aXR5OiBudW1iZXJcbik6IFByb21pc2U8dm9pZD4gPT4ge1xuICBjb25zdCBxdW90ZSA9IGNoYW5nZS5jb25maXJtZWRRdW90ZUlkXG4gICAgPyBhd2FpdCB0eC5nZXQ8XG4gICAgICAgIFNlYXRDaGFuZ2VRdW90ZSAmIHtcbiAgICAgICAgICBleHBlY3RlZFJldmlzaW9uOiBudW1iZXI7XG4gICAgICAgICAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZztcbiAgICAgICAgICByb2xlOiBzdHJpbmc7XG4gICAgICAgICAgdXNlcklkOiBzdHJpbmc7XG4gICAgICAgICAgc3RhdHVzOiBzdHJpbmc7XG4gICAgICAgICAgdXNlZDogYm9vbGVhbjtcbiAgICAgICAgfVxuICAgID4oJ29yZ2FuaXphdGlvbkJpbGxpbmdRdW90ZXMnLCBjaGFuZ2UuY29uZmlybWVkUXVvdGVJZClcbiAgICA6IG51bGw7XG4gIGlmKFxuICAgICFxdW90ZSB8fFxuICAgIHF1b3RlLnVzZWQgfHxcbiAgICBxdW90ZS5vcmdhbml6YXRpb25SZXZpc2lvbiAhPT0gb3JnLnJldmlzaW9uIHx8XG4gICAgcXVvdGUub3JnYW5pemF0aW9uSWQgIT09IG9yZy5vcmdhbml6YXRpb25JZCB8fFxuICAgIHF1b3RlLmV4cGVjdGVkUmV2aXNpb24gIT09IGNoYW5nZS5leHBlY3RlZFJldmlzaW9uIHx8XG4gICAgcXVvdGUucm9sZSAhPT0gY2hhbmdlLnJvbGUgfHxcbiAgICBxdW90ZS5leHBpcmVzQXQgPD0gRGF0ZS5ub3coKSB8fFxuICAgIHF1b3RlLnVzZXJJZCAhPT0gY2hhbmdlLnVzZXJJZCB8fFxuICAgIHF1b3RlLnN0YXR1cyAhPT0gY2hhbmdlLnN0YXR1cyB8fFxuICAgIHF1b3RlLnF1YW50aXR5ICE9PSBxdWFudGl0eVxuICApIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ3NlYXRfcXVvdGVfcmVxdWlyZWQnKTtcbiAgfVxuICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbkJpbGxpbmdRdW90ZXMnLCBxdW90ZS5fa2V5LCB7Li4ucXVvdGUsIHVzZWQ6IHRydWV9LCBxdW90ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgY2hhbmdlT3JnYW5pemF0aW9uTWVtYmVyID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBvcmdhbml6YXRpb25JZDogc3RyaW5nLFxuICBjaGFuZ2U6IE1lbWJlcnNoaXBDaGFuZ2Vcbik6IFByb21pc2U8T3JnYW5pemF0aW9uTWVtYmVyc2hpcD4gPT5cbiAgb3JnYW5pemF0aW9uU3RvcmVGb3IoY29udGV4dCkudHJhbnNhY3Rpb24oYXN5bmMgKHR4KSA9PiB7XG4gICAgY29uc3QgYWNjZXNzID0gYXdhaXQgb3JnYW5pemF0aW9uQWNjZXNzSW5UcmFuc2FjdGlvbih0eCwgY29udGV4dCwgb3JnYW5pemF0aW9uSWQsICdhZG1pbicpO1xuICAgIGNvbnN0IG9yZyA9IGF3YWl0IHR4LmdldDxPcmdhbml6YXRpb24+KCdvcmdhbml6YXRpb25zJywgb3JnYW5pemF0aW9uSWQpO1xuICAgIGNvbnN0IG1lbWJlciA9IGF3YWl0IHR4LmdldDxPcmdhbml6YXRpb25NZW1iZXJzaGlwPihcbiAgICAgICdvcmdhbml6YXRpb25NZW1iZXJzaGlwcycsXG4gICAgICBvcmdhbml6YXRpb25LZXkob3JnYW5pemF0aW9uSWQsIHJlcXVpcmVJZGVudGlmaWVyKGNoYW5nZS51c2VySWQpKVxuICAgICk7XG4gICAgaWYoXG4gICAgICAhWydhZG1pbicsICdtZW1iZXInXS5pbmNsdWRlcyhjaGFuZ2Uucm9sZSkgfHxcbiAgICAgICFbJ2FjdGl2ZScsICdkZWFjdGl2YXRlZCddLmluY2x1ZGVzKGNoYW5nZS5zdGF0dXMpIHx8XG4gICAgICAhTnVtYmVyLmlzU2FmZUludGVnZXIoY2hhbmdlLmV4cGVjdGVkUmV2aXNpb24pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfbWVtYmVyc2hpcCcpO1xuICAgIH1cbiAgICBpZighb3JnIHx8ICFtZW1iZXIgfHwgbWVtYmVyLnJldmlzaW9uICE9PSBjaGFuZ2UuZXhwZWN0ZWRSZXZpc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdyZXZpc2lvbl9jb25mbGljdCcpO1xuICAgIH1cbiAgICBpZihcbiAgICAgIGFjY2Vzcy5vcmdhbml6YXRpb24ub3duZXJVc2VySWQgPT09IG1lbWJlci51c2VySWQgJiZcbiAgICAgIChjaGFuZ2Uucm9sZSAhPT0gJ2FkbWluJyB8fCBjaGFuZ2Uuc3RhdHVzICE9PSAnYWN0aXZlJylcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3duZXJzaGlwX3RyYW5zZmVyX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0eC5nZXQ8e2FjdGl2ZTogYm9vbGVhbjsgdmVyaWZpZWRFbWFpbDogYm9vbGVhbn0+KCd1c2VycycsIG1lbWJlci51c2VySWQpO1xuICAgIGlmKGNoYW5nZS5zdGF0dXMgPT09ICdhY3RpdmUnICYmICghdXNlcj8uYWN0aXZlIHx8ICF1c2VyLnZlcmlmaWVkRW1haWwpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ3ZlcmlmaWVkX2FjdGl2ZV91c2VyX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvdW50ID0gYXdhaXQgYWN0aXZlTWVtYmVyQ291bnQodHgsIG9yZ2FuaXphdGlvbklkKTtcbiAgICBjb25zdCBuZXh0Q291bnQgPSBjb3VudCArIE51bWJlcihjaGFuZ2Uuc3RhdHVzID09PSAnYWN0aXZlJykgLSBOdW1iZXIobWVtYmVyLnN0YXR1cyA9PT0gJ2FjdGl2ZScpO1xuICAgIGNvbnN0IGJpbGxpbmcgPSBhd2FpdCB0eC5nZXQ8e3BsYW4/OiBzdHJpbmc7IHN0YXR1cz86IHN0cmluZ30+KCdvcmdhbml6YXRpb25CaWxsaW5nJywgb3JnYW5pemF0aW9uSWQpO1xuICAgIGlmKG5leHRDb3VudCA+IGNvdW50ICYmIG5leHRDb3VudCA+IDEwICYmIGJpbGxpbmc/LnBsYW4pIHtcbiAgICAgIGlmKGJpbGxpbmcuc3RhdHVzICE9PSAnYWN0aXZlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfbm90X3JlYWR5Jyk7XG4gICAgICB9XG4gICAgICBhd2FpdCB2YWxpZGF0ZVNlYXRRdW90ZSh0eCwgb3JnLCBjaGFuZ2UsIE1hdGgubWF4KDAsIG5leHRDb3VudCAtIDEwKSk7XG4gICAgfVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgdXBkYXRlZCA9IHtcbiAgICAgIC4uLm1lbWJlcixcbiAgICAgIHJldmlzaW9uOiBtZW1iZXIucmV2aXNpb24gKyAxLFxuICAgICAgcm9sZTogY2hhbmdlLnJvbGUsXG4gICAgICBzdGF0dXM6IGNoYW5nZS5zdGF0dXMsXG4gICAgICB1cGRhdGVkQXQ6IG5vd1xuICAgIH07XG4gICAgYXdhaXQgdHgucHV0KCdvcmdhbml6YXRpb25NZW1iZXJzaGlwcycsIG1lbWJlci5fa2V5LCB1cGRhdGVkLCBtZW1iZXIpO1xuICAgIGF3YWl0IHdyaXRlU2VhdENoYW5nZSh0eCwgb3JnLCBuZXh0Q291bnQsIG5vdywgY291bnQpO1xuICAgIHJldHVybiB1cGRhdGVkO1xuICB9KTtcblxudHlwZSBUcmFuc2ZlciA9IHtcbiAgZXhwaXJlc0F0OiBudW1iZXI7XG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmc7XG4gIG93bmVyVXNlcklkOiBzdHJpbmc7XG4gIHJlY2lwaWVudFVzZXJJZDogc3RyaW5nO1xuICByZXZpc2lvbjogbnVtYmVyO1xuICB1c2VkOiBib29sZWFuO1xufTtcbmV4cG9ydCBjb25zdCByZXF1ZXN0T3duZXJzaGlwVHJhbnNmZXIgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmcsXG4gIHJlY2lwaWVudFVzZXJJZDogc3RyaW5nXG4pOiBQcm9taXNlPHt0cmFuc2ZlcklkOiBzdHJpbmd9PiA9PlxuICBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgICBjb25zdCB7b3JnYW5pemF0aW9ufSA9IGF3YWl0IG9yZ2FuaXphdGlvbkFjY2Vzc0luVHJhbnNhY3Rpb24odHgsIGNvbnRleHQsIG9yZ2FuaXphdGlvbklkLCAnb3duZXInKTtcbiAgICBjb25zdCByZWNpcGllbnQgPSBhd2FpdCB0eC5nZXQ8T3JnYW5pemF0aW9uTWVtYmVyc2hpcD4oXG4gICAgICAnb3JnYW5pemF0aW9uTWVtYmVyc2hpcHMnLFxuICAgICAgb3JnYW5pemF0aW9uS2V5KG9yZ2FuaXphdGlvbklkLCByZXF1aXJlSWRlbnRpZmllcihyZWNpcGllbnRVc2VySWQpKVxuICAgICk7XG4gICAgaWYoIXJlY2lwaWVudCB8fCByZWNpcGllbnQuc3RhdHVzICE9PSAnYWN0aXZlJyB8fCByZWNpcGllbnRVc2VySWQgPT09IG9yZ2FuaXphdGlvbi5vd25lclVzZXJJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhY3RpdmVfcmVjaXBpZW50X3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IHRyYW5zZmVySWQgPSBuZXdPcmdhbml6YXRpb25JZCgpO1xuICAgIGF3YWl0IHR4LnB1dCgnb3JnYW5pemF0aW9uT3duZXJUcmFuc2ZlcnMnLCB0cmFuc2ZlcklkLCB7XG4gICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyAoNDggKiAzNjAwMDAwKSxcbiAgICAgIG9yZ2FuaXphdGlvbklkLFxuICAgICAgb3duZXJVc2VySWQ6IG9yZ2FuaXphdGlvbi5vd25lclVzZXJJZCxcbiAgICAgIHJlY2lwaWVudFVzZXJJZCxcbiAgICAgIHJldmlzaW9uOiBvcmdhbml6YXRpb24ucmV2aXNpb24sXG4gICAgICB1c2VkOiBmYWxzZVxuICAgIH0pO1xuICAgIHJldHVybiB7dHJhbnNmZXJJZH07XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgYWNjZXB0T3duZXJzaGlwVHJhbnNmZXIgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdHJhbnNmZXJJZDogc3RyaW5nKTogUHJvbWlzZTxPcmdhbml6YXRpb24+ID0+XG4gIG9yZ2FuaXphdGlvblN0b3JlRm9yKGNvbnRleHQpLnRyYW5zYWN0aW9uKGFzeW5jICh0eCkgPT4ge1xuICAgIGNvbnN0IHRyYW5zZmVyID0gYXdhaXQgdHguZ2V0PFRyYW5zZmVyPignb3JnYW5pemF0aW9uT3duZXJUcmFuc2ZlcnMnLCByZXF1aXJlSWRlbnRpZmllcih0cmFuc2ZlcklkKSk7XG4gICAgaWYoXG4gICAgICAhdHJhbnNmZXIgfHxcbiAgICAgIHRyYW5zZmVyLnVzZWQgfHxcbiAgICAgIHRyYW5zZmVyLmV4cGlyZXNBdCA8PSBEYXRlLm5vdygpIHx8XG4gICAgICB0cmFuc2Zlci5yZWNpcGllbnRVc2VySWQgIT09IG9yZ2FuaXphdGlvblVzZXJJZChjb250ZXh0KVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX3RyYW5zZmVyJyk7XG4gICAgfVxuICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IG9yZ2FuaXphdGlvbkFjY2Vzc0luVHJhbnNhY3Rpb24odHgsIGNvbnRleHQsIHRyYW5zZmVyLm9yZ2FuaXphdGlvbklkLCAnbWVtYmVyJyk7XG4gICAgY29uc3Qgb3JnID0gYXdhaXQgdHguZ2V0PE9yZ2FuaXphdGlvbj4oJ29yZ2FuaXphdGlvbnMnLCB0cmFuc2Zlci5vcmdhbml6YXRpb25JZCk7XG4gICAgY29uc3QgbWVtYmVyID0gYXdhaXQgdHguZ2V0PE9yZ2FuaXphdGlvbk1lbWJlcnNoaXA+KFxuICAgICAgJ29yZ2FuaXphdGlvbk1lbWJlcnNoaXBzJyxcbiAgICAgIG9yZ2FuaXphdGlvbktleSh0cmFuc2Zlci5vcmdhbml6YXRpb25JZCwgYWNjZXNzLnVzZXJJZClcbiAgICApO1xuICAgIGlmKCFvcmcgfHwgIW1lbWJlciB8fCBvcmcub3duZXJVc2VySWQgIT09IHRyYW5zZmVyLm93bmVyVXNlcklkIHx8IG9yZy5yZXZpc2lvbiAhPT0gdHJhbnNmZXIucmV2aXNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF90cmFuc2ZlcicpO1xuICAgIH1cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSB7Li4ub3JnLCBvd25lclVzZXJJZDogYWNjZXNzLnVzZXJJZCwgcmV2aXNpb246IG9yZy5yZXZpc2lvbiArIDEsIHVwZGF0ZWRBdDogbm93fTtcbiAgICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbnMnLCBvcmcuX2tleSwgdXBkYXRlZCwgb3JnKTtcbiAgICBhd2FpdCB0eC5wdXQoXG4gICAgICAnb3JnYW5pemF0aW9uTWVtYmVyc2hpcHMnLFxuICAgICAgbWVtYmVyLl9rZXksXG4gICAgICB7Li4ubWVtYmVyLCByZXZpc2lvbjogbWVtYmVyLnJldmlzaW9uICsgMSwgcm9sZTogJ2FkbWluJywgdXBkYXRlZEF0OiBub3d9LFxuICAgICAgbWVtYmVyXG4gICAgKTtcbiAgICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbk93bmVyVHJhbnNmZXJzJywgdHJhbnNmZXIuX2tleSwgey4uLnRyYW5zZmVyLCB1c2VkOiB0cnVlfSwgdHJhbnNmZXIpO1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0eC5nZXQoJ3VzZXJzJywgYWNjZXNzLnVzZXJJZCk7XG4gICAgaWYoIXVzZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3JnYW5pemF0aW9uX3N0YXRlX2ludmFsaWQnKTtcbiAgICB9XG4gICAgYXdhaXQgdHgucHV0KCd1c2VycycsIGFjY2Vzcy51c2VySWQsIHsuLi51c2VyLCBvcmdhbml6YXRpb25BY2NvdW50OiB0cnVlfSwgdXNlcik7XG4gICAgcmV0dXJuIHVwZGF0ZWQ7XG4gIH0pO1xuXG50eXBlIEludml0YXRpb24gPSB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xuICBpbnZpdGVkQnk6IHN0cmluZztcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZztcbiAgcmV2b2tlZDogYm9vbGVhbjtcbiAgdG9rZW5IYXNoOiBzdHJpbmc7XG4gIHVzZWQ6IGJvb2xlYW47XG59O1xuZXhwb3J0IGNvbnN0IGludml0ZU9yZ2FuaXphdGlvbk1lbWJlciA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZyxcbiAgZW1haWw6IHN0cmluZyxcbiAgYWNjZXB0c0FkZGl0aW9uYWxTZWF0Q2hhcmdlOiBib29sZWFuXG4pOiBQcm9taXNlPHtpbnZpdGF0aW9uSWQ6IHN0cmluZzsgdG9rZW46IHN0cmluZ30+ID0+XG4gIG9yZ2FuaXphdGlvblN0b3JlRm9yKGNvbnRleHQpLnRyYW5zYWN0aW9uKGFzeW5jICh0eCkgPT4ge1xuICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IG9yZ2FuaXphdGlvbkFjY2Vzc0luVHJhbnNhY3Rpb24odHgsIGNvbnRleHQsIG9yZ2FuaXphdGlvbklkLCAnYWRtaW4nKTtcbiAgICBjb25zdCBub3JtYWxpemVkID0gZW1haWwudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgaWYoIS9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3Qobm9ybWFsaXplZCkgfHwgIWFjY2VwdHNBZGRpdGlvbmFsU2VhdENoYXJnZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZpdGF0aW9uX2NoYXJnZV9kaXNjbG9zdXJlX3JlcXVpcmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGV4aXN0aW5nID0gKFxuICAgICAgYXdhaXQgdHguZmluZDxJbnZpdGF0aW9uPignb3JnYW5pemF0aW9uSW52aXRhdGlvbnMnLCB7ZW1haWw6IG5vcm1hbGl6ZWQsIG9yZ2FuaXphdGlvbklkfSlcbiAgICApLmZpbmQoKGludml0YXRpb24pID0+ICFpbnZpdGF0aW9uLnVzZWQgJiYgIWludml0YXRpb24ucmV2b2tlZCAmJiBpbnZpdGF0aW9uLmV4cGlyZXNBdCA+IERhdGUubm93KCkpO1xuICAgIGlmKGV4aXN0aW5nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludml0YXRpb25fZXhpc3RzJyk7XG4gICAgfVxuICAgIGNvbnN0IGludml0YXRpb25JZCA9IG5ld09yZ2FuaXphdGlvbklkKCk7XG4gICAgY29uc3QgdG9rZW4gPSByYW5kb21CeXRlcygzMikudG9TdHJpbmcoJ2Jhc2U2NHVybCcpO1xuICAgIGF3YWl0IHR4LnB1dCgnb3JnYW5pemF0aW9uSW52aXRhdGlvbnMnLCBpbnZpdGF0aW9uSWQsIHtcbiAgICAgIGVtYWlsOiBub3JtYWxpemVkLFxuICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgKDcgKiA4NjQwMDAwMCksXG4gICAgICBpbnZpdGVkQnk6IGFjY2Vzcy51c2VySWQsXG4gICAgICBvcmdhbml6YXRpb25JZCxcbiAgICAgIHJldm9rZWQ6IGZhbHNlLFxuICAgICAgdG9rZW5IYXNoOiBvcmdhbml6YXRpb25LZXkodG9rZW4pLFxuICAgICAgdXNlZDogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4ge2ludml0YXRpb25JZCwgdG9rZW59O1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IGFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb24gPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIGludml0YXRpb25JZDogc3RyaW5nLFxuICB0b2tlbjogc3RyaW5nXG4pOiBQcm9taXNlPE9yZ2FuaXphdGlvbk1lbWJlcnNoaXA+ID0+XG4gIG9yZ2FuaXphdGlvblN0b3JlRm9yKGNvbnRleHQpLnRyYW5zYWN0aW9uKGFzeW5jICh0eCkgPT4ge1xuICAgIGNvbnN0IHVzZXJJZCA9IG9yZ2FuaXphdGlvblVzZXJJZChjb250ZXh0KTtcbiAgICBjb25zdCBpbnZpdGF0aW9uID0gYXdhaXQgdHguZ2V0PEludml0YXRpb24+KCdvcmdhbml6YXRpb25JbnZpdGF0aW9ucycsIHJlcXVpcmVJZGVudGlmaWVyKGludml0YXRpb25JZCkpO1xuICAgIGNvbnN0IHVzZXIgPSBhd2FpdCB0eC5nZXQ8e2FjdGl2ZTogYm9vbGVhbjsgZW1haWw6IHN0cmluZzsgdmVyaWZpZWRFbWFpbDogYm9vbGVhbn0+KCd1c2VycycsIHVzZXJJZCk7XG4gICAgaWYoXG4gICAgICAhaW52aXRhdGlvbiB8fFxuICAgICAgaW52aXRhdGlvbi5yZXZva2VkIHx8XG4gICAgICBpbnZpdGF0aW9uLnVzZWQgfHxcbiAgICAgIGludml0YXRpb24uZXhwaXJlc0F0IDw9IERhdGUubm93KCkgfHxcbiAgICAgIGludml0YXRpb24udG9rZW5IYXNoICE9PSBvcmdhbml6YXRpb25LZXkodG9rZW4pIHx8XG4gICAgICAhdXNlcj8uYWN0aXZlIHx8XG4gICAgICAhdXNlci52ZXJpZmllZEVtYWlsIHx8XG4gICAgICB1c2VyLmVtYWlsLnRvTG93ZXJDYXNlKCkgIT09IGludml0YXRpb24uZW1haWxcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF9pbnZpdGF0aW9uJyk7XG4gICAgfVxuICAgIGF3YWl0IG9yZ2FuaXphdGlvbkFjY2Vzc0luVHJhbnNhY3Rpb24oXG4gICAgICB0eCxcbiAgICAgIHtzZXNzaW9uOiB7dXNlcklkOiBpbnZpdGF0aW9uLmludml0ZWRCeX19LFxuICAgICAgaW52aXRhdGlvbi5vcmdhbml6YXRpb25JZCxcbiAgICAgICdhZG1pbidcbiAgICApO1xuICAgIGNvbnN0IG9yZyA9IGF3YWl0IHR4LmdldDxPcmdhbml6YXRpb24+KCdvcmdhbml6YXRpb25zJywgaW52aXRhdGlvbi5vcmdhbml6YXRpb25JZCk7XG4gICAgaWYoIW9yZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvcmdhbml6YXRpb25fYWNjZXNzX2RlbmllZCcpO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBvcmdhbml6YXRpb25LZXkoaW52aXRhdGlvbi5vcmdhbml6YXRpb25JZCwgdXNlcklkKTtcbiAgICBjb25zdCBwcmV2aW91cyA9IGF3YWl0IHR4LmdldDxPcmdhbml6YXRpb25NZW1iZXJzaGlwPignb3JnYW5pemF0aW9uTWVtYmVyc2hpcHMnLCBrZXkpO1xuICAgIGlmKHByZXZpb3VzPy5zdGF0dXMgPT09ICdhY3RpdmUnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2FscmVhZHlfYWN0aXZlJyk7XG4gICAgfVxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgbWVtYmVyOiBPcmdhbml6YXRpb25NZW1iZXJzaGlwID0ge1xuICAgICAgY3JlYXRlZEF0OiBwcmV2aW91cz8uY3JlYXRlZEF0IHx8IG5vdyxcbiAgICAgIG9yZ2FuaXphdGlvbklkOiBvcmcub3JnYW5pemF0aW9uSWQsXG4gICAgICByZXZpc2lvbjogKHByZXZpb3VzPy5yZXZpc2lvbiB8fCAwKSArIDEsXG4gICAgICByb2xlOiBwcmV2aW91cz8ucm9sZSB8fCAnbWVtYmVyJyxcbiAgICAgIHN0YXR1czogJ2FjdGl2ZScsXG4gICAgICB1cGRhdGVkQXQ6IG5vdyxcbiAgICAgIHVzZXJJZFxuICAgIH07XG4gICAgY29uc3QgcHJldmlvdXNDb3VudCA9IGF3YWl0IGFjdGl2ZU1lbWJlckNvdW50KHR4LCBvcmcub3JnYW5pemF0aW9uSWQpO1xuICAgIGNvbnN0IGJpbGxpbmcgPSBhd2FpdCB0eC5nZXQ8e3BsYW4/OiBzdHJpbmc7IHN0YXR1cz86IHN0cmluZ30+KCdvcmdhbml6YXRpb25CaWxsaW5nJywgb3JnLm9yZ2FuaXphdGlvbklkKTtcbiAgICBpZihwcmV2aW91c0NvdW50ID49IDEwICYmIGJpbGxpbmc/LnBsYW4gJiYgYmlsbGluZy5zdGF0dXMgIT09ICdhY3RpdmUnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JpbGxpbmdfbm90X3JlYWR5Jyk7XG4gICAgfVxuICAgIGF3YWl0IHR4LnB1dCgnb3JnYW5pemF0aW9uTWVtYmVyc2hpcHMnLCBrZXksIG1lbWJlciwgcHJldmlvdXMpO1xuICAgIGF3YWl0IHR4LnB1dCgndXNlcnMnLCB1c2VySWQsIHsuLi51c2VyLCBvcmdhbml6YXRpb25BY2NvdW50OiB0cnVlfSwgdXNlcik7XG4gICAgYXdhaXQgd3JpdGVTZWF0Q2hhbmdlKHR4LCBvcmcsIHByZXZpb3VzQ291bnQgKyAxLCBub3csIHByZXZpb3VzQ291bnQpO1xuICAgIGF3YWl0IHR4LnB1dCgnb3JnYW5pemF0aW9uSW52aXRhdGlvbnMnLCBpbnZpdGF0aW9uSWQsIHsuLi5pbnZpdGF0aW9uLCB1c2VkOiB0cnVlfSwgaW52aXRhdGlvbik7XG4gICAgcmV0dXJuIG1lbWJlcjtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCByZXZva2VPcmdhbml6YXRpb25JbnZpdGF0aW9uID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIGludml0YXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiA9PlxuICBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgICBjb25zdCBpbnZpdGF0aW9uID0gYXdhaXQgdHguZ2V0PEludml0YXRpb24+KCdvcmdhbml6YXRpb25JbnZpdGF0aW9ucycsIHJlcXVpcmVJZGVudGlmaWVyKGludml0YXRpb25JZCkpO1xuICAgIGlmKCFpbnZpdGF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfaW52aXRhdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCBvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uKHR4LCBjb250ZXh0LCBpbnZpdGF0aW9uLm9yZ2FuaXphdGlvbklkLCAnYWRtaW4nKTtcbiAgICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbkludml0YXRpb25zJywgaW52aXRhdGlvbklkLCB7Li4uaW52aXRhdGlvbiwgcmV2b2tlZDogdHJ1ZX0sIGludml0YXRpb24pO1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IGFzc2VydE9yZ2FuaXphdGlvbkFjY291bnRSZW1vdmFsQWxsb3dlZCA9IChjb250ZXh0OiBBcGlDb250ZXh0LCB1c2VySWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT5cbiAgb3JnYW5pemF0aW9uU3RvcmVGb3IoY29udGV4dCkudHJhbnNhY3Rpb24oYXN5bmMgKHR4KSA9PiB7XG4gICAgaWYoXG4gICAgICAoXG4gICAgICAgIGF3YWl0IHR4LmZpbmQ8T3JnYW5pemF0aW9uPignb3JnYW5pemF0aW9ucycsIHtcbiAgICAgICAgICBvd25lclVzZXJJZDogcmVxdWlyZUlkZW50aWZpZXIodXNlcklkLnJlcGxhY2UoL151c2Vyc1xcLy8sICcnKSlcbiAgICAgICAgfSlcbiAgICAgICkubGVuZ3RoXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ293bmVyc2hpcF90cmFuc2Zlcl9yZXF1aXJlZCcpO1xuICAgIH1cbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBsaXN0T3JnYW5pemF0aW9uTWVtYmVycyA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZ1xuKTogUHJvbWlzZTxPcmdhbml6YXRpb25NZW1iZXJzaGlwW10+ID0+XG4gIG9yZ2FuaXphdGlvblN0b3JlRm9yKGNvbnRleHQpLnRyYW5zYWN0aW9uKGFzeW5jICh0eCkgPT4ge1xuICAgIGF3YWl0IG9yZ2FuaXphdGlvbkFjY2Vzc0luVHJhbnNhY3Rpb24odHgsIGNvbnRleHQsIG9yZ2FuaXphdGlvbklkLCAnbWVtYmVyJyk7XG4gICAgcmV0dXJuIHR4LmZpbmQ8T3JnYW5pemF0aW9uTWVtYmVyc2hpcD4oJ29yZ2FuaXphdGlvbk1lbWJlcnNoaXBzJywge29yZ2FuaXphdGlvbklkfSk7XG4gIH0pO1xuLyogQXJhbmdvREIgZG9jdW1lbnQgbWV0YWRhdGEgdXNlcyB0aGVzZSByZXNlcnZlZCBmaWVsZCBuYW1lcy4gKi9cbi8qIGVzbGludCBuby11bmRlcnNjb3JlLWRhbmdsZTogW1wid2FyblwiLCB7XCJhbGxvd1wiOiBbXCJfa2V5XCIsIFwiX3JldlwiLCBcIl9pZFwiXX1dICovXG4iXSwibmFtZXMiOlsicmFuZG9tQnl0ZXMiLCJvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uIiwib3JnYW5pemF0aW9uVXNlcklkIiwibmV3T3JnYW5pemF0aW9uSWQiLCJvcmdhbml6YXRpb25LZXkiLCJvcmdhbml6YXRpb25TdG9yZUZvciIsInJlcXVpcmVJZGVudGlmaWVyIiwiYWN0aXZlTWVtYmVyQ291bnQiLCJ0eCIsIm9yZ2FuaXphdGlvbklkIiwiZmluZCIsInN0YXR1cyIsImxlbmd0aCIsIndyaXRlU2VhdENoYW5nZSIsIm9yZyIsInF1YW50aXR5IiwiZWZmZWN0aXZlQXQiLCJwcmV2aW91c1F1YW50aXR5IiwicmV2aXNpb24iLCJwdXQiLCJ1cGRhdGVkQXQiLCJqb2JJZCIsIlN0cmluZyIsImpvYiIsImF0dGVtcHRzIiwiZGVzaXJlZCIsImV4dHJhU2VhdHMiLCJNYXRoIiwibWF4IiwicHJldmlvdXNFeHRyYVNlYXRzIiwia2luZCIsImxlYXNlRXhwaXJlcyIsIm93bmVyIiwicHJpY2VWZXJzaW9uIiwic2VxdWVuY2UiLCJ2YWxpZGF0ZVNlYXRRdW90ZSIsImNoYW5nZSIsInF1b3RlIiwiY29uZmlybWVkUXVvdGVJZCIsImdldCIsInVzZWQiLCJvcmdhbml6YXRpb25SZXZpc2lvbiIsImV4cGVjdGVkUmV2aXNpb24iLCJyb2xlIiwiZXhwaXJlc0F0IiwiRGF0ZSIsIm5vdyIsInVzZXJJZCIsIkVycm9yIiwiX2tleSIsImNoYW5nZU9yZ2FuaXphdGlvbk1lbWJlciIsImNvbnRleHQiLCJ0cmFuc2FjdGlvbiIsImFjY2VzcyIsIm1lbWJlciIsImluY2x1ZGVzIiwiTnVtYmVyIiwiaXNTYWZlSW50ZWdlciIsIm9yZ2FuaXphdGlvbiIsIm93bmVyVXNlcklkIiwidXNlciIsImFjdGl2ZSIsInZlcmlmaWVkRW1haWwiLCJjb3VudCIsIm5leHRDb3VudCIsImJpbGxpbmciLCJwbGFuIiwidXBkYXRlZCIsInJlcXVlc3RPd25lcnNoaXBUcmFuc2ZlciIsInJlY2lwaWVudFVzZXJJZCIsInJlY2lwaWVudCIsInRyYW5zZmVySWQiLCJhY2NlcHRPd25lcnNoaXBUcmFuc2ZlciIsInRyYW5zZmVyIiwib3JnYW5pemF0aW9uQWNjb3VudCIsImludml0ZU9yZ2FuaXphdGlvbk1lbWJlciIsImVtYWlsIiwiYWNjZXB0c0FkZGl0aW9uYWxTZWF0Q2hhcmdlIiwibm9ybWFsaXplZCIsInRyaW0iLCJ0b0xvd2VyQ2FzZSIsInRlc3QiLCJleGlzdGluZyIsImludml0YXRpb24iLCJyZXZva2VkIiwiaW52aXRhdGlvbklkIiwidG9rZW4iLCJ0b1N0cmluZyIsImludml0ZWRCeSIsInRva2VuSGFzaCIsImFjY2VwdE9yZ2FuaXphdGlvbkludml0YXRpb24iLCJzZXNzaW9uIiwia2V5IiwicHJldmlvdXMiLCJjcmVhdGVkQXQiLCJwcmV2aW91c0NvdW50IiwicmV2b2tlT3JnYW5pemF0aW9uSW52aXRhdGlvbiIsImFzc2VydE9yZ2FuaXphdGlvbkFjY291bnRSZW1vdmFsQWxsb3dlZCIsInJlcGxhY2UiLCJsaXN0T3JnYW5pemF0aW9uTWVtYmVycyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBUUEsV0FBVyxRQUFPLGNBQWM7QUFFeEMsU0FBUUMsK0JBQStCLEVBQUVDLGtCQUFrQixRQUFPLHFCQUFxQjtBQUN2RixTQUNFQyxpQkFBaUIsRUFDakJDLGVBQWUsRUFDZkMsb0JBQW9CLEVBQ3BCQyxpQkFBaUIsUUFHWixhQUFhO0FBV3BCLE9BQU8sTUFBTUMsb0JBQW9CLE9BQy9CQyxJQUNBQyxpQkFFQSxBQUFDLENBQUEsTUFBTUQsR0FBR0UsSUFBSSxDQUF5QiwyQkFBMkI7UUFBQ0Q7UUFBZ0JFLFFBQVE7SUFBUSxFQUFDLEVBQ2pHQyxNQUFNLENBQUM7QUFFWixPQUFPLE1BQU1DLGtCQUFrQixPQUM3QkwsSUFDQU0sS0FDQUMsVUFDQUMsYUFDQUM7SUFFQSxNQUFNQyxXQUFXSixJQUFJSSxRQUFRLEdBQUc7SUFDaEMsTUFBTVYsR0FBR1csR0FBRyxDQUFDLGlCQUFpQkwsSUFBSUwsY0FBYyxFQUFFO1FBQUMsR0FBR0ssR0FBRztRQUFFSTtRQUFVRSxXQUFXSjtJQUFXLEdBQUdGO0lBQzlGLE1BQU1PLFFBQVFqQixnQkFBZ0JVLElBQUlMLGNBQWMsRUFBRWEsT0FBT0o7SUFDekQsTUFBTUssTUFBa0I7UUFDdEJDLFVBQVU7UUFDVkMsU0FBUztZQUFDQyxZQUFZQyxLQUFLQyxHQUFHLENBQUMsR0FBR2IsV0FBVztZQUFLYyxvQkFBb0JGLEtBQUtDLEdBQUcsQ0FBQyxHQUFHWCxtQkFBbUI7UUFBRztRQUN4R0Q7UUFDQUs7UUFDQVMsTUFBTTtRQUNOQyxjQUFjO1FBQ2R0QixnQkFBZ0JLLElBQUlMLGNBQWM7UUFDbEN1QixPQUFPO1FBQ1BDLGNBQWM7UUFDZEMsVUFBVWhCO1FBQ1ZQLFFBQVE7SUFDVjtJQUNBLE1BQU1ILEdBQUdXLEdBQUcsQ0FBQywyQkFBMkJFLE9BQU9FO0FBQ2pELEVBQUU7QUFFRixPQUFPLE1BQU1ZLG9CQUFvQixPQUMvQjNCLElBQ0FNLEtBQ0FzQixRQUNBckI7SUFFQSxNQUFNc0IsUUFBUUQsT0FBT0UsZ0JBQWdCLEdBQ2pDLE1BQU05QixHQUFHK0IsR0FBRyxDQVNaLDZCQUE2QkgsT0FBT0UsZ0JBQWdCLElBQ3BEO0lBQ0osSUFDRSxDQUFDRCxTQUNEQSxNQUFNRyxJQUFJLElBQ1ZILE1BQU1JLG9CQUFvQixLQUFLM0IsSUFBSUksUUFBUSxJQUMzQ21CLE1BQU01QixjQUFjLEtBQUtLLElBQUlMLGNBQWMsSUFDM0M0QixNQUFNSyxnQkFBZ0IsS0FBS04sT0FBT00sZ0JBQWdCLElBQ2xETCxNQUFNTSxJQUFJLEtBQUtQLE9BQU9PLElBQUksSUFDMUJOLE1BQU1PLFNBQVMsSUFBSUMsS0FBS0MsR0FBRyxNQUMzQlQsTUFBTVUsTUFBTSxLQUFLWCxPQUFPVyxNQUFNLElBQzlCVixNQUFNMUIsTUFBTSxLQUFLeUIsT0FBT3pCLE1BQU0sSUFDOUIwQixNQUFNdEIsUUFBUSxLQUFLQSxVQUNuQjtRQUNBLE1BQU0sSUFBSWlDLE1BQU07SUFDbEI7SUFDQSxNQUFNeEMsR0FBR1csR0FBRyxDQUFDLDZCQUE2QmtCLE1BQU1ZLElBQUksRUFBRTtRQUFDLEdBQUdaLEtBQUs7UUFBRUcsTUFBTTtJQUFJLEdBQUdIO0FBQ2hGLEVBQUU7QUFFRixPQUFPLE1BQU1hLDJCQUEyQixDQUN0Q0MsU0FDQTFDLGdCQUNBMkIsU0FFQS9CLHFCQUFxQjhDLFNBQVNDLFdBQVcsQ0FBQyxPQUFPNUM7UUFDL0MsTUFBTTZDLFNBQVMsTUFBTXBELGdDQUFnQ08sSUFBSTJDLFNBQVMxQyxnQkFBZ0I7UUFDbEYsTUFBTUssTUFBTSxNQUFNTixHQUFHK0IsR0FBRyxDQUFlLGlCQUFpQjlCO1FBQ3hELE1BQU02QyxTQUFTLE1BQU05QyxHQUFHK0IsR0FBRyxDQUN6QiwyQkFDQW5DLGdCQUFnQkssZ0JBQWdCSCxrQkFBa0I4QixPQUFPVyxNQUFNO1FBRWpFLElBQ0UsQ0FBQztZQUFDO1lBQVM7U0FBUyxDQUFDUSxRQUFRLENBQUNuQixPQUFPTyxJQUFJLEtBQ3pDLENBQUM7WUFBQztZQUFVO1NBQWMsQ0FBQ1ksUUFBUSxDQUFDbkIsT0FBT3pCLE1BQU0sS0FDakQsQ0FBQzZDLE9BQU9DLGFBQWEsQ0FBQ3JCLE9BQU9NLGdCQUFnQixHQUM3QztZQUNBLE1BQU0sSUFBSU0sTUFBTTtRQUNsQjtRQUNBLElBQUcsQ0FBQ2xDLE9BQU8sQ0FBQ3dDLFVBQVVBLE9BQU9wQyxRQUFRLEtBQUtrQixPQUFPTSxnQkFBZ0IsRUFBRTtZQUNqRSxNQUFNLElBQUlNLE1BQU07UUFDbEI7UUFDQSxJQUNFSyxPQUFPSyxZQUFZLENBQUNDLFdBQVcsS0FBS0wsT0FBT1AsTUFBTSxJQUNoRFgsQ0FBQUEsT0FBT08sSUFBSSxLQUFLLFdBQVdQLE9BQU96QixNQUFNLEtBQUssUUFBTyxHQUNyRDtZQUNBLE1BQU0sSUFBSXFDLE1BQU07UUFDbEI7UUFDQSxNQUFNWSxPQUFPLE1BQU1wRCxHQUFHK0IsR0FBRyxDQUE0QyxTQUFTZSxPQUFPUCxNQUFNO1FBQzNGLElBQUdYLE9BQU96QixNQUFNLEtBQUssWUFBYSxDQUFBLENBQUNpRCxNQUFNQyxVQUFVLENBQUNELEtBQUtFLGFBQWEsQUFBRCxHQUFJO1lBQ3ZFLE1BQU0sSUFBSWQsTUFBTTtRQUNsQjtRQUNBLE1BQU1lLFFBQVEsTUFBTXhELGtCQUFrQkMsSUFBSUM7UUFDMUMsTUFBTXVELFlBQVlELFFBQVFQLE9BQU9wQixPQUFPekIsTUFBTSxLQUFLLFlBQVk2QyxPQUFPRixPQUFPM0MsTUFBTSxLQUFLO1FBQ3hGLE1BQU1zRCxVQUFVLE1BQU16RCxHQUFHK0IsR0FBRyxDQUFtQyx1QkFBdUI5QjtRQUN0RixJQUFHdUQsWUFBWUQsU0FBU0MsWUFBWSxNQUFNQyxTQUFTQyxNQUFNO1lBQ3ZELElBQUdELFFBQVF0RCxNQUFNLEtBQUssVUFBVTtnQkFDOUIsTUFBTSxJQUFJcUMsTUFBTTtZQUNsQjtZQUNBLE1BQU1iLGtCQUFrQjNCLElBQUlNLEtBQUtzQixRQUFRVCxLQUFLQyxHQUFHLENBQUMsR0FBR29DLFlBQVk7UUFDbkU7UUFDQSxNQUFNbEIsTUFBTUQsS0FBS0MsR0FBRztRQUNwQixNQUFNcUIsVUFBVTtZQUNkLEdBQUdiLE1BQU07WUFDVHBDLFVBQVVvQyxPQUFPcEMsUUFBUSxHQUFHO1lBQzVCeUIsTUFBTVAsT0FBT08sSUFBSTtZQUNqQmhDLFFBQVF5QixPQUFPekIsTUFBTTtZQUNyQlMsV0FBVzBCO1FBQ2I7UUFDQSxNQUFNdEMsR0FBR1csR0FBRyxDQUFDLDJCQUEyQm1DLE9BQU9MLElBQUksRUFBRWtCLFNBQVNiO1FBQzlELE1BQU16QyxnQkFBZ0JMLElBQUlNLEtBQUtrRCxXQUFXbEIsS0FBS2lCO1FBQy9DLE9BQU9JO0lBQ1QsR0FBRztBQVVMLE9BQU8sTUFBTUMsMkJBQTJCLENBQ3RDakIsU0FDQTFDLGdCQUNBNEQsa0JBRUFoRSxxQkFBcUI4QyxTQUFTQyxXQUFXLENBQUMsT0FBTzVDO1FBQy9DLE1BQU0sRUFBQ2tELFlBQVksRUFBQyxHQUFHLE1BQU16RCxnQ0FBZ0NPLElBQUkyQyxTQUFTMUMsZ0JBQWdCO1FBQzFGLE1BQU02RCxZQUFZLE1BQU05RCxHQUFHK0IsR0FBRyxDQUM1QiwyQkFDQW5DLGdCQUFnQkssZ0JBQWdCSCxrQkFBa0IrRDtRQUVwRCxJQUFHLENBQUNDLGFBQWFBLFVBQVUzRCxNQUFNLEtBQUssWUFBWTBELG9CQUFvQlgsYUFBYUMsV0FBVyxFQUFFO1lBQzlGLE1BQU0sSUFBSVgsTUFBTTtRQUNsQjtRQUNBLE1BQU11QixhQUFhcEU7UUFDbkIsTUFBTUssR0FBR1csR0FBRyxDQUFDLDhCQUE4Qm9ELFlBQVk7WUFDckQzQixXQUFXQyxLQUFLQyxHQUFHLEtBQU0sS0FBSztZQUM5QnJDO1lBQ0FrRCxhQUFhRCxhQUFhQyxXQUFXO1lBQ3JDVTtZQUNBbkQsVUFBVXdDLGFBQWF4QyxRQUFRO1lBQy9Cc0IsTUFBTTtRQUNSO1FBQ0EsT0FBTztZQUFDK0I7UUFBVTtJQUNwQixHQUFHO0FBRUwsT0FBTyxNQUFNQywwQkFBMEIsQ0FBQ3JCLFNBQXFCb0IsYUFDM0RsRSxxQkFBcUI4QyxTQUFTQyxXQUFXLENBQUMsT0FBTzVDO1FBQy9DLE1BQU1pRSxXQUFXLE1BQU1qRSxHQUFHK0IsR0FBRyxDQUFXLDhCQUE4QmpDLGtCQUFrQmlFO1FBQ3hGLElBQ0UsQ0FBQ0UsWUFDREEsU0FBU2pDLElBQUksSUFDYmlDLFNBQVM3QixTQUFTLElBQUlDLEtBQUtDLEdBQUcsTUFDOUIyQixTQUFTSixlQUFlLEtBQUtuRSxtQkFBbUJpRCxVQUNoRDtZQUNBLE1BQU0sSUFBSUgsTUFBTTtRQUNsQjtRQUNBLE1BQU1LLFNBQVMsTUFBTXBELGdDQUFnQ08sSUFBSTJDLFNBQVNzQixTQUFTaEUsY0FBYyxFQUFFO1FBQzNGLE1BQU1LLE1BQU0sTUFBTU4sR0FBRytCLEdBQUcsQ0FBZSxpQkFBaUJrQyxTQUFTaEUsY0FBYztRQUMvRSxNQUFNNkMsU0FBUyxNQUFNOUMsR0FBRytCLEdBQUcsQ0FDekIsMkJBQ0FuQyxnQkFBZ0JxRSxTQUFTaEUsY0FBYyxFQUFFNEMsT0FBT04sTUFBTTtRQUV4RCxJQUFHLENBQUNqQyxPQUFPLENBQUN3QyxVQUFVeEMsSUFBSTZDLFdBQVcsS0FBS2MsU0FBU2QsV0FBVyxJQUFJN0MsSUFBSUksUUFBUSxLQUFLdUQsU0FBU3ZELFFBQVEsRUFBRTtZQUNwRyxNQUFNLElBQUk4QixNQUFNO1FBQ2xCO1FBQ0EsTUFBTUYsTUFBTUQsS0FBS0MsR0FBRztRQUNwQixNQUFNcUIsVUFBVTtZQUFDLEdBQUdyRCxHQUFHO1lBQUU2QyxhQUFhTixPQUFPTixNQUFNO1lBQUU3QixVQUFVSixJQUFJSSxRQUFRLEdBQUc7WUFBR0UsV0FBVzBCO1FBQUc7UUFDL0YsTUFBTXRDLEdBQUdXLEdBQUcsQ0FBQyxpQkFBaUJMLElBQUltQyxJQUFJLEVBQUVrQixTQUFTckQ7UUFDakQsTUFBTU4sR0FBR1csR0FBRyxDQUNWLDJCQUNBbUMsT0FBT0wsSUFBSSxFQUNYO1lBQUMsR0FBR0ssTUFBTTtZQUFFcEMsVUFBVW9DLE9BQU9wQyxRQUFRLEdBQUc7WUFBR3lCLE1BQU07WUFBU3ZCLFdBQVcwQjtRQUFHLEdBQ3hFUTtRQUVGLE1BQU05QyxHQUFHVyxHQUFHLENBQUMsOEJBQThCc0QsU0FBU3hCLElBQUksRUFBRTtZQUFDLEdBQUd3QixRQUFRO1lBQUVqQyxNQUFNO1FBQUksR0FBR2lDO1FBQ3JGLE1BQU1iLE9BQU8sTUFBTXBELEdBQUcrQixHQUFHLENBQUMsU0FBU2MsT0FBT04sTUFBTTtRQUNoRCxJQUFHLENBQUNhLE1BQU07WUFDUixNQUFNLElBQUlaLE1BQU07UUFDbEI7UUFDQSxNQUFNeEMsR0FBR1csR0FBRyxDQUFDLFNBQVNrQyxPQUFPTixNQUFNLEVBQUU7WUFBQyxHQUFHYSxJQUFJO1lBQUVjLHFCQUFxQjtRQUFJLEdBQUdkO1FBQzNFLE9BQU9PO0lBQ1QsR0FBRztBQVdMLE9BQU8sTUFBTVEsMkJBQTJCLENBQ3RDeEIsU0FDQTFDLGdCQUNBbUUsT0FDQUMsOEJBRUF4RSxxQkFBcUI4QyxTQUFTQyxXQUFXLENBQUMsT0FBTzVDO1FBQy9DLE1BQU02QyxTQUFTLE1BQU1wRCxnQ0FBZ0NPLElBQUkyQyxTQUFTMUMsZ0JBQWdCO1FBQ2xGLE1BQU1xRSxhQUFhRixNQUFNRyxJQUFJLEdBQUdDLFdBQVc7UUFDM0MsSUFBRyxDQUFDLDZCQUE2QkMsSUFBSSxDQUFDSCxlQUFlLENBQUNELDZCQUE2QjtZQUNqRixNQUFNLElBQUk3QixNQUFNO1FBQ2xCO1FBQ0EsTUFBTWtDLFdBQVcsQUFDZixDQUFBLE1BQU0xRSxHQUFHRSxJQUFJLENBQWEsMkJBQTJCO1lBQUNrRSxPQUFPRTtZQUFZckU7UUFBYyxFQUFDLEVBQ3hGQyxJQUFJLENBQUMsQ0FBQ3lFLGFBQWUsQ0FBQ0EsV0FBVzNDLElBQUksSUFBSSxDQUFDMkMsV0FBV0MsT0FBTyxJQUFJRCxXQUFXdkMsU0FBUyxHQUFHQyxLQUFLQyxHQUFHO1FBQ2pHLElBQUdvQyxVQUFVO1lBQ1gsTUFBTSxJQUFJbEMsTUFBTTtRQUNsQjtRQUNBLE1BQU1xQyxlQUFlbEY7UUFDckIsTUFBTW1GLFFBQVF0RixZQUFZLElBQUl1RixRQUFRLENBQUM7UUFDdkMsTUFBTS9FLEdBQUdXLEdBQUcsQ0FBQywyQkFBMkJrRSxjQUFjO1lBQ3BEVCxPQUFPRTtZQUNQbEMsV0FBV0MsS0FBS0MsR0FBRyxLQUFNLElBQUk7WUFDN0IwQyxXQUFXbkMsT0FBT04sTUFBTTtZQUN4QnRDO1lBQ0EyRSxTQUFTO1lBQ1RLLFdBQVdyRixnQkFBZ0JrRjtZQUMzQjlDLE1BQU07UUFDUjtRQUNBLE9BQU87WUFBQzZDO1lBQWNDO1FBQUs7SUFDN0IsR0FBRztBQUVMLE9BQU8sTUFBTUksK0JBQStCLENBQzFDdkMsU0FDQWtDLGNBQ0FDLFFBRUFqRixxQkFBcUI4QyxTQUFTQyxXQUFXLENBQUMsT0FBTzVDO1FBQy9DLE1BQU11QyxTQUFTN0MsbUJBQW1CaUQ7UUFDbEMsTUFBTWdDLGFBQWEsTUFBTTNFLEdBQUcrQixHQUFHLENBQWEsMkJBQTJCakMsa0JBQWtCK0U7UUFDekYsTUFBTXpCLE9BQU8sTUFBTXBELEdBQUcrQixHQUFHLENBQTJELFNBQVNRO1FBQzdGLElBQ0UsQ0FBQ29DLGNBQ0RBLFdBQVdDLE9BQU8sSUFDbEJELFdBQVczQyxJQUFJLElBQ2YyQyxXQUFXdkMsU0FBUyxJQUFJQyxLQUFLQyxHQUFHLE1BQ2hDcUMsV0FBV00sU0FBUyxLQUFLckYsZ0JBQWdCa0YsVUFDekMsQ0FBQzFCLE1BQU1DLFVBQ1AsQ0FBQ0QsS0FBS0UsYUFBYSxJQUNuQkYsS0FBS2dCLEtBQUssQ0FBQ0ksV0FBVyxPQUFPRyxXQUFXUCxLQUFLLEVBQzdDO1lBQ0EsTUFBTSxJQUFJNUIsTUFBTTtRQUNsQjtRQUNBLE1BQU0vQyxnQ0FDSk8sSUFDQTtZQUFDbUYsU0FBUztnQkFBQzVDLFFBQVFvQyxXQUFXSyxTQUFTO1lBQUE7UUFBQyxHQUN4Q0wsV0FBVzFFLGNBQWMsRUFDekI7UUFFRixNQUFNSyxNQUFNLE1BQU1OLEdBQUcrQixHQUFHLENBQWUsaUJBQWlCNEMsV0FBVzFFLGNBQWM7UUFDakYsSUFBRyxDQUFDSyxLQUFLO1lBQ1AsTUFBTSxJQUFJa0MsTUFBTTtRQUNsQjtRQUNBLE1BQU00QyxNQUFNeEYsZ0JBQWdCK0UsV0FBVzFFLGNBQWMsRUFBRXNDO1FBQ3ZELE1BQU04QyxXQUFXLE1BQU1yRixHQUFHK0IsR0FBRyxDQUF5QiwyQkFBMkJxRDtRQUNqRixJQUFHQyxVQUFVbEYsV0FBVyxVQUFVO1lBQ2hDLE1BQU0sSUFBSXFDLE1BQU07UUFDbEI7UUFDQSxNQUFNRixNQUFNRCxLQUFLQyxHQUFHO1FBQ3BCLE1BQU1RLFNBQWlDO1lBQ3JDd0MsV0FBV0QsVUFBVUMsYUFBYWhEO1lBQ2xDckMsZ0JBQWdCSyxJQUFJTCxjQUFjO1lBQ2xDUyxVQUFVLEFBQUMyRSxDQUFBQSxVQUFVM0UsWUFBWSxDQUFBLElBQUs7WUFDdEN5QixNQUFNa0QsVUFBVWxELFFBQVE7WUFDeEJoQyxRQUFRO1lBQ1JTLFdBQVcwQjtZQUNYQztRQUNGO1FBQ0EsTUFBTWdELGdCQUFnQixNQUFNeEYsa0JBQWtCQyxJQUFJTSxJQUFJTCxjQUFjO1FBQ3BFLE1BQU13RCxVQUFVLE1BQU16RCxHQUFHK0IsR0FBRyxDQUFtQyx1QkFBdUJ6QixJQUFJTCxjQUFjO1FBQ3hHLElBQUdzRixpQkFBaUIsTUFBTTlCLFNBQVNDLFFBQVFELFFBQVF0RCxNQUFNLEtBQUssVUFBVTtZQUN0RSxNQUFNLElBQUlxQyxNQUFNO1FBQ2xCO1FBQ0EsTUFBTXhDLEdBQUdXLEdBQUcsQ0FBQywyQkFBMkJ5RSxLQUFLdEMsUUFBUXVDO1FBQ3JELE1BQU1yRixHQUFHVyxHQUFHLENBQUMsU0FBUzRCLFFBQVE7WUFBQyxHQUFHYSxJQUFJO1lBQUVjLHFCQUFxQjtRQUFJLEdBQUdkO1FBQ3BFLE1BQU0vQyxnQkFBZ0JMLElBQUlNLEtBQUtpRixnQkFBZ0IsR0FBR2pELEtBQUtpRDtRQUN2RCxNQUFNdkYsR0FBR1csR0FBRyxDQUFDLDJCQUEyQmtFLGNBQWM7WUFBQyxHQUFHRixVQUFVO1lBQUUzQyxNQUFNO1FBQUksR0FBRzJDO1FBQ25GLE9BQU83QjtJQUNULEdBQUc7QUFFTCxPQUFPLE1BQU0wQywrQkFBK0IsQ0FBQzdDLFNBQXFCa0MsZUFDaEVoRixxQkFBcUI4QyxTQUFTQyxXQUFXLENBQUMsT0FBTzVDO1FBQy9DLE1BQU0yRSxhQUFhLE1BQU0zRSxHQUFHK0IsR0FBRyxDQUFhLDJCQUEyQmpDLGtCQUFrQitFO1FBQ3pGLElBQUcsQ0FBQ0YsWUFBWTtZQUNkLE1BQU0sSUFBSW5DLE1BQU07UUFDbEI7UUFDQSxNQUFNL0MsZ0NBQWdDTyxJQUFJMkMsU0FBU2dDLFdBQVcxRSxjQUFjLEVBQUU7UUFDOUUsTUFBTUQsR0FBR1csR0FBRyxDQUFDLDJCQUEyQmtFLGNBQWM7WUFBQyxHQUFHRixVQUFVO1lBQUVDLFNBQVM7UUFBSSxHQUFHRDtJQUN4RixHQUFHO0FBRUwsT0FBTyxNQUFNYywwQ0FBMEMsQ0FBQzlDLFNBQXFCSixTQUMzRTFDLHFCQUFxQjhDLFNBQVNDLFdBQVcsQ0FBQyxPQUFPNUM7UUFDL0MsSUFDRSxBQUNFLENBQUEsTUFBTUEsR0FBR0UsSUFBSSxDQUFlLGlCQUFpQjtZQUMzQ2lELGFBQWFyRCxrQkFBa0J5QyxPQUFPbUQsT0FBTyxDQUFDLFlBQVk7UUFDNUQsRUFBQyxFQUNEdEYsTUFBTSxFQUNSO1lBQ0EsTUFBTSxJQUFJb0MsTUFBTTtRQUNsQjtJQUNGLEdBQUc7QUFFTCxPQUFPLE1BQU1tRCwwQkFBMEIsQ0FDckNoRCxTQUNBMUMsaUJBRUFKLHFCQUFxQjhDLFNBQVNDLFdBQVcsQ0FBQyxPQUFPNUM7UUFDL0MsTUFBTVAsZ0NBQWdDTyxJQUFJMkMsU0FBUzFDLGdCQUFnQjtRQUNuRSxPQUFPRCxHQUFHRSxJQUFJLENBQXlCLDJCQUEyQjtZQUFDRDtRQUFjO0lBQ25GLEdBQUcsQ0FDTCwrREFBK0QsSUFDL0QsNkVBQTZFIn0=
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3Ly5jb2RleC93b3JrdHJlZXMvdmF1bHQtczMtcmVsZWFzZS9yZWFrdG9yL3BhY2thZ2VzL3JlYWt0b3Ivc3JjL29yZ2FuaXphdGlvbnMvbWVtYmVyc2hpcC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3JhbmRvbUJ5dGVzfSBmcm9tICdub2RlOmNyeXB0byc7XG5cbmltcG9ydCB7b3JnYW5pemF0aW9uQWNjZXNzSW5UcmFuc2FjdGlvbiwgb3JnYW5pemF0aW9uVXNlcklkfSBmcm9tICcuL2F1dGhvcml6YXRpb24uanMnO1xuaW1wb3J0IHtcbiAgbmV3T3JnYW5pemF0aW9uSWQsXG4gIG9yZ2FuaXphdGlvbktleSxcbiAgb3JnYW5pemF0aW9uU3RvcmVGb3IsXG4gIHJlcXVpcmVJZGVudGlmaWVyLFxuICB0eXBlIE9yZ2FuaXphdGlvblRyYW5zYWN0aW9uLFxuICB0eXBlIFN0b3JlZFxufSBmcm9tICcuL3N0b3JlLmpzJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge1xuICBCaWxsaW5nSm9iLFxuICBNZW1iZXJzaGlwQ2hhbmdlLFxuICBPcmdhbml6YXRpb24sXG4gIE9yZ2FuaXphdGlvbk1lbWJlcnNoaXAsXG4gIFNlYXRDaGFuZ2VRdW90ZVxufSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGNvbnN0IGFjdGl2ZU1lbWJlckNvdW50ID0gYXN5bmMgKFxuICB0eDogT3JnYW5pemF0aW9uVHJhbnNhY3Rpb24sXG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmdcbik6IFByb21pc2U8bnVtYmVyPiA9PlxuICAoYXdhaXQgdHguZmluZDxPcmdhbml6YXRpb25NZW1iZXJzaGlwPignb3JnYW5pemF0aW9uTWVtYmVyc2hpcHMnLCB7b3JnYW5pemF0aW9uSWQsIHN0YXR1czogJ2FjdGl2ZSd9KSlcbiAgICAubGVuZ3RoO1xuXG5leHBvcnQgY29uc3Qgd3JpdGVTZWF0Q2hhbmdlID0gYXN5bmMgKFxuICB0eDogT3JnYW5pemF0aW9uVHJhbnNhY3Rpb24sXG4gIG9yZzogU3RvcmVkPE9yZ2FuaXphdGlvbj4sXG4gIHF1YW50aXR5OiBudW1iZXIsXG4gIGVmZmVjdGl2ZUF0OiBudW1iZXIsXG4gIHByZXZpb3VzUXVhbnRpdHk6IG51bWJlclxuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHJldmlzaW9uID0gb3JnLnJldmlzaW9uICsgMTtcbiAgYXdhaXQgdHgucHV0KCdvcmdhbml6YXRpb25zJywgb3JnLm9yZ2FuaXphdGlvbklkLCB7Li4ub3JnLCByZXZpc2lvbiwgdXBkYXRlZEF0OiBlZmZlY3RpdmVBdH0sIG9yZyk7XG4gIGNvbnN0IGpvYklkID0gb3JnYW5pemF0aW9uS2V5KG9yZy5vcmdhbml6YXRpb25JZCwgU3RyaW5nKHJldmlzaW9uKSk7XG4gIGNvbnN0IGpvYjogQmlsbGluZ0pvYiA9IHtcbiAgICBhdHRlbXB0czogMCxcbiAgICBkZXNpcmVkOiB7ZXh0cmFTZWF0czogTWF0aC5tYXgoMCwgcXVhbnRpdHkgLSAxMCksIHByZXZpb3VzRXh0cmFTZWF0czogTWF0aC5tYXgoMCwgcHJldmlvdXNRdWFudGl0eSAtIDEwKX0sXG4gICAgZWZmZWN0aXZlQXQsXG4gICAgam9iSWQsXG4gICAga2luZDogJ3NlYXRzJyxcbiAgICBsZWFzZUV4cGlyZXM6IDAsXG4gICAgb3JnYW5pemF0aW9uSWQ6IG9yZy5vcmdhbml6YXRpb25JZCxcbiAgICBvd25lcjogJycsXG4gICAgcHJpY2VWZXJzaW9uOiAnMjAyNi0xMC12MScsXG4gICAgc2VxdWVuY2U6IHJldmlzaW9uLFxuICAgIHN0YXR1czogJ3BlbmRpbmcnXG4gIH07XG4gIGF3YWl0IHR4LnB1dCgnb3JnYW5pemF0aW9uQmlsbGluZ0pvYnMnLCBqb2JJZCwgam9iKTtcbn07XG5cbmV4cG9ydCBjb25zdCB2YWxpZGF0ZVNlYXRRdW90ZSA9IGFzeW5jIChcbiAgdHg6IE9yZ2FuaXphdGlvblRyYW5zYWN0aW9uLFxuICBvcmc6IE9yZ2FuaXphdGlvbixcbiAgY2hhbmdlOiBNZW1iZXJzaGlwQ2hhbmdlLFxuICBxdWFudGl0eTogbnVtYmVyXG4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgcXVvdGUgPSBjaGFuZ2UuY29uZmlybWVkUXVvdGVJZFxuICAgID8gYXdhaXQgdHguZ2V0PFxuICAgICAgICBTZWF0Q2hhbmdlUXVvdGUgJiB7XG4gICAgICAgICAgZXhwZWN0ZWRSZXZpc2lvbjogbnVtYmVyO1xuICAgICAgICAgIG9yZ2FuaXphdGlvbklkOiBzdHJpbmc7XG4gICAgICAgICAgcm9sZTogc3RyaW5nO1xuICAgICAgICAgIHVzZXJJZDogc3RyaW5nO1xuICAgICAgICAgIHN0YXR1czogc3RyaW5nO1xuICAgICAgICAgIHVzZWQ6IGJvb2xlYW47XG4gICAgICAgIH1cbiAgICA+KCdvcmdhbml6YXRpb25CaWxsaW5nUXVvdGVzJywgY2hhbmdlLmNvbmZpcm1lZFF1b3RlSWQpXG4gICAgOiBudWxsO1xuICBpZihcbiAgICAhcXVvdGUgfHxcbiAgICBxdW90ZS51c2VkIHx8XG4gICAgcXVvdGUub3JnYW5pemF0aW9uUmV2aXNpb24gIT09IG9yZy5yZXZpc2lvbiB8fFxuICAgIHF1b3RlLm9yZ2FuaXphdGlvbklkICE9PSBvcmcub3JnYW5pemF0aW9uSWQgfHxcbiAgICBxdW90ZS5leHBlY3RlZFJldmlzaW9uICE9PSBjaGFuZ2UuZXhwZWN0ZWRSZXZpc2lvbiB8fFxuICAgIHF1b3RlLnJvbGUgIT09IGNoYW5nZS5yb2xlIHx8XG4gICAgcXVvdGUuZXhwaXJlc0F0IDw9IERhdGUubm93KCkgfHxcbiAgICBxdW90ZS51c2VySWQgIT09IGNoYW5nZS51c2VySWQgfHxcbiAgICBxdW90ZS5zdGF0dXMgIT09IGNoYW5nZS5zdGF0dXMgfHxcbiAgICBxdW90ZS5xdWFudGl0eSAhPT0gcXVhbnRpdHlcbiAgKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdzZWF0X3F1b3RlX3JlcXVpcmVkJyk7XG4gIH1cbiAgYXdhaXQgdHgucHV0KCdvcmdhbml6YXRpb25CaWxsaW5nUXVvdGVzJywgcXVvdGUuX2tleSwgey4uLnF1b3RlLCB1c2VkOiB0cnVlfSwgcXVvdGUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNoYW5nZU9yZ2FuaXphdGlvbk1lbWJlciA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgb3JnYW5pemF0aW9uSWQ6IHN0cmluZyxcbiAgY2hhbmdlOiBNZW1iZXJzaGlwQ2hhbmdlXG4pOiBQcm9taXNlPE9yZ2FuaXphdGlvbk1lbWJlcnNoaXA+ID0+XG4gIG9yZ2FuaXphdGlvblN0b3JlRm9yKGNvbnRleHQpLnRyYW5zYWN0aW9uKGFzeW5jICh0eCkgPT4ge1xuICAgIGNvbnN0IGFjY2VzcyA9IGF3YWl0IG9yZ2FuaXphdGlvbkFjY2Vzc0luVHJhbnNhY3Rpb24odHgsIGNvbnRleHQsIG9yZ2FuaXphdGlvbklkLCAnYWRtaW4nKTtcbiAgICBjb25zdCBvcmcgPSBhd2FpdCB0eC5nZXQ8T3JnYW5pemF0aW9uPignb3JnYW5pemF0aW9ucycsIG9yZ2FuaXphdGlvbklkKTtcbiAgICBjb25zdCBtZW1iZXIgPSBhd2FpdCB0eC5nZXQ8T3JnYW5pemF0aW9uTWVtYmVyc2hpcD4oXG4gICAgICAnb3JnYW5pemF0aW9uTWVtYmVyc2hpcHMnLFxuICAgICAgb3JnYW5pemF0aW9uS2V5KG9yZ2FuaXphdGlvbklkLCByZXF1aXJlSWRlbnRpZmllcihjaGFuZ2UudXNlcklkKSlcbiAgICApO1xuICAgIGlmKFxuICAgICAgIVsnYWRtaW4nLCAnbWVtYmVyJ10uaW5jbHVkZXMoY2hhbmdlLnJvbGUpIHx8XG4gICAgICAhWydhY3RpdmUnLCAnZGVhY3RpdmF0ZWQnXS5pbmNsdWRlcyhjaGFuZ2Uuc3RhdHVzKSB8fFxuICAgICAgIU51bWJlci5pc1NhZmVJbnRlZ2VyKGNoYW5nZS5leHBlY3RlZFJldmlzaW9uKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX21lbWJlcnNoaXAnKTtcbiAgICB9XG4gICAgaWYoIW9yZyB8fCAhbWVtYmVyIHx8IG1lbWJlci5yZXZpc2lvbiAhPT0gY2hhbmdlLmV4cGVjdGVkUmV2aXNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigncmV2aXNpb25fY29uZmxpY3QnKTtcbiAgICB9XG4gICAgaWYoXG4gICAgICBhY2Nlc3Mub3JnYW5pemF0aW9uLm93bmVyVXNlcklkID09PSBtZW1iZXIudXNlcklkICYmXG4gICAgICAoY2hhbmdlLnJvbGUgIT09ICdhZG1pbicgfHwgY2hhbmdlLnN0YXR1cyAhPT0gJ2FjdGl2ZScpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ293bmVyc2hpcF90cmFuc2Zlcl9yZXF1aXJlZCcpO1xuICAgIH1cbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdHguZ2V0PHthY3RpdmU6IGJvb2xlYW47IHZlcmlmaWVkRW1haWw6IGJvb2xlYW59PigndXNlcnMnLCBtZW1iZXIudXNlcklkKTtcbiAgICBpZihjaGFuZ2Uuc3RhdHVzID09PSAnYWN0aXZlJyAmJiAoIXVzZXI/LmFjdGl2ZSB8fCAhdXNlci52ZXJpZmllZEVtYWlsKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd2ZXJpZmllZF9hY3RpdmVfdXNlcl9yZXF1aXJlZCcpO1xuICAgIH1cbiAgICBjb25zdCBjb3VudCA9IGF3YWl0IGFjdGl2ZU1lbWJlckNvdW50KHR4LCBvcmdhbml6YXRpb25JZCk7XG4gICAgY29uc3QgbmV4dENvdW50ID0gY291bnQgKyBOdW1iZXIoY2hhbmdlLnN0YXR1cyA9PT0gJ2FjdGl2ZScpIC0gTnVtYmVyKG1lbWJlci5zdGF0dXMgPT09ICdhY3RpdmUnKTtcbiAgICBjb25zdCBiaWxsaW5nID0gYXdhaXQgdHguZ2V0PHtwbGFuPzogc3RyaW5nOyBzdGF0dXM/OiBzdHJpbmd9Pignb3JnYW5pemF0aW9uQmlsbGluZycsIG9yZ2FuaXphdGlvbklkKTtcbiAgICBpZihuZXh0Q291bnQgPiBjb3VudCAmJiBuZXh0Q291bnQgPiAxMCAmJiBiaWxsaW5nPy5wbGFuKSB7XG4gICAgICBpZihiaWxsaW5nLnN0YXR1cyAhPT0gJ2FjdGl2ZScpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX25vdF9yZWFkeScpO1xuICAgICAgfVxuICAgICAgYXdhaXQgdmFsaWRhdGVTZWF0UXVvdGUodHgsIG9yZywgY2hhbmdlLCBNYXRoLm1heCgwLCBuZXh0Q291bnQgLSAxMCkpO1xuICAgIH1cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IHVwZGF0ZWQgPSB7XG4gICAgICAuLi5tZW1iZXIsXG4gICAgICByZXZpc2lvbjogbWVtYmVyLnJldmlzaW9uICsgMSxcbiAgICAgIHJvbGU6IGNoYW5nZS5yb2xlLFxuICAgICAgc3RhdHVzOiBjaGFuZ2Uuc3RhdHVzLFxuICAgICAgdXBkYXRlZEF0OiBub3dcbiAgICB9O1xuICAgIGF3YWl0IHR4LnB1dCgnb3JnYW5pemF0aW9uTWVtYmVyc2hpcHMnLCBtZW1iZXIuX2tleSwgdXBkYXRlZCwgbWVtYmVyKTtcbiAgICBhd2FpdCB3cml0ZVNlYXRDaGFuZ2UodHgsIG9yZywgbmV4dENvdW50LCBub3csIGNvdW50KTtcbiAgICByZXR1cm4gdXBkYXRlZDtcbiAgfSk7XG5cbnR5cGUgVHJhbnNmZXIgPSB7XG4gIGV4cGlyZXNBdDogbnVtYmVyO1xuICBvcmdhbml6YXRpb25JZDogc3RyaW5nO1xuICBvd25lclVzZXJJZDogc3RyaW5nO1xuICByZWNpcGllbnRVc2VySWQ6IHN0cmluZztcbiAgcmV2aXNpb246IG51bWJlcjtcbiAgdXNlZDogYm9vbGVhbjtcbn07XG5leHBvcnQgY29uc3QgcmVxdWVzdE93bmVyc2hpcFRyYW5zZmVyID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBvcmdhbml6YXRpb25JZDogc3RyaW5nLFxuICByZWNpcGllbnRVc2VySWQ6IHN0cmluZ1xuKTogUHJvbWlzZTx7dHJhbnNmZXJJZDogc3RyaW5nfT4gPT5cbiAgb3JnYW5pemF0aW9uU3RvcmVGb3IoY29udGV4dCkudHJhbnNhY3Rpb24oYXN5bmMgKHR4KSA9PiB7XG4gICAgY29uc3Qge29yZ2FuaXphdGlvbn0gPSBhd2FpdCBvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uKHR4LCBjb250ZXh0LCBvcmdhbml6YXRpb25JZCwgJ293bmVyJyk7XG4gICAgY29uc3QgcmVjaXBpZW50ID0gYXdhaXQgdHguZ2V0PE9yZ2FuaXphdGlvbk1lbWJlcnNoaXA+KFxuICAgICAgJ29yZ2FuaXphdGlvbk1lbWJlcnNoaXBzJyxcbiAgICAgIG9yZ2FuaXphdGlvbktleShvcmdhbml6YXRpb25JZCwgcmVxdWlyZUlkZW50aWZpZXIocmVjaXBpZW50VXNlcklkKSlcbiAgICApO1xuICAgIGlmKCFyZWNpcGllbnQgfHwgcmVjaXBpZW50LnN0YXR1cyAhPT0gJ2FjdGl2ZScgfHwgcmVjaXBpZW50VXNlcklkID09PSBvcmdhbml6YXRpb24ub3duZXJVc2VySWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignYWN0aXZlX3JlY2lwaWVudF9yZXF1aXJlZCcpO1xuICAgIH1cbiAgICBjb25zdCB0cmFuc2ZlcklkID0gbmV3T3JnYW5pemF0aW9uSWQoKTtcbiAgICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbk93bmVyVHJhbnNmZXJzJywgdHJhbnNmZXJJZCwge1xuICAgICAgZXhwaXJlc0F0OiBEYXRlLm5vdygpICsgKDQ4ICogMzYwMDAwMCksXG4gICAgICBvcmdhbml6YXRpb25JZCxcbiAgICAgIG93bmVyVXNlcklkOiBvcmdhbml6YXRpb24ub3duZXJVc2VySWQsXG4gICAgICByZWNpcGllbnRVc2VySWQsXG4gICAgICByZXZpc2lvbjogb3JnYW5pemF0aW9uLnJldmlzaW9uLFxuICAgICAgdXNlZDogZmFsc2VcbiAgICB9KTtcbiAgICByZXR1cm4ge3RyYW5zZmVySWR9O1xuICB9KTtcblxuZXhwb3J0IGNvbnN0IGFjY2VwdE93bmVyc2hpcFRyYW5zZmVyID0gKGNvbnRleHQ6IEFwaUNvbnRleHQsIHRyYW5zZmVySWQ6IHN0cmluZyk6IFByb21pc2U8T3JnYW5pemF0aW9uPiA9PlxuICBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgICBjb25zdCB0cmFuc2ZlciA9IGF3YWl0IHR4LmdldDxUcmFuc2Zlcj4oJ29yZ2FuaXphdGlvbk93bmVyVHJhbnNmZXJzJywgcmVxdWlyZUlkZW50aWZpZXIodHJhbnNmZXJJZCkpO1xuICAgIGlmKFxuICAgICAgIXRyYW5zZmVyIHx8XG4gICAgICB0cmFuc2Zlci51c2VkIHx8XG4gICAgICB0cmFuc2Zlci5leHBpcmVzQXQgPD0gRGF0ZS5ub3coKSB8fFxuICAgICAgdHJhbnNmZXIucmVjaXBpZW50VXNlcklkICE9PSBvcmdhbml6YXRpb25Vc2VySWQoY29udGV4dClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52YWxpZF90cmFuc2ZlcicpO1xuICAgIH1cbiAgICBjb25zdCBhY2Nlc3MgPSBhd2FpdCBvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uKHR4LCBjb250ZXh0LCB0cmFuc2Zlci5vcmdhbml6YXRpb25JZCwgJ21lbWJlcicpO1xuICAgIGNvbnN0IG9yZyA9IGF3YWl0IHR4LmdldDxPcmdhbml6YXRpb24+KCdvcmdhbml6YXRpb25zJywgdHJhbnNmZXIub3JnYW5pemF0aW9uSWQpO1xuICAgIGNvbnN0IG1lbWJlciA9IGF3YWl0IHR4LmdldDxPcmdhbml6YXRpb25NZW1iZXJzaGlwPihcbiAgICAgICdvcmdhbml6YXRpb25NZW1iZXJzaGlwcycsXG4gICAgICBvcmdhbml6YXRpb25LZXkodHJhbnNmZXIub3JnYW5pemF0aW9uSWQsIGFjY2Vzcy51c2VySWQpXG4gICAgKTtcbiAgICBpZighb3JnIHx8ICFtZW1iZXIgfHwgb3JnLm93bmVyVXNlcklkICE9PSB0cmFuc2Zlci5vd25lclVzZXJJZCB8fCBvcmcucmV2aXNpb24gIT09IHRyYW5zZmVyLnJldmlzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfdHJhbnNmZXInKTtcbiAgICB9XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zdCB1cGRhdGVkID0gey4uLm9yZywgb3duZXJVc2VySWQ6IGFjY2Vzcy51c2VySWQsIHJldmlzaW9uOiBvcmcucmV2aXNpb24gKyAxLCB1cGRhdGVkQXQ6IG5vd307XG4gICAgYXdhaXQgdHgucHV0KCdvcmdhbml6YXRpb25zJywgb3JnLl9rZXksIHVwZGF0ZWQsIG9yZyk7XG4gICAgYXdhaXQgdHgucHV0KFxuICAgICAgJ29yZ2FuaXphdGlvbk1lbWJlcnNoaXBzJyxcbiAgICAgIG1lbWJlci5fa2V5LFxuICAgICAgey4uLm1lbWJlciwgcmV2aXNpb246IG1lbWJlci5yZXZpc2lvbiArIDEsIHJvbGU6ICdhZG1pbicsIHVwZGF0ZWRBdDogbm93fSxcbiAgICAgIG1lbWJlclxuICAgICk7XG4gICAgYXdhaXQgdHgucHV0KCdvcmdhbml6YXRpb25Pd25lclRyYW5zZmVycycsIHRyYW5zZmVyLl9rZXksIHsuLi50cmFuc2ZlciwgdXNlZDogdHJ1ZX0sIHRyYW5zZmVyKTtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdHguZ2V0KCd1c2VycycsIGFjY2Vzcy51c2VySWQpO1xuICAgIGlmKCF1c2VyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ29yZ2FuaXphdGlvbl9zdGF0ZV9pbnZhbGlkJyk7XG4gICAgfVxuICAgIGF3YWl0IHR4LnB1dCgndXNlcnMnLCBhY2Nlc3MudXNlcklkLCB7Li4udXNlciwgb3JnYW5pemF0aW9uQWNjb3VudDogdHJ1ZX0sIHVzZXIpO1xuICAgIHJldHVybiB1cGRhdGVkO1xuICB9KTtcblxudHlwZSBJbnZpdGF0aW9uID0ge1xuICBlbWFpbDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IG51bWJlcjtcbiAgaW52aXRlZEJ5OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmc7XG4gIHJldm9rZWQ6IGJvb2xlYW47XG4gIHRva2VuSGFzaDogc3RyaW5nO1xuICB1c2VkOiBib29sZWFuO1xufTtcbmV4cG9ydCBjb25zdCBpbnZpdGVPcmdhbml6YXRpb25NZW1iZXIgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmcsXG4gIGVtYWlsOiBzdHJpbmcsXG4gIGFjY2VwdHNBZGRpdGlvbmFsU2VhdENoYXJnZTogYm9vbGVhblxuKTogUHJvbWlzZTx7aW52aXRhdGlvbklkOiBzdHJpbmc7IHRva2VuOiBzdHJpbmd9PiA9PlxuICBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgICBjb25zdCBhY2Nlc3MgPSBhd2FpdCBvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uKHR4LCBjb250ZXh0LCBvcmdhbml6YXRpb25JZCwgJ2FkbWluJyk7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IGVtYWlsLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgIGlmKCEvXlteXFxzQF0rQFteXFxzQF0rXFwuW15cXHNAXSskLy50ZXN0KG5vcm1hbGl6ZWQpIHx8ICFhY2NlcHRzQWRkaXRpb25hbFNlYXRDaGFyZ2UpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignaW52aXRhdGlvbl9jaGFyZ2VfZGlzY2xvc3VyZV9yZXF1aXJlZCcpO1xuICAgIH1cbiAgICBjb25zdCBleGlzdGluZyA9IChcbiAgICAgIGF3YWl0IHR4LmZpbmQ8SW52aXRhdGlvbj4oJ29yZ2FuaXphdGlvbkludml0YXRpb25zJywge2VtYWlsOiBub3JtYWxpemVkLCBvcmdhbml6YXRpb25JZH0pXG4gICAgKS5maW5kKChpbnZpdGF0aW9uKSA9PiAhaW52aXRhdGlvbi51c2VkICYmICFpbnZpdGF0aW9uLnJldm9rZWQgJiYgaW52aXRhdGlvbi5leHBpcmVzQXQgPiBEYXRlLm5vdygpKTtcbiAgICBpZihleGlzdGluZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZpdGF0aW9uX2V4aXN0cycpO1xuICAgIH1cbiAgICBjb25zdCBpbnZpdGF0aW9uSWQgPSBuZXdPcmdhbml6YXRpb25JZCgpO1xuICAgIGNvbnN0IHRva2VuID0gcmFuZG9tQnl0ZXMoMzIpLnRvU3RyaW5nKCdiYXNlNjR1cmwnKTtcbiAgICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbkludml0YXRpb25zJywgaW52aXRhdGlvbklkLCB7XG4gICAgICBlbWFpbDogbm9ybWFsaXplZCxcbiAgICAgIGV4cGlyZXNBdDogRGF0ZS5ub3coKSArICg3ICogODY0MDAwMDApLFxuICAgICAgaW52aXRlZEJ5OiBhY2Nlc3MudXNlcklkLFxuICAgICAgb3JnYW5pemF0aW9uSWQsXG4gICAgICByZXZva2VkOiBmYWxzZSxcbiAgICAgIHRva2VuSGFzaDogb3JnYW5pemF0aW9uS2V5KHRva2VuKSxcbiAgICAgIHVzZWQ6IGZhbHNlXG4gICAgfSk7XG4gICAgcmV0dXJuIHtpbnZpdGF0aW9uSWQsIHRva2VufTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBhY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICBpbnZpdGF0aW9uSWQ6IHN0cmluZyxcbiAgdG9rZW46IHN0cmluZ1xuKTogUHJvbWlzZTxPcmdhbml6YXRpb25NZW1iZXJzaGlwPiA9PlxuICBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgICBjb25zdCB1c2VySWQgPSBvcmdhbml6YXRpb25Vc2VySWQoY29udGV4dCk7XG4gICAgY29uc3QgaW52aXRhdGlvbiA9IGF3YWl0IHR4LmdldDxJbnZpdGF0aW9uPignb3JnYW5pemF0aW9uSW52aXRhdGlvbnMnLCByZXF1aXJlSWRlbnRpZmllcihpbnZpdGF0aW9uSWQpKTtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdHguZ2V0PHthY3RpdmU6IGJvb2xlYW47IGVtYWlsOiBzdHJpbmc7IHZlcmlmaWVkRW1haWw6IGJvb2xlYW59PigndXNlcnMnLCB1c2VySWQpO1xuICAgIGlmKFxuICAgICAgIWludml0YXRpb24gfHxcbiAgICAgIGludml0YXRpb24ucmV2b2tlZCB8fFxuICAgICAgaW52aXRhdGlvbi51c2VkIHx8XG4gICAgICBpbnZpdGF0aW9uLmV4cGlyZXNBdCA8PSBEYXRlLm5vdygpIHx8XG4gICAgICBpbnZpdGF0aW9uLnRva2VuSGFzaCAhPT0gb3JnYW5pemF0aW9uS2V5KHRva2VuKSB8fFxuICAgICAgIXVzZXI/LmFjdGl2ZSB8fFxuICAgICAgIXVzZXIudmVyaWZpZWRFbWFpbCB8fFxuICAgICAgdXNlci5lbWFpbC50b0xvd2VyQ2FzZSgpICE9PSBpbnZpdGF0aW9uLmVtYWlsXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFsaWRfaW52aXRhdGlvbicpO1xuICAgIH1cbiAgICBhd2FpdCBvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uKFxuICAgICAgdHgsXG4gICAgICB7c2Vzc2lvbjoge3VzZXJJZDogaW52aXRhdGlvbi5pbnZpdGVkQnl9fSxcbiAgICAgIGludml0YXRpb24ub3JnYW5pemF0aW9uSWQsXG4gICAgICAnYWRtaW4nXG4gICAgKTtcbiAgICBjb25zdCBvcmcgPSBhd2FpdCB0eC5nZXQ8T3JnYW5pemF0aW9uPignb3JnYW5pemF0aW9ucycsIGludml0YXRpb24ub3JnYW5pemF0aW9uSWQpO1xuICAgIGlmKCFvcmcpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignb3JnYW5pemF0aW9uX2FjY2Vzc19kZW5pZWQnKTtcbiAgICB9XG4gICAgY29uc3Qga2V5ID0gb3JnYW5pemF0aW9uS2V5KGludml0YXRpb24ub3JnYW5pemF0aW9uSWQsIHVzZXJJZCk7XG4gICAgY29uc3QgcHJldmlvdXMgPSBhd2FpdCB0eC5nZXQ8T3JnYW5pemF0aW9uTWVtYmVyc2hpcD4oJ29yZ2FuaXphdGlvbk1lbWJlcnNoaXBzJywga2V5KTtcbiAgICBpZihwcmV2aW91cz8uc3RhdHVzID09PSAnYWN0aXZlJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdhbHJlYWR5X2FjdGl2ZScpO1xuICAgIH1cbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IG1lbWJlcjogT3JnYW5pemF0aW9uTWVtYmVyc2hpcCA9IHtcbiAgICAgIGNyZWF0ZWRBdDogcHJldmlvdXM/LmNyZWF0ZWRBdCB8fCBub3csXG4gICAgICBvcmdhbml6YXRpb25JZDogb3JnLm9yZ2FuaXphdGlvbklkLFxuICAgICAgcmV2aXNpb246IChwcmV2aW91cz8ucmV2aXNpb24gfHwgMCkgKyAxLFxuICAgICAgcm9sZTogcHJldmlvdXM/LnJvbGUgfHwgJ21lbWJlcicsXG4gICAgICBzdGF0dXM6ICdhY3RpdmUnLFxuICAgICAgdXBkYXRlZEF0OiBub3csXG4gICAgICB1c2VySWRcbiAgICB9O1xuICAgIGNvbnN0IHByZXZpb3VzQ291bnQgPSBhd2FpdCBhY3RpdmVNZW1iZXJDb3VudCh0eCwgb3JnLm9yZ2FuaXphdGlvbklkKTtcbiAgICBjb25zdCBiaWxsaW5nID0gYXdhaXQgdHguZ2V0PHtwbGFuPzogc3RyaW5nOyBzdGF0dXM/OiBzdHJpbmd9Pignb3JnYW5pemF0aW9uQmlsbGluZycsIG9yZy5vcmdhbml6YXRpb25JZCk7XG4gICAgaWYocHJldmlvdXNDb3VudCA+PSAxMCAmJiBiaWxsaW5nPy5wbGFuICYmIGJpbGxpbmcuc3RhdHVzICE9PSAnYWN0aXZlJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdiaWxsaW5nX25vdF9yZWFkeScpO1xuICAgIH1cbiAgICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbk1lbWJlcnNoaXBzJywga2V5LCBtZW1iZXIsIHByZXZpb3VzKTtcbiAgICBhd2FpdCB0eC5wdXQoJ3VzZXJzJywgdXNlcklkLCB7Li4udXNlciwgb3JnYW5pemF0aW9uQWNjb3VudDogdHJ1ZX0sIHVzZXIpO1xuICAgIGF3YWl0IHdyaXRlU2VhdENoYW5nZSh0eCwgb3JnLCBwcmV2aW91c0NvdW50ICsgMSwgbm93LCBwcmV2aW91c0NvdW50KTtcbiAgICBhd2FpdCB0eC5wdXQoJ29yZ2FuaXphdGlvbkludml0YXRpb25zJywgaW52aXRhdGlvbklkLCB7Li4uaW52aXRhdGlvbiwgdXNlZDogdHJ1ZX0sIGludml0YXRpb24pO1xuICAgIHJldHVybiBtZW1iZXI7XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgcmV2b2tlT3JnYW5pemF0aW9uSW52aXRhdGlvbiA9IChjb250ZXh0OiBBcGlDb250ZXh0LCBpbnZpdGF0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4gPT5cbiAgb3JnYW5pemF0aW9uU3RvcmVGb3IoY29udGV4dCkudHJhbnNhY3Rpb24oYXN5bmMgKHR4KSA9PiB7XG4gICAgY29uc3QgaW52aXRhdGlvbiA9IGF3YWl0IHR4LmdldDxJbnZpdGF0aW9uPignb3JnYW5pemF0aW9uSW52aXRhdGlvbnMnLCByZXF1aXJlSWRlbnRpZmllcihpbnZpdGF0aW9uSWQpKTtcbiAgICBpZighaW52aXRhdGlvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdpbnZhbGlkX2ludml0YXRpb24nKTtcbiAgICB9XG4gICAgYXdhaXQgb3JnYW5pemF0aW9uQWNjZXNzSW5UcmFuc2FjdGlvbih0eCwgY29udGV4dCwgaW52aXRhdGlvbi5vcmdhbml6YXRpb25JZCwgJ2FkbWluJyk7XG4gICAgYXdhaXQgdHgucHV0KCdvcmdhbml6YXRpb25JbnZpdGF0aW9ucycsIGludml0YXRpb25JZCwgey4uLmludml0YXRpb24sIHJldm9rZWQ6IHRydWV9LCBpbnZpdGF0aW9uKTtcbiAgfSk7XG5cbmV4cG9ydCBjb25zdCBhc3NlcnRPcmdhbml6YXRpb25BY2NvdW50UmVtb3ZhbEFsbG93ZWQgPSAoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcklkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+ID0+XG4gIG9yZ2FuaXphdGlvblN0b3JlRm9yKGNvbnRleHQpLnRyYW5zYWN0aW9uKGFzeW5jICh0eCkgPT4ge1xuICAgIGlmKFxuICAgICAgKFxuICAgICAgICBhd2FpdCB0eC5maW5kPE9yZ2FuaXphdGlvbj4oJ29yZ2FuaXphdGlvbnMnLCB7XG4gICAgICAgICAgb3duZXJVc2VySWQ6IHJlcXVpcmVJZGVudGlmaWVyKHVzZXJJZC5yZXBsYWNlKC9edXNlcnNcXC8vLCAnJykpXG4gICAgICAgIH0pXG4gICAgICApLmxlbmd0aFxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdvd25lcnNoaXBfdHJhbnNmZXJfcmVxdWlyZWQnKTtcbiAgICB9XG4gIH0pO1xuXG5leHBvcnQgY29uc3QgbGlzdE9yZ2FuaXphdGlvbk1lbWJlcnMgPSAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmdcbik6IFByb21pc2U8T3JnYW5pemF0aW9uTWVtYmVyc2hpcFtdPiA9PlxuICBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgICBhd2FpdCBvcmdhbml6YXRpb25BY2Nlc3NJblRyYW5zYWN0aW9uKHR4LCBjb250ZXh0LCBvcmdhbml6YXRpb25JZCwgJ21lbWJlcicpO1xuICAgIHJldHVybiB0eC5maW5kPE9yZ2FuaXphdGlvbk1lbWJlcnNoaXA+KCdvcmdhbml6YXRpb25NZW1iZXJzaGlwcycsIHtvcmdhbml6YXRpb25JZH0pO1xuICB9KTtcbi8qIEFyYW5nb0RCIGRvY3VtZW50IG1ldGFkYXRhIHVzZXMgdGhlc2UgcmVzZXJ2ZWQgZmllbGQgbmFtZXMuICovXG4vKiBlc2xpbnQgbm8tdW5kZXJzY29yZS1kYW5nbGU6IFtcIndhcm5cIiwge1wiYWxsb3dcIjogW1wiX2tleVwiLCBcIl9yZXZcIiwgXCJfaWRcIl19XSAqL1xuIl0sIm5hbWVzIjpbInJhbmRvbUJ5dGVzIiwib3JnYW5pemF0aW9uQWNjZXNzSW5UcmFuc2FjdGlvbiIsIm9yZ2FuaXphdGlvblVzZXJJZCIsIm5ld09yZ2FuaXphdGlvbklkIiwib3JnYW5pemF0aW9uS2V5Iiwib3JnYW5pemF0aW9uU3RvcmVGb3IiLCJyZXF1aXJlSWRlbnRpZmllciIsImFjdGl2ZU1lbWJlckNvdW50IiwidHgiLCJvcmdhbml6YXRpb25JZCIsImZpbmQiLCJzdGF0dXMiLCJsZW5ndGgiLCJ3cml0ZVNlYXRDaGFuZ2UiLCJvcmciLCJxdWFudGl0eSIsImVmZmVjdGl2ZUF0IiwicHJldmlvdXNRdWFudGl0eSIsInJldmlzaW9uIiwicHV0IiwidXBkYXRlZEF0Iiwiam9iSWQiLCJTdHJpbmciLCJqb2IiLCJhdHRlbXB0cyIsImRlc2lyZWQiLCJleHRyYVNlYXRzIiwiTWF0aCIsIm1heCIsInByZXZpb3VzRXh0cmFTZWF0cyIsImtpbmQiLCJsZWFzZUV4cGlyZXMiLCJvd25lciIsInByaWNlVmVyc2lvbiIsInNlcXVlbmNlIiwidmFsaWRhdGVTZWF0UXVvdGUiLCJjaGFuZ2UiLCJxdW90ZSIsImNvbmZpcm1lZFF1b3RlSWQiLCJnZXQiLCJ1c2VkIiwib3JnYW5pemF0aW9uUmV2aXNpb24iLCJleHBlY3RlZFJldmlzaW9uIiwicm9sZSIsImV4cGlyZXNBdCIsIkRhdGUiLCJub3ciLCJ1c2VySWQiLCJFcnJvciIsIl9rZXkiLCJjaGFuZ2VPcmdhbml6YXRpb25NZW1iZXIiLCJjb250ZXh0IiwidHJhbnNhY3Rpb24iLCJhY2Nlc3MiLCJtZW1iZXIiLCJpbmNsdWRlcyIsIk51bWJlciIsImlzU2FmZUludGVnZXIiLCJvcmdhbml6YXRpb24iLCJvd25lclVzZXJJZCIsInVzZXIiLCJhY3RpdmUiLCJ2ZXJpZmllZEVtYWlsIiwiY291bnQiLCJuZXh0Q291bnQiLCJiaWxsaW5nIiwicGxhbiIsInVwZGF0ZWQiLCJyZXF1ZXN0T3duZXJzaGlwVHJhbnNmZXIiLCJyZWNpcGllbnRVc2VySWQiLCJyZWNpcGllbnQiLCJ0cmFuc2ZlcklkIiwiYWNjZXB0T3duZXJzaGlwVHJhbnNmZXIiLCJ0cmFuc2ZlciIsIm9yZ2FuaXphdGlvbkFjY291bnQiLCJpbnZpdGVPcmdhbml6YXRpb25NZW1iZXIiLCJlbWFpbCIsImFjY2VwdHNBZGRpdGlvbmFsU2VhdENoYXJnZSIsIm5vcm1hbGl6ZWQiLCJ0cmltIiwidG9Mb3dlckNhc2UiLCJ0ZXN0IiwiZXhpc3RpbmciLCJpbnZpdGF0aW9uIiwicmV2b2tlZCIsImludml0YXRpb25JZCIsInRva2VuIiwidG9TdHJpbmciLCJpbnZpdGVkQnkiLCJ0b2tlbkhhc2giLCJhY2NlcHRPcmdhbml6YXRpb25JbnZpdGF0aW9uIiwic2Vzc2lvbiIsImtleSIsInByZXZpb3VzIiwiY3JlYXRlZEF0IiwicHJldmlvdXNDb3VudCIsInJldm9rZU9yZ2FuaXphdGlvbkludml0YXRpb24iLCJhc3NlcnRPcmdhbml6YXRpb25BY2NvdW50UmVtb3ZhbEFsbG93ZWQiLCJyZXBsYWNlIiwibGlzdE9yZ2FuaXphdGlvbk1lbWJlcnMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLFdBQVcsUUFBTyxjQUFjO0FBRXhDLFNBQVFDLCtCQUErQixFQUFFQyxrQkFBa0IsUUFBTyxxQkFBcUI7QUFDdkYsU0FDRUMsaUJBQWlCLEVBQ2pCQyxlQUFlLEVBQ2ZDLG9CQUFvQixFQUNwQkMsaUJBQWlCLFFBR1osYUFBYTtBQVdwQixPQUFPLE1BQU1DLG9CQUFvQixPQUMvQkMsSUFDQUMsaUJBRUEsQUFBQyxDQUFBLE1BQU1ELEdBQUdFLElBQUksQ0FBeUIsMkJBQTJCO1FBQUNEO1FBQWdCRSxRQUFRO0lBQVEsRUFBQyxFQUNqR0MsTUFBTSxDQUFDO0FBRVosT0FBTyxNQUFNQyxrQkFBa0IsT0FDN0JMLElBQ0FNLEtBQ0FDLFVBQ0FDLGFBQ0FDO0lBRUEsTUFBTUMsV0FBV0osSUFBSUksUUFBUSxHQUFHO0lBQ2hDLE1BQU1WLEdBQUdXLEdBQUcsQ0FBQyxpQkFBaUJMLElBQUlMLGNBQWMsRUFBRTtRQUFDLEdBQUdLLEdBQUc7UUFBRUk7UUFBVUUsV0FBV0o7SUFBVyxHQUFHRjtJQUM5RixNQUFNTyxRQUFRakIsZ0JBQWdCVSxJQUFJTCxjQUFjLEVBQUVhLE9BQU9KO0lBQ3pELE1B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
|
|
@@ -47,4 +47,4 @@ import { organizationStoreFor } from './store.js';
|
|
|
47
47
|
});
|
|
48
48
|
};
|
|
49
49
|
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3Ly5jb2RleC93b3JrdHJlZXMvdmF1bHQtczMtcmVsZWFzZS9yZWFrdG9yL3BhY2thZ2VzL3JlYWt0b3Ivc3JjL29yZ2FuaXphdGlvbnMvcGFzc3dvcmRSZWNvdmVyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZVBhc3N3b3JkLCBwYXJzZVBhc3N3b3JkfSBmcm9tICdAbmxhYnMvdXRpbHMvcGFyc2Vycy9zdHJpbmdzJztcblxuaW1wb3J0IHtvcmdhbml6YXRpb25TdG9yZUZvcn0gZnJvbSAnLi9zdG9yZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtVc2VyVHlwZX0gZnJvbSAnLi4vdHlwZXMvdXNlcnMudHlwZXMuanMnO1xuXG4vKiogSW50ZXJuYWwgcmVjb3ZlcnkgY2FwYWJpbGl0eS4gTmV2ZXIgZXhwb3NlZCB0aHJvdWdoIGdlbmVyaWMgcHJvZmlsZSB1cGRhdGVzLiAqL1xuZXhwb3J0IGNvbnN0IG9yZ2FuaXphdGlvblBhc3N3b3JkUmVjb3ZlcnkgPSBhc3luYyAoXG4gIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gIHVzZXJJZDogc3RyaW5nLFxuICBvcGVyYXRpb246ICdjb25zdW1lJyB8ICdpc3N1ZScsXG4gIGlucHV0OiBSZWFkb25seTx7Y29kZTogbnVtYmVyOyBlbWFpbD86IHN0cmluZzsgZXhwaXJlcz86IG51bWJlcjsgcGFzc3dvcmQ/OiBzdHJpbmc7IHBob25lPzogc3RyaW5nfT5cbik6IFByb21pc2U8Ym9vbGVhbiB8IG51bGw+ID0+IHtcbiAgaWYoIXByb2Nlc3MuZW52LkFSQU5HT0RCX0RBVEFCQVNFIHx8IGNvbnRleHQuZGF0YWJhc2VOYW1lICE9PSBwcm9jZXNzLmVudi5BUkFOR09EQl9EQVRBQkFTRSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGtleSA9IHVzZXJJZC5yZXBsYWNlKC9edXNlcnNcXC8vLCAnJyk7XG4gIHJldHVybiBvcmdhbml6YXRpb25TdG9yZUZvcihjb250ZXh0KS50cmFuc2FjdGlvbihhc3luYyAodHgpID0+IHtcbiAgICBjb25zdCB1c2VyID0gYXdhaXQgdHguZ2V0PFVzZXJUeXBlICYge29yZ2FuaXphdGlvbkFjY291bnQ/OiBib29sZWFufT4oJ3VzZXJzJywga2V5KTtcbiAgICBjb25zdCBtZW1iZXJzaGlwcyA9IGF3YWl0IHR4LmZpbmQoJ29yZ2FuaXphdGlvbk1lbWJlcnNoaXBzJywge3VzZXJJZDoga2V5fSk7XG4gICAgY29uc3Qgb3duZXJzID0gYXdhaXQgdHguZmluZCgnb3JnYW5pemF0aW9ucycsIHtvd25lclVzZXJJZDoga2V5fSk7XG4gICAgaWYoIXVzZXIgfHwgKCF1c2VyLm9yZ2FuaXphdGlvbkFjY291bnQgJiYgIW1lbWJlcnNoaXBzLmxlbmd0aCAmJiAhb3duZXJzLmxlbmd0aCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBlbWFpbCA9IEJvb2xlYW4oaW5wdXQuZW1haWwgJiYgdXNlci52ZXJpZmllZEVtYWlsICYmIHVzZXIuZW1haWwgPT09IGlucHV0LmVtYWlsKTtcbiAgICBjb25zdCBwaG9uZSA9IEJvb2xlYW4oaW5wdXQucGhvbmUgJiYgdXNlci52ZXJpZmllZFBob25lICYmIHVzZXIucGhvbmUgPT09IGlucHV0LnBob25lKTtcbiAgICBpZighdXNlci5hY3RpdmUgfHwgKCFlbWFpbCAmJiAhcGhvbmUpIHx8ICFOdW1iZXIuaXNTYWZlSW50ZWdlcihpbnB1dC5jb2RlKVxuICAgICAgfHwgaW5wdXQuY29kZSA8IDEwMDAwMCB8fCBpbnB1dC5jb2RlID4gOTk5OTk5KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGNvZGVGaWVsZCA9IHBob25lID8gJ3ZlcmlmaWVkU21zQ29kZScgOiAndmVyaWZpZWRFbWFpbENvZGUnO1xuICAgIGNvbnN0IGV4cGlyeUZpZWxkID0gcGhvbmUgPyAndmVyaWZpZWRQaG9uZUV4cGlyZXMnIDogJ3ZlcmlmaWVkRW1haWxFeHBpcmVzJztcbiAgICBpZihvcGVyYXRpb24gPT09ICdpc3N1ZScpIHtcbiAgICAgIGlmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihpbnB1dC5leHBpcmVzKSB8fCBpbnB1dC5leHBpcmVzISA8PSBEYXRlLm5vdygpIHx8IGlucHV0LmV4cGlyZXMhID4gRGF0ZS5ub3coKSArIDkwMDAwMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICBhd2FpdCB0eC5wdXQoJ3VzZXJzJywga2V5LCB7Li4udXNlciwgW2NvZGVGaWVsZF06IGlucHV0LmNvZGUsIFtleHBpcnlGaWVsZF06IGlucHV0LmV4cGlyZXN9LCB1c2VyKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZih1c2VyW2NvZGVGaWVsZF0gIT09IGlucHV0LmNvZGUgfHwgTnVtYmVyKHVzZXJbZXhwaXJ5RmllbGRdIHx8IDApIDw9IERhdGUubm93KClcbiAgICAgIHx8ICFpbnB1dC5wYXNzd29yZCB8fCAhdXNlci5zYWx0KSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGF3YWl0IHR4LnB1dCgndXNlcnMnLCBrZXksIHtcbiAgICAgIC4uLnVzZXIsIFtjb2RlRmllbGRdOiAwLCBbZXhwaXJ5RmllbGRdOiAwLCBwYXNzd29yZDogY3JlYXRlUGFzc3dvcmQocGFyc2VQYXNzd29yZChpbnB1dC5wYXNzd29yZCksIHVzZXIuc2FsdClcbiAgICB9LCB1c2VyKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbImNyZWF0ZVBhc3N3b3JkIiwicGFyc2VQYXNzd29yZCIsIm9yZ2FuaXphdGlvblN0b3JlRm9yIiwib3JnYW5pemF0aW9uUGFzc3dvcmRSZWNvdmVyeSIsImNvbnRleHQiLCJ1c2VySWQiLCJvcGVyYXRpb24iLCJpbnB1dCIsInByb2Nlc3MiLCJlbnYiLCJBUkFOR09EQl9EQVRBQkFTRSIsImRhdGFiYXNlTmFtZSIsImtleSIsInJlcGxhY2UiLCJ0cmFuc2FjdGlvbiIsInR4IiwidXNlciIsImdldCIsIm1lbWJlcnNoaXBzIiwiZmluZCIsIm93bmVycyIsIm93bmVyVXNlcklkIiwib3JnYW5pemF0aW9uQWNjb3VudCIsImxlbmd0aCIsImVtYWlsIiwiQm9vbGVhbiIsInZlcmlmaWVkRW1haWwiLCJwaG9uZSIsInZlcmlmaWVkUGhvbmUiLCJhY3RpdmUiLCJOdW1iZXIiLCJpc1NhZmVJbnRlZ2VyIiwiY29kZSIsImNvZGVGaWVsZCIsImV4cGlyeUZpZWxkIiwiZXhwaXJlcyIsIkRhdGUiLCJub3ciLCJwdXQiLCJwYXNzd29yZCIsInNhbHQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVFBLGNBQWMsRUFBRUMsYUFBYSxRQUFPLCtCQUErQjtBQUUzRSxTQUFRQyxvQkFBb0IsUUFBTyxhQUFhO0FBS2hELGlGQUFpRixHQUNqRixPQUFPLE1BQU1DLCtCQUErQixPQUMxQ0MsU0FDQUMsUUFDQUMsV0FDQUM7SUFFQSxJQUFHLENBQUNDLFFBQVFDLEdBQUcsQ0FBQ0MsaUJBQWlCLElBQUlOLFFBQVFPLFlBQVksS0FBS0gsUUFBUUMsR0FBRyxDQUFDQyxpQkFBaUIsRUFBRTtRQUMzRixPQUFPO0lBQ1Q7SUFDQSxNQUFNRSxNQUFNUCxPQUFPUSxPQUFPLENBQUMsWUFBWTtJQUN2QyxPQUFPWCxxQkFBcUJFLFNBQVNVLFdBQVcsQ0FBQyxPQUFPQztRQUN0RCxNQUFNQyxPQUFPLE1BQU1ELEdBQUdFLEdBQUcsQ0FBNkMsU0FBU0w7UUFDL0UsTUFBTU0sY0FBYyxNQUFNSCxHQUFHSSxJQUFJLENBQUMsMkJBQTJCO1lBQUNkLFFBQVFPO1FBQUc7UUFDekUsTUFBTVEsU0FBUyxNQUFNTCxHQUFHSSxJQUFJLENBQUMsaUJBQWlCO1lBQUNFLGFBQWFUO1FBQUc7UUFDL0QsSUFBRyxDQUFDSSxRQUFTLENBQUNBLEtBQUtNLG1CQUFtQixJQUFJLENBQUNKLFlBQVlLLE1BQU0sSUFBSSxDQUFDSCxPQUFPRyxNQUFNLEVBQUc7WUFDaEYsT0FBTztRQUNUO1FBQ0EsTUFBTUMsUUFBUUMsUUFBUWxCLE1BQU1pQixLQUFLLElBQUlSLEtBQUtVLGFBQWEsSUFBSVYsS0FBS1EsS0FBSyxLQUFLakIsTUFBTWlCLEtBQUs7UUFDckYsTUFBTUcsUUFBUUYsUUFBUWxCLE1BQU1vQixLQUFLLElBQUlYLEtBQUtZLGFBQWEsSUFBSVosS0FBS1csS0FBSyxLQUFLcEIsTUFBTW9CLEtBQUs7UUFDckYsSUFBRyxDQUFDWCxLQUFLYSxNQUFNLElBQUssQ0FBQ0wsU0FBUyxDQUFDRyxTQUFVLENBQUNHLE9BQU9DLGFBQWEsQ0FBQ3hCLE1BQU15QixJQUFJLEtBQ3BFekIsTUFBTXlCLElBQUksR0FBRyxVQUFVekIsTUFBTXlCLElBQUksR0FBRyxRQUFRO1lBQy9DLE9BQU87UUFDVDtRQUNBLE1BQU1DLFlBQVlOLFFBQVEsb0JBQW9CO1FBQzlDLE1BQU1PLGNBQWNQLFFBQVEseUJBQXlCO1FBQ3JELElBQUdyQixjQUFjLFNBQVM7WUFDeEIsSUFBRyxDQUFDd0IsT0FBT0MsYUFBYSxDQUFDeEIsTUFBTTRCLE9BQU8sS0FBSzVCLE1BQU00QixPQUFPLElBQUtDLEtBQUtDLEdBQUcsTUFBTTlCLE1BQU00QixPQUFPLEdBQUlDLEtBQUtDLEdBQUcsS0FBSyxRQUFRO2dCQUMvRyxPQUFPO1lBQ1Q7WUFDQSxNQUFNdEIsR0FBR3VCLEdBQUcsQ0FBQyxTQUFTMUIsS0FBSztnQkFBQyxHQUFHSSxJQUFJO2dCQUFFLENBQUNpQixVQUFVLEVBQUUxQixNQUFNeUIsSUFBSTtnQkFBRSxDQUFDRSxZQUFZLEVBQUUzQixNQUFNNEIsT0FBTztZQUFBLEdBQUduQjtZQUM3RixPQUFPO1FBQ1Q7UUFDQSxJQUFHQSxJQUFJLENBQUNpQixVQUFVLEtBQUsxQixNQUFNeUIsSUFBSSxJQUFJRixPQUFPZCxJQUFJLENBQUNrQixZQUFZLElBQUksTUFBTUUsS0FBS0MsR0FBRyxNQUMxRSxDQUFDOUIsTUFBTWdDLFFBQVEsSUFBSSxDQUFDdkIsS0FBS3dCLElBQUksRUFBRTtZQUNsQyxPQUFPO1FBQ1Q7UUFDQSxNQUFNekIsR0FBR3VCLEdBQUcsQ0FBQyxTQUFTMUIsS0FBSztZQUN6QixHQUFHSSxJQUFJO1lBQUUsQ0FBQ2lCLFVBQVUsRUFBRTtZQUFHLENBQUNDLFlBQVksRUFBRTtZQUFHSyxVQUFVdkMsZUFBZUMsY0FBY00sTUFBTWdDLFFBQVEsR0FBR3ZCLEtBQUt3QixJQUFJO1FBQzlHLEdBQUd4QjtRQUNILE9BQU87SUFDVDtBQUNGLEVBQUUifQ==
|