@nlabs/reaktor 1.9.0 → 1.10.0
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 +59 -73
- package/docs/GENERATION.md +63 -0
- package/lib/actions/analytics.js +1 -1
- package/lib/actions/apps.d.ts +2 -2
- 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.d.ts +40 -0
- package/lib/actions/contentGeneration.js +206 -0
- package/lib/actions/conversations.js +1 -1
- package/lib/actions/crm.js +1 -1
- package/lib/actions/crud.d.ts +2 -2
- package/lib/actions/crud.js +1 -1
- package/lib/actions/dynamodb.js +1 -1
- package/lib/actions/email.js +1 -1
- package/lib/actions/files.d.ts +42 -4
- package/lib/actions/files.js +1 -1
- package/lib/actions/flags.js +1 -1
- package/lib/actions/geminiVideo.d.ts +19 -0
- package/lib/actions/geminiVideo.js +161 -0
- package/lib/actions/groups.js +1 -1
- package/lib/actions/higgsfield.d.ts +20 -0
- package/lib/actions/higgsfield.js +148 -0
- package/lib/actions/imageGeneration.d.ts +37 -0
- package/lib/actions/imageGeneration.js +121 -0
- package/lib/actions/images.js +1 -1
- package/lib/actions/index.d.ts +5 -0
- package/lib/actions/index.js +6 -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/payments.js +27 -26
- package/lib/actions/personas.d.ts +4 -4
- package/lib/actions/personas.js +1 -1
- package/lib/actions/posts.js +1 -1
- package/lib/actions/query.js +1 -1
- package/lib/actions/reactions.d.ts +6 -6
- package/lib/actions/reactions.js +1 -1
- package/lib/actions/rum.js +1 -1
- package/lib/actions/s3.d.ts +4 -4
- package/lib/actions/s3.js +22 -6
- 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.d.ts +2 -2
- package/lib/actions/tags.js +1 -1
- package/lib/actions/users.d.ts +2 -2
- package/lib/actions/users.js +1 -1
- package/lib/actions/videoGeneration.d.ts +20 -0
- package/lib/actions/videoGeneration.js +32 -0
- 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.d.ts +34 -0
- package/lib/adapters/geminiGenerationAdapter.js +41 -0
- package/lib/adapters/higgsfieldAdapter.d.ts +120 -0
- package/lib/adapters/higgsfieldAdapter.js +131 -0
- package/lib/adapters/imageAdapter.js +1 -1
- package/lib/adapters/imageGenerationAdapter.d.ts +17 -0
- package/lib/adapters/imageGenerationAdapter.js +18 -0
- package/lib/adapters/index.d.ts +3 -0
- package/lib/adapters/index.js +4 -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.d.ts +76 -1
- package/lib/adapters/userAdapter.js +1 -1
- package/lib/config.d.ts +19 -14
- package/lib/config.js +9 -1
- package/lib/constants/collections.js +1 -1
- package/lib/handlers/graphqlHandler.js +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/lambdas/actions/websockets.d.ts +5 -0
- package/lib/lambdas/actions/websockets.js +16 -1
- package/lib/lambdas/authorizer.js +1 -1
- package/lib/lambdas/connection.d.ts +2 -2
- package/lib/lambdas/connection.js +1 -1
- package/lib/lambdas/utils/message.js +1 -1
- package/lib/lambdas/utils/websocket.d.ts +4 -4
- 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 +15 -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.d.ts +1 -0
- package/lib/mutations/higgsfield/higgsfield.js +62 -0
- package/lib/mutations/images/images.js +10 -1
- package/lib/mutations/index.d.ts +2 -1
- package/lib/mutations/index.js +11 -2
- 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 +24 -10
- 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.d.ts +2 -0
- package/lib/objectTypes/contentGeneration.js +30 -0
- 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.d.ts +5 -0
- package/lib/objectTypes/higgsfield.js +149 -0
- package/lib/objectTypes/iapSubscription.js +1 -1
- package/lib/objectTypes/image.js +1 -1
- package/lib/objectTypes/imageGeneration.d.ts +2 -0
- package/lib/objectTypes/imageGeneration.js +33 -0
- package/lib/objectTypes/index.d.ts +2 -0
- package/lib/objectTypes/index.js +3 -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.d.ts +37 -2
- 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.d.ts +2 -0
- package/lib/objectTypes/videoGeneration.js +31 -0
- 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.d.ts +1 -0
- package/lib/queries/higgsfield/higgsfield.js +22 -0
- package/lib/queries/images/images.js +1 -1
- package/lib/queries/index.d.ts +2 -1
- package/lib/queries/index.js +7 -2
- 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.d.ts +16 -16
- package/lib/types/analytics.types.js +1 -1
- package/lib/types/apps.types.d.ts +4 -4
- package/lib/types/apps.types.js +1 -1
- package/lib/types/arangodb.types.d.ts +20 -20
- package/lib/types/arangodb.types.js +1 -1
- package/lib/types/auth.types.js +1 -1
- package/lib/types/connections.types.d.ts +2 -2
- package/lib/types/connections.types.js +1 -1
- package/lib/types/content.types.d.ts +6 -6
- package/lib/types/content.types.js +1 -1
- package/lib/types/conversations.types.d.ts +2 -2
- package/lib/types/conversations.types.js +1 -1
- package/lib/types/crm.types.d.ts +30 -30
- package/lib/types/crm.types.js +1 -1
- package/lib/types/email.types.d.ts +2 -2
- package/lib/types/email.types.js +1 -1
- package/lib/types/error.types.d.ts +1 -0
- package/lib/types/error.types.js +2 -1
- package/lib/types/files.types.d.ts +2 -2
- package/lib/types/files.types.js +1 -1
- package/lib/types/flags.types.d.ts +8 -8
- package/lib/types/flags.types.js +1 -1
- package/lib/types/google.types.js +1 -1
- package/lib/types/groups.types.d.ts +2 -2
- package/lib/types/groups.types.js +1 -1
- package/lib/types/images.types.d.ts +2 -2
- package/lib/types/images.types.js +1 -1
- package/lib/types/index.js +1 -1
- package/lib/types/locations.types.d.ts +2 -2
- package/lib/types/locations.types.js +1 -1
- package/lib/types/messages.types.d.ts +2 -2
- package/lib/types/messages.types.js +1 -1
- package/lib/types/notifications.types.js +1 -1
- package/lib/types/payments.types.d.ts +14 -14
- package/lib/types/payments.types.js +1 -1
- package/lib/types/personas.types.d.ts +2 -2
- package/lib/types/personas.types.js +1 -1
- package/lib/types/posts.types.d.ts +2 -2
- package/lib/types/posts.types.js +1 -1
- package/lib/types/rum.types.d.ts +6 -6
- package/lib/types/rum.types.js +1 -1
- package/lib/types/statistics.types.js +1 -1
- package/lib/types/tags.types.d.ts +4 -4
- package/lib/types/tags.types.js +1 -1
- package/lib/types/users.types.d.ts +2 -2
- package/lib/types/users.types.js +1 -1
- package/lib/types/videos.types.d.ts +2 -2
- package/lib/types/videos.types.js +1 -1
- package/lib/types/websockets.types.d.ts +4 -4
- 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.d.ts +2 -2
- package/lib/utils/collectionRegistry.js +1 -1
- package/lib/utils/contextUtils.js +1 -1
- package/lib/utils/dbI18n.example.js +1 -1
- package/lib/utils/dbI18n.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.d.ts +3 -0
- package/lib/utils/index.js +4 -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.d.ts +5 -0
- package/lib/utils/mediaAccess.js +57 -0
- package/lib/utils/middlewareUtils.js +1 -1
- package/lib/utils/nodeRealtime.d.ts +14 -0
- package/lib/utils/nodeRealtime.js +84 -0
- package/lib/utils/opaqueToken.d.ts +4 -0
- package/lib/utils/opaqueToken.js +7 -0
- package/lib/utils/queryBuilder.js +1 -1
- package/lib/utils/schemaUtils.js +1 -1
- package/lib/utils/sessionUtils.js +1 -1
- package/lib/utils/stripeUtils.d.ts +1 -1
- package/lib/utils/stripeUtils.js +2 -3
- package/lib/utils/stripeUtils.ts.bak +12 -0
- 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 +24 -23
- package/lib/durableChat/conversations.d.ts +0 -62
- package/lib/durableChat/conversations.js +0 -729
- package/lib/durableChat/errors.d.ts +0 -6
- package/lib/durableChat/errors.js +0 -11
- package/lib/durableChat/events.d.ts +0 -22
- package/lib/durableChat/events.js +0 -50
- package/lib/durableChat/index.d.ts +0 -8
- package/lib/durableChat/index.js +0 -10
- package/lib/durableChat/membership.d.ts +0 -24
- package/lib/durableChat/membership.js +0 -85
- package/lib/durableChat/messageTypes.d.ts +0 -76
- package/lib/durableChat/messageTypes.js +0 -3
- package/lib/durableChat/messages.d.ts +0 -16
- package/lib/durableChat/messages.js +0 -257
- package/lib/durableChat/transaction.d.ts +0 -10
- package/lib/durableChat/transaction.js +0 -53
- package/lib/durableChat/types.d.ts +0 -81
- package/lib/durableChat/types.js +0 -3
package/lib/utils/testUtils.js
CHANGED
|
@@ -297,4 +297,4 @@ export const createUtilsTestSuite = (name, utilsPath, testCases)=>{
|
|
|
297
297
|
});
|
|
298
298
|
};
|
|
299
299
|
|
|
300
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50Ly5jb2RleC13b3JrdHJlZXMvcmVha3Rvci1waGFudGF6ZS1jaGF0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3Rlc3RVdGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuaW1wb3J0IHtiZWZvcmVBbGwsIGRlc2NyaWJlLCBleHBlY3QsIGl0LCB2aX0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB0eXBlIHtNb2NrfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHR5cGUge0dyYXBoUUxSZXNvbHZlSW5mb30gZnJvbSAnZ3JhcGhxbCc7XG5cbmNvbnN0IGplc3QgPSBPYmplY3QuYXNzaWduKHZpIGFzIGFueSwge1xuICBpc29sYXRlTW9kdWxlc0FzeW5jOiBhc3luYyAoZm46ICgpID0+IFByb21pc2U8dm9pZD4pID0+IHtcbiAgICB2aS5yZXNldE1vZHVsZXMoKTtcbiAgICBhd2FpdCBmbigpO1xuICB9LFxuICByZXF1aXJlQWN0dWFsOiB2aS5pbXBvcnRBY3R1YWwsXG4gIHVuc3RhYmxlX21vY2tNb2R1bGU6IHZpLmRvTW9ja1xufSkgYXMgYW55O1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5cbi8vIERlZmluZSBwcm9wZXIgdHlwZXMgZm9yIHRlc3QgdXRpbGl0aWVzXG50eXBlIE1vY2tPdmVycmlkZXMgPSBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIHVua25vd24+PjtcbnR5cGUgVGVzdENvbnRleHQgPSBQYXJ0aWFsPEFwaUNvbnRleHQ+ICYge3Nlc3Npb24/OiBQYXJ0aWFsPHt1c2VySWQ6IHN0cmluZzsgdXNlcm5hbWU6IHN0cmluZzsgdXNlckFjY2VzczogbnVtYmVyfT59O1xudHlwZSBUZXN0QXJncyA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xudHlwZSBUZXN0UmV0dXJuVmFsdWUgPSB1bmtub3duO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja0NvbnRleHQgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pOiBBcGlDb250ZXh0ID0+IHtcbiAgY29uc3QgZGVmYXVsdFNlc3Npb24gPSB7XG4gICAgdXNlckFjY2VzczogMSxcbiAgICB1c2VySWQ6ICd1c2VyMScsXG4gICAgdXNlcm5hbWU6ICd0ZXN0dXNlcidcbiAgfTtcbiAgY29uc3Qgb3ZlcnJpZGVTZXNzaW9uOiBQYXJ0aWFsPHR5cGVvZiBkZWZhdWx0U2Vzc2lvbj4gPSBvdmVycmlkZXMuc2Vzc2lvbiB8fCB7fTtcbiAgY29uc3QgY29udGV4dDogVGVzdENvbnRleHQgPSB7XG4gICAgZGF0YWJhc2VOYW1lOiAob3ZlcnJpZGVzLmRhdGFiYXNlTmFtZSBhcyBzdHJpbmcpID8/ICd0ZXN0JyxcbiAgICAuLi5vdmVycmlkZXNcbiAgfTtcbiAgZGVsZXRlIGNvbnRleHQuc2Vzc2lvbjtcbiAgY29udGV4dC5zZXNzaW9uID0ge1xuICAgIHVzZXJBY2Nlc3M6IG92ZXJyaWRlU2Vzc2lvbi51c2VyQWNjZXNzICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlckFjY2VzcyA6IGRlZmF1bHRTZXNzaW9uLnVzZXJBY2Nlc3MsXG4gICAgdXNlcklkOiBvdmVycmlkZVNlc3Npb24udXNlcklkICE9PSB1bmRlZmluZWQgPyBvdmVycmlkZVNlc3Npb24udXNlcklkIDogZGVmYXVsdFNlc3Npb24udXNlcklkLFxuICAgIHVzZXJuYW1lOiBvdmVycmlkZVNlc3Npb24udXNlcm5hbWUgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VybmFtZSA6IGRlZmF1bHRTZXNzaW9uLnVzZXJuYW1lXG4gIH07XG4gIHJldHVybiBjb250ZXh0IGFzIEFwaUNvbnRleHQ7XG59O1xuXG4vLyBDb21tb24gbW9jayByZXNvbHZlIGluZm8gZm9yIEdyYXBoUUwgcmVzb2x2ZXJzXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1Jlc29sdmVJbmZvID0gKGZpZWxkTmFtZTogc3RyaW5nID0gJ3Rlc3QnKTogR3JhcGhRTFJlc29sdmVJbmZvID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCBvcGVyYXRpb24gPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ29wZXJhdGlvbiddO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IHBhcmVudFR5cGUgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3BhcmVudFR5cGUnXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCByZXR1cm5UeXBlID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydyZXR1cm5UeXBlJ107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgY29uc3Qgc2NoZW1hID0ge30gYXMgR3JhcGhRTFJlc29sdmVJbmZvWydzY2hlbWEnXTtcblxuICByZXR1cm4ge1xuICAgIGZpZWxkTmFtZSxcbiAgICBmaWVsZE5vZGVzOiBbXSxcbiAgICBmcmFnbWVudHM6IHt9LFxuICAgIG9wZXJhdGlvbixcbiAgICBwYXJlbnRUeXBlLFxuICAgIHBhdGg6IHtrZXk6IGZpZWxkTmFtZSwgcHJldjogdW5kZWZpbmVkLCB0eXBlbmFtZTogJ1Rlc3QnfSxcbiAgICByZXR1cm5UeXBlLFxuICAgIHJvb3RWYWx1ZToge30sXG4gICAgc2NoZW1hLFxuICAgIHZhcmlhYmxlVmFsdWVzOiB7fVxuICB9O1xufTtcblxuLy8gVXRpbGl0eSB0byBtb2NrIGFjdGlvbnMgbW9kdWxlXG5leHBvcnQgY29uc3QgbW9ja0FjdGlvbnNNb2R1bGUgPSBhc3luYyAobW9kdWxlUGF0aDogc3RyaW5nLCBtb2NrQWN0aW9uczogUmVjb3JkPHN0cmluZywgTW9jaz4pID0+IHtcbiAgY29uc3QgbW9ja3MgPSBPYmplY3QuZW50cmllcyhtb2NrQWN0aW9ucykucmVkdWNlKChhY2MsIFtrZXksIHZhbHVlXSkgPT4ge1xuICAgIGFjY1trZXldID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbih2YWx1ZSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgUmVjb3JkPHN0cmluZywgTW9jaz4pO1xuXG4gIGF3YWl0IGplc3QuaXNvbGF0ZU1vZHVsZXNBc3luYyhhc3luYyAoKSA9PiB7XG4gICAgamVzdC51bnN0YWJsZV9tb2NrTW9kdWxlKG1vZHVsZVBhdGgsICgpID0+ICh7XG4gICAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgICAgLi4ubW9ja3MsXG4gICAgICBkZWZhdWx0OiBtb2Nrc1xuICAgIH0pKTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIG1vY2sgb2JqZWN0IHR5cGVzXG5leHBvcnQgY29uc3QgbW9ja09iamVjdFR5cGUgPSBhc3luYyAobW9kdWxlUGF0aDogc3RyaW5nLCB0eXBlTmFtZTogc3RyaW5nKSA9PiB7XG4gIGNvbnN0IG1vY2sgPSB7XG4gICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICBbdHlwZU5hbWVdOiB7XG4gICAgICBnZXRGaWVsZDogamVzdC5mbigoKSA9PiAoe3Jlc29sdmU6IGplc3QuZm4oKX0pKSxcbiAgICAgIGdldEZpZWxkczogamVzdC5mbigoKSA9PiAoe30pKVxuICAgIH0sXG4gICAgZGVmYXVsdDoge1xuICAgICAgW3R5cGVOYW1lXToge1xuICAgICAgICBnZXRGaWVsZDogamVzdC5mbigoKSA9PiAoe3Jlc29sdmU6IGplc3QuZm4oKX0pKSxcbiAgICAgICAgZ2V0RmllbGRzOiBqZXN0LmZuKCgpID0+ICh7fSkpXG4gICAgICB9XG4gICAgfVxuICB9O1xuICBhd2FpdCBqZXN0Lmlzb2xhdGVNb2R1bGVzQXN5bmMoYXN5bmMgKCkgPT4ge1xuICAgIGplc3QudW5zdGFibGVfbW9ja01vZHVsZShtb2R1bGVQYXRoLCAoKSA9PiBtb2NrKTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIHF1ZXJ5IHJlc29sdmVyc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZVF1ZXJ5VGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBtb2NrUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICBlcnJvckNhc2U/OiBib29sZWFuO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IFF1ZXJpZXNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcbiAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG5cbiAgICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgICAgYWN0aW9ucyA9IHt9O1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgYWN0aW9uTmFtZSwgYXJncywgZXhwZWN0ZWRDYWxsLCBtb2NrUmV0dXJuVmFsdWUsIGVycm9yQ2FzZSA9IGZhbHNlfSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBjYWxsICR7YWN0aW9uTmFtZX0gYWN0aW9uIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShtb2NrUmV0dXJuVmFsdWUpKTtcbiAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwobW9ja1JldHVyblZhbHVlKTtcbiAgICAgIH0pO1xuXG4gICAgICBpZihlcnJvckNhc2UpIHtcbiAgICAgICAgaXQoYHNob3VsZCBoYW5kbGUgJHthY3Rpb25OYW1lfSB3aGVuIG5vIGRhdGEgZm91bmRgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUobnVsbCkpO1xuICAgICAgICAgIGFjdGlvbnNbYWN0aW9uTmFtZV0gPSBtb2NrRm47XG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0JlTnVsbCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBhIHRlc3Qgc3VpdGUgZm9yIG11dGF0aW9uIHJlc29sdmVyc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU11dGF0aW9uVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBtb2NrUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICByZXF1aXJlc0F1dGg/OiBib29sZWFuO1xuICAgIGF1dGhVc2VySWQ/OiBzdHJpbmc7XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUoYCR7bmFtZX0gTXV0YXRpb25zYCwgKCkgPT4ge1xuICAgIGxldCBhY3Rpb25zOiBhbnk7XG5cbiAgICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgICAgYWN0aW9ucyA9IHt9O1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtcbiAgICAgIGFjdGlvbk5hbWUsXG4gICAgICBhcmdzLFxuICAgICAgZXhwZWN0ZWRDYWxsLFxuICAgICAgbW9ja1JldHVyblZhbHVlLFxuICAgICAgcmVxdWlyZXNBdXRoID0gZmFsc2UsXG4gICAgICBhdXRoVXNlcklkXG4gICAgfSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCBjYWxsICR7YWN0aW9uTmFtZX0gYWN0aW9uIHdpdGggY29ycmVjdCBwYXJhbWV0ZXJzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgIGlmKHJlcXVpcmVzQXV0aCAmJiBhdXRoVXNlcklkKSB7XG4gICAgICAgICAgKG1vY2tDb250ZXh0LnNlc3Npb24gYXMge3VzZXJJZDogc3RyaW5nfSkudXNlcklkID0gYXV0aFVzZXJJZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vY2tGbiA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG1vY2tSZXR1cm5WYWx1ZSkpO1xuICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChtb2NrUmV0dXJuVmFsdWUpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgaW50ZWdyYXRpb24gdGVzdCBzdWl0ZVxuZXhwb3J0IGNvbnN0IGNyZWF0ZUludGVncmF0aW9uVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIG9iamVjdFR5cGVQYXRoOiBzdHJpbmcsXG4gIHR5cGVOYW1lOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgZXhwZWN0ZWRDYWxsOiAoY29udGV4dDogVGVzdENvbnRleHQsIGFyZ3M6IFRlc3RBcmdzKSA9PiBUZXN0QXJncztcbiAgICBzdWNjZXNzUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICBlcnJvclJldHVyblZhbHVlOiBUZXN0UmV0dXJuVmFsdWU7XG4gICAgdGVzdEVycm9yQ2FzZTogYm9vbGVhbjtcbiAgfT5cbikgPT4ge1xuICBkZXNjcmliZShgJHtuYW1lfSBJbnRlZ3JhdGlvbmAsICgpID0+IHtcbiAgICBsZXQgYWN0aW9uczogYW55O1xuXG4gICAgYmVmb3JlQWxsKCgpID0+IHtcbiAgICAgIGFjdGlvbnMgPSB7fTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7XG4gICAgICBuYW1lOiB0ZXN0TmFtZSxcbiAgICAgIGFjdGlvbk5hbWUsXG4gICAgICBhcmdzLFxuICAgICAgZXhwZWN0ZWRDYWxsLFxuICAgICAgc3VjY2Vzc1JldHVyblZhbHVlLFxuICAgICAgZXJyb3JSZXR1cm5WYWx1ZSxcbiAgICAgIHRlc3RFcnJvckNhc2VcbiAgICB9KSA9PiB7XG4gICAgICBkZXNjcmliZSh0ZXN0TmFtZSwgKCkgPT4ge1xuICAgICAgICBpdChgc2hvdWxkIHJldHVybiBkYXRhIHdoZW4gJHthY3Rpb25OYW1lfSBzdWNjZWVkc2AsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUoc3VjY2Vzc1JldHVyblZhbHVlKSk7XG4gICAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG5cbiAgICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChzdWNjZXNzUmV0dXJuVmFsdWUgfHwge30pO1xuICAgICAgICB9KTtcblxuICAgICAgICBpZih0ZXN0RXJyb3JDYXNlKSB7XG4gICAgICAgICAgaXQoYHNob3VsZCBoYW5kbGUgJHthY3Rpb25OYW1lfSB3aGVuIG5vIGRhdGEgZm91bmRgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShlcnJvclJldHVyblZhbHVlKSk7XG4gICAgICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBtb2NrRm4obW9ja0NvbnRleHQsIGFyZ3MpO1xuXG4gICAgICAgICAgICBleHBlY3QobW9ja0ZuKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChtb2NrQ29udGV4dCwgZXhwZWN0ZWRDYWxsKG1vY2tDb250ZXh0LCBhcmdzKSk7XG4gICAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGVycm9yUmV0dXJuVmFsdWUpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBDb21tb24gbW9jayBkYXRhIGdlbmVyYXRvcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrVXNlciA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgZW1haWw6ICd0ZXN0QGV4YW1wbGUuY29tJyxcbiAgZmlyc3ROYW1lOiAnVGVzdCcsXG4gIGxhc3ROYW1lOiAnVXNlcicsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgdXNlcm5hbWU6ICd0ZXN0dXNlcicsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUG9zdCA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgY29udGVudDogJ1Rlc3QgcG9zdCBjb250ZW50JyxcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIHBvc3RJZDogJ3Bvc3QxJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja01lc3NhZ2UgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGNvbnRlbnQ6ICdUZXN0IG1lc3NhZ2UnLFxuICBjb252ZXJzYXRpb25JZDogJ2NvbnYxJyxcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIG1lc3NhZ2VJZDogJ21zZzEnLFxuICB1c2VySWQ6ICd1c2VyMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUmVhY3Rpb24gPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGNyZWF0ZWRBdDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICBwb3N0SWQ6ICdwb3N0MScsXG4gIHJlYWN0aW9uSWQ6ICdyZWFjdDEnLFxuICB0eXBlOiAnbGlrZScsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tUYWcgPSAob3ZlcnJpZGVzOiBNb2NrT3ZlcnJpZGVzID0ge30pID0+ICh7XG4gIGRlc2NyaXB0aW9uOiAnVGVzdCB0YWcgZGVzY3JpcHRpb24nLFxuICBuYW1lOiAndGVzdC10YWcnLFxuICB0YWdJZDogJ3RhZzEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG4vLyBVdGlsaXR5IHRvIHNldCB1cCBjb21tb24gbW9ja3NcbmV4cG9ydCBjb25zdCBzZXR1cENvbW1vbk1vY2tzID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBtb2NrID0ge1xuICAgIF9fZXNNb2R1bGU6IHRydWUsXG4gICAgdXNlRGI6IGplc3QuZm4oKSxcbiAgICBnZXRMaW1pdDogamVzdC5mbigpLFxuICAgIGdldERvY0lkOiBqZXN0LmZuKCksXG4gICAgc29ydElkczogamVzdC5mbigpLFxuICAgIGdldEdxbEZpZWxkczogamVzdC5mbigpLFxuICAgIGRlZmF1bHQ6IHtcbiAgICAgIHVzZURiOiBqZXN0LmZuKCksXG4gICAgICBnZXRMaW1pdDogamVzdC5mbigpLFxuICAgICAgZ2V0RG9jSWQ6IGplc3QuZm4oKSxcbiAgICAgIHNvcnRJZHM6IGplc3QuZm4oKSxcbiAgICAgIGdldEdxbEZpZWxkczogamVzdC5mbigpXG4gICAgfVxuICB9O1xuICBhd2FpdCBqZXN0Lmlzb2xhdGVNb2R1bGVzQXN5bmMoYXN5bmMgKCkgPT4ge1xuICAgIGplc3QudW5zdGFibGVfbW9ja01vZHVsZSgnLi9hcmFuZ29kYlV0aWxzLmpzJywgKCkgPT4gbW9jayk7XG4gIH0pO1xufTtcblxuLy8gVXRpbGl0eSB0byBjbGVhciBhbGwgbW9ja3NcbmV4cG9ydCBjb25zdCBjbGVhckFsbE1vY2tzID0gKCkgPT4ge1xuICBqZXN0LmNsZWFyQWxsTW9ja3MoKTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGEgdGVzdCBzdWl0ZSBmb3IgYWN0aW9uIGZ1bmN0aW9uc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZUFjdGlvblRlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBhY3Rpb25zUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIGFyZ3M6IFRlc3RBcmdzO1xuICAgIG1vY2tRdWVyeTogTW9jaztcbiAgICBleHBlY3RlZFJlc3VsdDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IGFjdGlvbnNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICBhY3Rpb25zID0gYXdhaXQgaW1wb3J0KGFjdGlvbnNQYXRoKTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGFjdGlvbk5hbWUsIGFyZ3MsIG1vY2tRdWVyeSwgZXhwZWN0ZWRSZXN1bHR9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGV4ZWN1dGUgJHthY3Rpb25OYW1lfWAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgbW9ja0NvbnRleHQgPSBjcmVhdGVNb2NrQ29udGV4dCgpO1xuICAgICAgICBjb25zdCBtb2NrRGIgPSBqZXN0LmZuKCkubW9ja1JldHVyblZhbHVlKHtcbiAgICAgICAgICBxdWVyeTogbW9ja1F1ZXJ5XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBhY3R1YWwgPSBqZXN0LnJlcXVpcmVBY3R1YWwoJy4vYXJhbmdvZGJVdGlscy5qcycpIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgICBqZXN0LmRvTW9jaygnLi9hcmFuZ29kYlV0aWxzLmpzJywgKCkgPT4gKHtcbiAgICAgICAgICB1c2VEYjogbW9ja0RiLFxuICAgICAgICAgIC4uLmFjdHVhbFxuICAgICAgICB9KSk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgKGFjdGlvbnNbYWN0aW9uTmFtZV0gYXMgTW9jaykobW9ja0NvbnRleHQsIGFyZ3MpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkUmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVBZGFwdGVyVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFkYXB0ZXJQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogYW55W11cbikgPT4ge1xuICBkZXNjcmliZShuYW1lLCAoKSA9PiB7XG4gICAgbGV0IGFkYXB0ZXI6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICBhZGFwdGVyID0gYXdhaXQgaW1wb3J0KGFkYXB0ZXJQYXRoKTtcbiAgICB9KTtcblxuICAgIHRlc3RDYXNlcy5mb3JFYWNoKCh7bmFtZTogdGVzdE5hbWUsIGlucHV0LCBleHBlY3RlZE91dHB1dH0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgJHt0ZXN0TmFtZX1gLCAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IChhZGFwdGVyIGFzIHtwYXJzZVRhZzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkucGFyc2VUYWcoaW5wdXQpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkT3V0cHV0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVVdGlsc1Rlc3RTdWl0ZSA9IChcbiAgbmFtZTogc3RyaW5nLFxuICB1dGlsc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGlucHV0OiBUZXN0QXJncztcbiAgICBleHBlY3RlZE91dHB1dDogVGVzdFJldHVyblZhbHVlO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKG5hbWUsICgpID0+IHtcbiAgICBsZXQgdXRpbHM6IGFueTtcblxuICAgIGJlZm9yZUFsbChhc3luYyAoKSA9PiB7XG4gICAgICB1dGlscyA9IGF3YWl0IGltcG9ydCh1dGlsc1BhdGgpO1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgaW5wdXQsIGV4cGVjdGVkT3V0cHV0fSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCAke3Rlc3ROYW1lfWAsICgpID0+IHtcbiAgICAgICAgbGV0IHJlc3VsdDtcbiAgICAgICAgaWYoKHV0aWxzIGFzIHtsb2dJbmZvPzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7bG9nSW5mbzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkubG9nSW5mbyhpbnB1dCk7XG4gICAgICAgIH0gZWxzZSBpZigodXRpbHMgYXMge3JlbW92ZUVtcHR5S2V5cz86IChpbnB1dDogVGVzdEFyZ3MpID0+IFRlc3RSZXR1cm5WYWx1ZX0pLnJlbW92ZUVtcHR5S2V5cykge1xuICAgICAgICAgIHJlc3VsdCA9ICh1dGlscyBhcyB7cmVtb3ZlRW1wdHlLZXlzOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5yZW1vdmVFbXB0eUtleXMoaW5wdXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gc3VpdGFibGUgZnVuY3Rpb24gZm91bmQgaW4gJHt1dGlsc1BhdGh9YCk7XG4gICAgICAgIH1cbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZE91dHB1dCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuIl0sIm5hbWVzIjpbImJlZm9yZUFsbCIsImRlc2NyaWJlIiwiZXhwZWN0IiwiaXQiLCJ2aSIsImplc3QiLCJPYmplY3QiLCJhc3NpZ24iLCJpc29sYXRlTW9kdWxlc0FzeW5jIiwiZm4iLCJyZXNldE1vZHVsZXMiLCJyZXF1aXJlQWN0dWFsIiwiaW1wb3J0QWN0dWFsIiwidW5zdGFibGVfbW9ja01vZHVsZSIsImRvTW9jayIsImNyZWF0ZU1vY2tDb250ZXh0Iiwib3ZlcnJpZGVzIiwiZGVmYXVsdFNlc3Npb24iLCJ1c2VyQWNjZXNzIiwidXNlcklkIiwidXNlcm5hbWUiLCJvdmVycmlkZVNlc3Npb24iLCJzZXNzaW9uIiwiY29udGV4dCIsImRhdGFiYXNlTmFtZSIsInVuZGVmaW5lZCIsImNyZWF0ZU1vY2tSZXNvbHZlSW5mbyIsImZpZWxkTmFtZSIsIm9wZXJhdGlvbiIsInBhcmVudFR5cGUiLCJyZXR1cm5UeXBlIiwic2NoZW1hIiwiZmllbGROb2RlcyIsImZyYWdtZW50cyIsInBhdGgiLCJrZXkiLCJwcmV2IiwidHlwZW5hbWUiLCJyb290VmFsdWUiLCJ2YXJpYWJsZVZhbHVlcyIsIm1vY2tBY3Rpb25zTW9kdWxlIiwibW9kdWxlUGF0aCIsIm1vY2tBY3Rpb25zIiwibW9ja3MiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjIiwidmFsdWUiLCJtb2NrSW1wbGVtZW50YXRpb24iLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIm1vY2tPYmplY3RUeXBlIiwidHlwZU5hbWUiLCJtb2NrIiwiZ2V0RmllbGQiLCJyZXNvbHZlIiwiZ2V0RmllbGRzIiwiY3JlYXRlUXVlcnlUZXN0U3VpdGUiLCJuYW1lIiwiYWN0aW9uc1BhdGgiLCJ0ZXN0Q2FzZXMiLCJhY3Rpb25zIiwibW9ja0NvbnRleHQiLCJmb3JFYWNoIiwidGVzdE5hbWUiLCJhY3Rpb25OYW1lIiwiYXJncyIsImV4cGVjdGVkQ2FsbCIsIm1vY2tSZXR1cm5WYWx1ZSIsImVycm9yQ2FzZSIsIm1vY2tGbiIsIlByb21pc2UiLCJyZXN1bHQiLCJ0b0hhdmVCZWVuQ2FsbGVkV2l0aCIsInRvRXF1YWwiLCJ0b0JlTnVsbCIsImNyZWF0ZU11dGF0aW9uVGVzdFN1aXRlIiwicmVxdWlyZXNBdXRoIiwiYXV0aFVzZXJJZCIsImNyZWF0ZUludGVncmF0aW9uVGVzdFN1aXRlIiwib2JqZWN0VHlwZVBhdGgiLCJzdWNjZXNzUmV0dXJuVmFsdWUiLCJlcnJvclJldHVyblZhbHVlIiwidGVzdEVycm9yQ2FzZSIsImNyZWF0ZU1vY2tVc2VyIiwiZW1haWwiLCJmaXJzdE5hbWUiLCJsYXN0TmFtZSIsImNyZWF0ZU1vY2tQb3N0IiwiY29udGVudCIsImNyZWF0ZWRBdCIsIkRhdGUiLCJ0b0lTT1N0cmluZyIsInBvc3RJZCIsImNyZWF0ZU1vY2tNZXNzYWdlIiwiY29udmVyc2F0aW9uSWQiLCJtZXNzYWdlSWQiLCJjcmVhdGVNb2NrUmVhY3Rpb24iLCJyZWFjdGlvbklkIiwidHlwZSIsImNyZWF0ZU1vY2tUYWciLCJkZXNjcmlwdGlvbiIsInRhZ0lkIiwic2V0dXBDb21tb25Nb2NrcyIsInVzZURiIiwiZ2V0TGltaXQiLCJnZXREb2NJZCIsInNvcnRJZHMiLCJnZXRHcWxGaWVsZHMiLCJjbGVhckFsbE1vY2tzIiwiY3JlYXRlQWN0aW9uVGVzdFN1aXRlIiwibW9ja1F1ZXJ5IiwiZXhwZWN0ZWRSZXN1bHQiLCJtb2NrRGIiLCJxdWVyeSIsImFjdHVhbCIsImNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUiLCJhZGFwdGVyUGF0aCIsImFkYXB0ZXIiLCJpbnB1dCIsImV4cGVjdGVkT3V0cHV0IiwicGFyc2VUYWciLCJjcmVhdGVVdGlsc1Rlc3RTdWl0ZSIsInV0aWxzUGF0aCIsInV0aWxzIiwibG9nSW5mbyIsInJlbW92ZUVtcHR5S2V5cyIsIkVycm9yIl0sIm1hcHBpbmdzIjoiQUFBQTs7O0NBR0MsR0FDRCxTQUFRQSxTQUFTLEVBQUVDLFFBQVEsRUFBRUMsTUFBTSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsUUFBTyxTQUFTO0FBSTNELE1BQU1DLE9BQU9DLE9BQU9DLE1BQU0sQ0FBQ0gsSUFBVztJQUNwQ0kscUJBQXFCLE9BQU9DO1FBQzFCTCxHQUFHTSxZQUFZO1FBQ2YsTUFBTUQ7SUFDUjtJQUNBRSxlQUFlUCxHQUFHUSxZQUFZO0lBQzlCQyxxQkFBcUJULEdBQUdVLE1BQU07QUFDaEM7QUFVQSxPQUFPLE1BQU1DLG9CQUFvQixDQUFDQyxZQUEyQixDQUFDLENBQUM7SUFDN0QsTUFBTUMsaUJBQWlCO1FBQ3JCQyxZQUFZO1FBQ1pDLFFBQVE7UUFDUkMsVUFBVTtJQUNaO0lBQ0EsTUFBTUMsa0JBQWtETCxVQUFVTSxPQUFPLElBQUksQ0FBQztJQUM5RSxNQUFNQyxVQUF1QjtRQUMzQkMsY0FBYyxBQUFDUixVQUFVUSxZQUFZLElBQWU7UUFDcEQsR0FBR1IsU0FBUztJQUNkO0lBQ0EsT0FBT08sUUFBUUQsT0FBTztJQUN0QkMsUUFBUUQsT0FBTyxHQUFHO1FBQ2hCSixZQUFZRyxnQkFBZ0JILFVBQVUsS0FBS08sWUFBWUosZ0JBQWdCSCxVQUFVLEdBQUdELGVBQWVDLFVBQVU7UUFDN0dDLFFBQVFFLGdCQUFnQkYsTUFBTSxLQUFLTSxZQUFZSixnQkFBZ0JGLE1BQU0sR0FBR0YsZUFBZUUsTUFBTTtRQUM3RkMs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
|
|
300
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvdXRpbHMvdGVzdFV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICovXG5pbXBvcnQge2JlZm9yZUFsbCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpfSBmcm9tICd2aXRlc3QnO1xuaW1wb3J0IHR5cGUge01vY2t9IGZyb20gJ3ZpdGVzdCc7XG5pbXBvcnQgdHlwZSB7R3JhcGhRTFJlc29sdmVJbmZvfSBmcm9tICdncmFwaHFsJztcblxuY29uc3QgamVzdCA9IE9iamVjdC5hc3NpZ24odmkgYXMgYW55LCB7XG4gIGlzb2xhdGVNb2R1bGVzQXN5bmM6IGFzeW5jIChmbjogKCkgPT4gUHJvbWlzZTx2b2lkPikgPT4ge1xuICAgIHZpLnJlc2V0TW9kdWxlcygpO1xuICAgIGF3YWl0IGZuKCk7XG4gIH0sXG4gIHJlcXVpcmVBY3R1YWw6IHZpLmltcG9ydEFjdHVhbCxcbiAgdW5zdGFibGVfbW9ja01vZHVsZTogdmkuZG9Nb2NrXG59KSBhcyBhbnk7XG5cbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcblxuLy8gRGVmaW5lIHByb3BlciB0eXBlcyBmb3IgdGVzdCB1dGlsaXRpZXNcbnR5cGUgTW9ja092ZXJyaWRlcyA9IFBhcnRpYWw8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+O1xudHlwZSBUZXN0Q29udGV4dCA9IFBhcnRpYWw8QXBpQ29udGV4dD4gJiB7c2Vzc2lvbj86IFBhcnRpYWw8e3VzZXJJZDogc3RyaW5nOyB1c2VybmFtZTogc3RyaW5nOyB1c2VyQWNjZXNzOiBudW1iZXJ9Pn07XG50eXBlIFRlc3RBcmdzID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG50eXBlIFRlc3RSZXR1cm5WYWx1ZSA9IHVua25vd247XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrQ29udGV4dCA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSk6IEFwaUNvbnRleHQgPT4ge1xuICBjb25zdCBkZWZhdWx0U2Vzc2lvbiA9IHtcbiAgICB1c2VyQWNjZXNzOiAxLFxuICAgIHVzZXJJZDogJ3VzZXIxJyxcbiAgICB1c2VybmFtZTogJ3Rlc3R1c2VyJ1xuICB9O1xuICBjb25zdCBvdmVycmlkZVNlc3Npb246IFBhcnRpYWw8dHlwZW9mIGRlZmF1bHRTZXNzaW9uPiA9IG92ZXJyaWRlcy5zZXNzaW9uIHx8IHt9O1xuICBjb25zdCBjb250ZXh0OiBUZXN0Q29udGV4dCA9IHtcbiAgICBkYXRhYmFzZU5hbWU6IChvdmVycmlkZXMuZGF0YWJhc2VOYW1lIGFzIHN0cmluZykgPz8gJ3Rlc3QnLFxuICAgIC4uLm92ZXJyaWRlc1xuICB9O1xuICBkZWxldGUgY29udGV4dC5zZXNzaW9uO1xuICBjb250ZXh0LnNlc3Npb24gPSB7XG4gICAgdXNlckFjY2Vzczogb3ZlcnJpZGVTZXNzaW9uLnVzZXJBY2Nlc3MgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VyQWNjZXNzIDogZGVmYXVsdFNlc3Npb24udXNlckFjY2VzcyxcbiAgICB1c2VySWQ6IG92ZXJyaWRlU2Vzc2lvbi51c2VySWQgIT09IHVuZGVmaW5lZCA/IG92ZXJyaWRlU2Vzc2lvbi51c2VySWQgOiBkZWZhdWx0U2Vzc2lvbi51c2VySWQsXG4gICAgdXNlcm5hbWU6IG92ZXJyaWRlU2Vzc2lvbi51c2VybmFtZSAhPT0gdW5kZWZpbmVkID8gb3ZlcnJpZGVTZXNzaW9uLnVzZXJuYW1lIDogZGVmYXVsdFNlc3Npb24udXNlcm5hbWVcbiAgfTtcbiAgcmV0dXJuIGNvbnRleHQgYXMgQXBpQ29udGV4dDtcbn07XG5cbi8vIENvbW1vbiBtb2NrIHJlc29sdmUgaW5mbyBmb3IgR3JhcGhRTCByZXNvbHZlcnNcbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrUmVzb2x2ZUluZm8gPSAoZmllbGROYW1lOiBzdHJpbmcgPSAndGVzdCcpOiBHcmFwaFFMUmVzb2x2ZUluZm8gPT4ge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHt9IGFzIEdyYXBoUUxSZXNvbHZlSW5mb1snb3BlcmF0aW9uJ107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvY29uc2lzdGVudC10eXBlLWFzc2VydGlvbnNcbiAgY29uc3QgcGFyZW50VHlwZSA9IHt9IGFzIEdyYXBoUUxSZXNvbHZlSW5mb1sncGFyZW50VHlwZSddO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtdHlwZS1hc3NlcnRpb25zXG4gIGNvbnN0IHJldHVyblR5cGUgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3JldHVyblR5cGUnXTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LXR5cGUtYXNzZXJ0aW9uc1xuICBjb25zdCBzY2hlbWEgPSB7fSBhcyBHcmFwaFFMUmVzb2x2ZUluZm9bJ3NjaGVtYSddO1xuXG4gIHJldHVybiB7XG4gICAgZmllbGROYW1lLFxuICAgIGZpZWxkTm9kZXM6IFtdLFxuICAgIGZyYWdtZW50czoge30sXG4gICAgb3BlcmF0aW9uLFxuICAgIHBhcmVudFR5cGUsXG4gICAgcGF0aDoge2tleTogZmllbGROYW1lLCBwcmV2OiB1bmRlZmluZWQsIHR5cGVuYW1lOiAnVGVzdCd9LFxuICAgIHJldHVyblR5cGUsXG4gICAgcm9vdFZhbHVlOiB7fSxcbiAgICBzY2hlbWEsXG4gICAgdmFyaWFibGVWYWx1ZXM6IHt9XG4gIH07XG59O1xuXG4vLyBVdGlsaXR5IHRvIG1vY2sgYWN0aW9ucyBtb2R1bGVcbmV4cG9ydCBjb25zdCBtb2NrQWN0aW9uc01vZHVsZSA9IGFzeW5jIChtb2R1bGVQYXRoOiBzdHJpbmcsIG1vY2tBY3Rpb25zOiBSZWNvcmQ8c3RyaW5nLCBNb2NrPikgPT4ge1xuICBjb25zdCBtb2NrcyA9IE9iamVjdC5lbnRyaWVzKG1vY2tBY3Rpb25zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgYWNjW2tleV0gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKHZhbHVlKTtcbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBNb2NrPik7XG5cbiAgYXdhaXQgamVzdC5pc29sYXRlTW9kdWxlc0FzeW5jKGFzeW5jICgpID0+IHtcbiAgICBqZXN0LnVuc3RhYmxlX21vY2tNb2R1bGUobW9kdWxlUGF0aCwgKCkgPT4gKHtcbiAgICAgIF9fZXNNb2R1bGU6IHRydWUsXG4gICAgICAuLi5tb2NrcyxcbiAgICAgIGRlZmF1bHQ6IG1vY2tzXG4gICAgfSkpO1xuICB9KTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gbW9jayBvYmplY3QgdHlwZXNcbmV4cG9ydCBjb25zdCBtb2NrT2JqZWN0VHlwZSA9IGFzeW5jIChtb2R1bGVQYXRoOiBzdHJpbmcsIHR5cGVOYW1lOiBzdHJpbmcpID0+IHtcbiAgY29uc3QgbW9jayA9IHtcbiAgICBfX2VzTW9kdWxlOiB0cnVlLFxuICAgIFt0eXBlTmFtZV06IHtcbiAgICAgIGdldEZpZWxkOiBqZXN0LmZuKCgpID0+ICh7cmVzb2x2ZTogamVzdC5mbigpfSkpLFxuICAgICAgZ2V0RmllbGRzOiBqZXN0LmZuKCgpID0+ICh7fSkpXG4gICAgfSxcbiAgICBkZWZhdWx0OiB7XG4gICAgICBbdHlwZU5hbWVdOiB7XG4gICAgICAgIGdldEZpZWxkOiBqZXN0LmZuKCgpID0+ICh7cmVzb2x2ZTogamVzdC5mbigpfSkpLFxuICAgICAgICBnZXRGaWVsZHM6IGplc3QuZm4oKCkgPT4gKHt9KSlcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGF3YWl0IGplc3QuaXNvbGF0ZU1vZHVsZXNBc3luYyhhc3luYyAoKSA9PiB7XG4gICAgamVzdC51bnN0YWJsZV9tb2NrTW9kdWxlKG1vZHVsZVBhdGgsICgpID0+IG1vY2spO1xuICB9KTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGEgdGVzdCBzdWl0ZSBmb3IgcXVlcnkgcmVzb2x2ZXJzXG5leHBvcnQgY29uc3QgY3JlYXRlUXVlcnlUZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWN0aW9uc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBhcmdzOiBUZXN0QXJncztcbiAgICBleHBlY3RlZENhbGw6IChjb250ZXh0OiBUZXN0Q29udGV4dCwgYXJnczogVGVzdEFyZ3MpID0+IFRlc3RBcmdzO1xuICAgIG1vY2tSZXR1cm5WYWx1ZTogVGVzdFJldHVyblZhbHVlO1xuICAgIGVycm9yQ2FzZT86IGJvb2xlYW47XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUoYCR7bmFtZX0gUXVlcmllc2AsICgpID0+IHtcbiAgICBsZXQgYWN0aW9uczogYW55O1xuICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcblxuICAgIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgICBhY3Rpb25zID0ge307XG4gICAgfSk7XG5cbiAgICB0ZXN0Q2FzZXMuZm9yRWFjaCgoe25hbWU6IHRlc3ROYW1lLCBhY3Rpb25OYW1lLCBhcmdzLCBleHBlY3RlZENhbGwsIG1vY2tSZXR1cm5WYWx1ZSwgZXJyb3JDYXNlID0gZmFsc2V9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGNhbGwgJHthY3Rpb25OYW1lfSBhY3Rpb24gd2l0aCBjb3JyZWN0IHBhcmFtZXRlcnNgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vY2tGbiA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKG1vY2tSZXR1cm5WYWx1ZSkpO1xuICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChtb2NrUmV0dXJuVmFsdWUpO1xuICAgICAgfSk7XG5cbiAgICAgIGlmKGVycm9yQ2FzZSkge1xuICAgICAgICBpdChgc2hvdWxkIGhhbmRsZSAke2FjdGlvbk5hbWV9IHdoZW4gbm8gZGF0YSBmb3VuZGAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShudWxsKSk7XG4gICAgICAgICAgYWN0aW9uc1thY3Rpb25OYW1lXSA9IG1vY2tGbjtcblxuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgICAgZXhwZWN0KG1vY2tGbikudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvQmVOdWxsKCk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn07XG5cbi8vIFV0aWxpdHkgdG8gY3JlYXRlIGEgdGVzdCBzdWl0ZSBmb3IgbXV0YXRpb24gcmVzb2x2ZXJzXG5leHBvcnQgY29uc3QgY3JlYXRlTXV0YXRpb25UZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWN0aW9uc1BhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBhcmdzOiBUZXN0QXJncztcbiAgICBleHBlY3RlZENhbGw6IChjb250ZXh0OiBUZXN0Q29udGV4dCwgYXJnczogVGVzdEFyZ3MpID0+IFRlc3RBcmdzO1xuICAgIG1vY2tSZXR1cm5WYWx1ZTogVGVzdFJldHVyblZhbHVlO1xuICAgIHJlcXVpcmVzQXV0aD86IGJvb2xlYW47XG4gICAgYXV0aFVzZXJJZD86IHN0cmluZztcbiAgfT5cbikgPT4ge1xuICBkZXNjcmliZShgJHtuYW1lfSBNdXRhdGlvbnNgLCAoKSA9PiB7XG4gICAgbGV0IGFjdGlvbnM6IGFueTtcblxuICAgIGJlZm9yZUFsbCgoKSA9PiB7XG4gICAgICBhY3Rpb25zID0ge307XG4gICAgfSk7XG5cbiAgICB0ZXN0Q2FzZXMuZm9yRWFjaCgoe1xuICAgICAgYWN0aW9uTmFtZSxcbiAgICAgIGFyZ3MsXG4gICAgICBleHBlY3RlZENhbGwsXG4gICAgICBtb2NrUmV0dXJuVmFsdWUsXG4gICAgICByZXF1aXJlc0F1dGggPSBmYWxzZSxcbiAgICAgIGF1dGhVc2VySWRcbiAgICB9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkIGNhbGwgJHthY3Rpb25OYW1lfSBhY3Rpb24gd2l0aCBjb3JyZWN0IHBhcmFtZXRlcnNgLCBhc3luYyAoKSA9PiB7XG4gICAgICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcbiAgICAgICAgaWYocmVxdWlyZXNBdXRoICYmIGF1dGhVc2VySWQpIHtcbiAgICAgICAgICAobW9ja0NvbnRleHQuc2Vzc2lvbiBhcyB7dXNlcklkOiBzdHJpbmd9KS51c2VySWQgPSBhdXRoVXNlcklkO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgbW9ja0ZuID0gamVzdC5mbigpLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiBQcm9taXNlLnJlc29sdmUobW9ja1JldHVyblZhbHVlKSk7XG4gICAgICAgIGFjdGlvbnNbYWN0aW9uTmFtZV0gPSBtb2NrRm47XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9ja0ZuKG1vY2tDb250ZXh0LCBhcmdzKTtcbiAgICAgICAgZXhwZWN0KG1vY2tGbikudG9IYXZlQmVlbkNhbGxlZFdpdGgobW9ja0NvbnRleHQsIGV4cGVjdGVkQ2FsbChtb2NrQ29udGV4dCwgYXJncykpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKG1vY2tSZXR1cm5WYWx1ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNyZWF0ZSBpbnRlZ3JhdGlvbiB0ZXN0IHN1aXRlXG5leHBvcnQgY29uc3QgY3JlYXRlSW50ZWdyYXRpb25UZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWN0aW9uc1BhdGg6IHN0cmluZyxcbiAgb2JqZWN0VHlwZVBhdGg6IHN0cmluZyxcbiAgdHlwZU5hbWU6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBBcnJheTx7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGFjdGlvbk5hbWU6IHN0cmluZztcbiAgICBhcmdzOiBUZXN0QXJncztcbiAgICBleHBlY3RlZENhbGw6IChjb250ZXh0OiBUZXN0Q29udGV4dCwgYXJnczogVGVzdEFyZ3MpID0+IFRlc3RBcmdzO1xuICAgIHN1Y2Nlc3NSZXR1cm5WYWx1ZTogVGVzdFJldHVyblZhbHVlO1xuICAgIGVycm9yUmV0dXJuVmFsdWU6IFRlc3RSZXR1cm5WYWx1ZTtcbiAgICB0ZXN0RXJyb3JDYXNlOiBib29sZWFuO1xuICB9PlxuKSA9PiB7XG4gIGRlc2NyaWJlKGAke25hbWV9IEludGVncmF0aW9uYCwgKCkgPT4ge1xuICAgIGxldCBhY3Rpb25zOiBhbnk7XG5cbiAgICBiZWZvcmVBbGwoKCkgPT4ge1xuICAgICAgYWN0aW9ucyA9IHt9O1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtcbiAgICAgIG5hbWU6IHRlc3ROYW1lLFxuICAgICAgYWN0aW9uTmFtZSxcbiAgICAgIGFyZ3MsXG4gICAgICBleHBlY3RlZENhbGwsXG4gICAgICBzdWNjZXNzUmV0dXJuVmFsdWUsXG4gICAgICBlcnJvclJldHVyblZhbHVlLFxuICAgICAgdGVzdEVycm9yQ2FzZVxuICAgIH0pID0+IHtcbiAgICAgIGRlc2NyaWJlKHRlc3ROYW1lLCAoKSA9PiB7XG4gICAgICAgIGl0KGBzaG91bGQgcmV0dXJuIGRhdGEgd2hlbiAke2FjdGlvbk5hbWV9IHN1Y2NlZWRzYCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcbiAgICAgICAgICBjb25zdCBtb2NrRm4gPSBqZXN0LmZuKCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IFByb21pc2UucmVzb2x2ZShzdWNjZXNzUmV0dXJuVmFsdWUpKTtcbiAgICAgICAgICBhY3Rpb25zW2FjdGlvbk5hbWVdID0gbW9ja0ZuO1xuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbW9ja0ZuKG1vY2tDb250ZXh0LCBhcmdzKTtcblxuICAgICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKHN1Y2Nlc3NSZXR1cm5WYWx1ZSB8fCB7fSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmKHRlc3RFcnJvckNhc2UpIHtcbiAgICAgICAgICBpdChgc2hvdWxkIGhhbmRsZSAke2FjdGlvbk5hbWV9IHdoZW4gbm8gZGF0YSBmb3VuZGAsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1vY2tDb250ZXh0ID0gY3JlYXRlTW9ja0NvbnRleHQoKTtcbiAgICAgICAgICAgIGNvbnN0IG1vY2tGbiA9IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gUHJvbWlzZS5yZXNvbHZlKGVycm9yUmV0dXJuVmFsdWUpKTtcbiAgICAgICAgICAgIGFjdGlvbnNbYWN0aW9uTmFtZV0gPSBtb2NrRm47XG5cbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG1vY2tGbihtb2NrQ29udGV4dCwgYXJncyk7XG5cbiAgICAgICAgICAgIGV4cGVjdChtb2NrRm4pLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKG1vY2tDb250ZXh0LCBleHBlY3RlZENhbGwobW9ja0NvbnRleHQsIGFyZ3MpKTtcbiAgICAgICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXJyb3JSZXR1cm5WYWx1ZSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG5cbi8vIENvbW1vbiBtb2NrIGRhdGEgZ2VuZXJhdG9yc1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tVc2VyID0gKG92ZXJyaWRlczogTW9ja092ZXJyaWRlcyA9IHt9KSA9PiAoe1xuICBlbWFpbDogJ3Rlc3RAZXhhbXBsZS5jb20nLFxuICBmaXJzdE5hbWU6ICdUZXN0JyxcbiAgbGFzdE5hbWU6ICdVc2VyJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICB1c2VybmFtZTogJ3Rlc3R1c2VyJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tQb3N0ID0gKG92ZXJyaWRlczogTW9ja092ZXJyaWRlcyA9IHt9KSA9PiAoe1xuICBjb250ZW50OiAnVGVzdCBwb3N0IGNvbnRlbnQnLFxuICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgcG9zdElkOiAncG9zdDEnLFxuICB1c2VySWQ6ICd1c2VyMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNb2NrTWVzc2FnZSA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgY29udGVudDogJ1Rlc3QgbWVzc2FnZScsXG4gIGNvbnZlcnNhdGlvbklkOiAnY29udjEnLFxuICBjcmVhdGVkQXQ6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgbWVzc2FnZUlkOiAnbXNnMScsXG4gIHVzZXJJZDogJ3VzZXIxJyxcbiAgLi4ub3ZlcnJpZGVzXG59KTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1vY2tSZWFjdGlvbiA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgY3JlYXRlZEF0OiBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCksXG4gIHBvc3RJZDogJ3Bvc3QxJyxcbiAgcmVhY3Rpb25JZDogJ3JlYWN0MScsXG4gIHR5cGU6ICdsaWtlJyxcbiAgdXNlcklkOiAndXNlcjEnLFxuICAuLi5vdmVycmlkZXNcbn0pO1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTW9ja1RhZyA9IChvdmVycmlkZXM6IE1vY2tPdmVycmlkZXMgPSB7fSkgPT4gKHtcbiAgZGVzY3JpcHRpb246ICdUZXN0IHRhZyBkZXNjcmlwdGlvbicsXG4gIG5hbWU6ICd0ZXN0LXRhZycsXG4gIHRhZ0lkOiAndGFnMScsXG4gIC4uLm92ZXJyaWRlc1xufSk7XG5cbi8vIFV0aWxpdHkgdG8gc2V0IHVwIGNvbW1vbiBtb2Nrc1xuZXhwb3J0IGNvbnN0IHNldHVwQ29tbW9uTW9ja3MgPSBhc3luYyAoKSA9PiB7XG4gIGNvbnN0IG1vY2sgPSB7XG4gICAgX19lc01vZHVsZTogdHJ1ZSxcbiAgICB1c2VEYjogamVzdC5mbigpLFxuICAgIGdldExpbWl0OiBqZXN0LmZuKCksXG4gICAgZ2V0RG9jSWQ6IGplc3QuZm4oKSxcbiAgICBzb3J0SWRzOiBqZXN0LmZuKCksXG4gICAgZ2V0R3FsRmllbGRzOiBqZXN0LmZuKCksXG4gICAgZGVmYXVsdDoge1xuICAgICAgdXNlRGI6IGplc3QuZm4oKSxcbiAgICAgIGdldExpbWl0OiBqZXN0LmZuKCksXG4gICAgICBnZXREb2NJZDogamVzdC5mbigpLFxuICAgICAgc29ydElkczogamVzdC5mbigpLFxuICAgICAgZ2V0R3FsRmllbGRzOiBqZXN0LmZuKClcbiAgICB9XG4gIH07XG4gIGF3YWl0IGplc3QuaXNvbGF0ZU1vZHVsZXNBc3luYyhhc3luYyAoKSA9PiB7XG4gICAgamVzdC51bnN0YWJsZV9tb2NrTW9kdWxlKCcuL2FyYW5nb2RiVXRpbHMuanMnLCAoKSA9PiBtb2NrKTtcbiAgfSk7XG59O1xuXG4vLyBVdGlsaXR5IHRvIGNsZWFyIGFsbCBtb2Nrc1xuZXhwb3J0IGNvbnN0IGNsZWFyQWxsTW9ja3MgPSAoKSA9PiB7XG4gIGplc3QuY2xlYXJBbGxNb2NrcygpO1xufTtcblxuLy8gVXRpbGl0eSB0byBjcmVhdGUgYSB0ZXN0IHN1aXRlIGZvciBhY3Rpb24gZnVuY3Rpb25zXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIGFjdGlvbnNQYXRoOiBzdHJpbmcsXG4gIHRlc3RDYXNlczogQXJyYXk8e1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgYXJnczogVGVzdEFyZ3M7XG4gICAgbW9ja1F1ZXJ5OiBNb2NrO1xuICAgIGV4cGVjdGVkUmVzdWx0OiBUZXN0UmV0dXJuVmFsdWU7XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUoYCR7bmFtZX0gYWN0aW9uc2AsICgpID0+IHtcbiAgICBsZXQgYWN0aW9uczogYW55O1xuXG4gICAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICAgIGFjdGlvbnMgPSBhd2FpdCBpbXBvcnQoYWN0aW9uc1BhdGgpO1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgYWN0aW9uTmFtZSwgYXJncywgbW9ja1F1ZXJ5LCBleHBlY3RlZFJlc3VsdH0pID0+IHtcbiAgICAgIGl0KGBzaG91bGQgZXhlY3V0ZSAke2FjdGlvbk5hbWV9YCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCBtb2NrQ29udGV4dCA9IGNyZWF0ZU1vY2tDb250ZXh0KCk7XG4gICAgICAgIGNvbnN0IG1vY2tEYiA9IGplc3QuZm4oKS5tb2NrUmV0dXJuVmFsdWUoe1xuICAgICAgICAgIHF1ZXJ5OiBtb2NrUXVlcnlcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGFjdHVhbCA9IGplc3QucmVxdWlyZUFjdHVhbCgnLi9hcmFuZ29kYlV0aWxzLmpzJykgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICAgIGplc3QuZG9Nb2NrKCcuL2FyYW5nb2RiVXRpbHMuanMnLCAoKSA9PiAoe1xuICAgICAgICAgIHVzZURiOiBtb2NrRGIsXG4gICAgICAgICAgLi4uYWN0dWFsXG4gICAgICAgIH0pKTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCAoYWN0aW9uc1thY3Rpb25OYW1lXSBhcyBNb2NrKShtb2NrQ29udGV4dCwgYXJncyk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRSZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUFkYXB0ZXJUZXN0U3VpdGUgPSAoXG4gIG5hbWU6IHN0cmluZyxcbiAgYWRhcHRlclBhdGg6IHN0cmluZyxcbiAgdGVzdENhc2VzOiBhbnlbXVxuKSA9PiB7XG4gIGRlc2NyaWJlKG5hbWUsICgpID0+IHtcbiAgICBsZXQgYWRhcHRlcjogYW55O1xuXG4gICAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICAgIGFkYXB0ZXIgPSBhd2FpdCBpbXBvcnQoYWRhcHRlclBhdGgpO1xuICAgIH0pO1xuXG4gICAgdGVzdENhc2VzLmZvckVhY2goKHtuYW1lOiB0ZXN0TmFtZSwgaW5wdXQsIGV4cGVjdGVkT3V0cHV0fSkgPT4ge1xuICAgICAgaXQoYHNob3VsZCAke3Rlc3ROYW1lfWAsICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gKGFkYXB0ZXIgYXMge3BhcnNlVGFnOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5wYXJzZVRhZyhpbnB1dCk7XG4gICAgICAgIGV4cGVjdChyZXN1bHQpLnRvRXF1YWwoZXhwZWN0ZWRPdXRwdXQpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVV0aWxzVGVzdFN1aXRlID0gKFxuICBuYW1lOiBzdHJpbmcsXG4gIHV0aWxzUGF0aDogc3RyaW5nLFxuICB0ZXN0Q2FzZXM6IEFycmF5PHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgaW5wdXQ6IFRlc3RBcmdzO1xuICAgIGV4cGVjdGVkT3V0cHV0OiBUZXN0UmV0dXJuVmFsdWU7XG4gIH0+XG4pID0+IHtcbiAgZGVzY3JpYmUobmFtZSwgKCkgPT4ge1xuICAgIGxldCB1dGlsczogYW55O1xuXG4gICAgYmVmb3JlQWxsKGFzeW5jICgpID0+IHtcbiAgICAgIHV0aWxzID0gYXdhaXQgaW1wb3J0KHV0aWxzUGF0aCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0Q2FzZXMuZm9yRWFjaCgoe25hbWU6IHRlc3ROYW1lLCBpbnB1dCwgZXhwZWN0ZWRPdXRwdXR9KSA9PiB7XG4gICAgICBpdChgc2hvdWxkICR7dGVzdE5hbWV9YCwgKCkgPT4ge1xuICAgICAgICBsZXQgcmVzdWx0O1xuICAgICAgICBpZigodXRpbHMgYXMge2xvZ0luZm8/OiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5sb2dJbmZvKSB7XG4gICAgICAgICAgcmVzdWx0ID0gKHV0aWxzIGFzIHtsb2dJbmZvOiAoaW5wdXQ6IFRlc3RBcmdzKSA9PiBUZXN0UmV0dXJuVmFsdWV9KS5sb2dJbmZvKGlucHV0KTtcbiAgICAgICAgfSBlbHNlIGlmKCh1dGlscyBhcyB7cmVtb3ZlRW1wdHlLZXlzPzogKGlucHV0OiBUZXN0QXJncykgPT4gVGVzdFJldHVyblZhbHVlfSkucmVtb3ZlRW1wdHlLZXlzKSB7XG4gICAgICAgICAgcmVzdWx0ID0gKHV0aWxzIGFzIHtyZW1vdmVFbXB0eUtleXM6IChpbnB1dDogVGVzdEFyZ3MpID0+IFRlc3RSZXR1cm5WYWx1ZX0pLnJlbW92ZUVtcHR5S2V5cyhpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBzdWl0YWJsZSBmdW5jdGlvbiBmb3VuZCBpbiAke3V0aWxzUGF0aH1gKTtcbiAgICAgICAgfVxuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkT3V0cHV0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcbn07XG4iXSwibmFtZXMiOlsiYmVmb3JlQWxsIiwiZGVzY3JpYmUiLCJleHBlY3QiLCJpdCIsInZpIiwiamVzdCIsIk9iamVjdCIsImFzc2lnbiIsImlzb2xhdGVNb2R1bGVzQXN5bmMiLCJmbiIsInJlc2V0TW9kdWxlcyIsInJlcXVpcmVBY3R1YWwiLCJpbXBvcnRBY3R1YWwiLCJ1bnN0YWJsZV9tb2NrTW9kdWxlIiwiZG9Nb2NrIiwiY3JlYXRlTW9ja0NvbnRleHQiLCJvdmVycmlkZXMiLCJkZWZhdWx0U2Vzc2lvbiIsInVzZXJBY2Nlc3MiLCJ1c2VySWQiLCJ1c2VybmFtZSIsIm92ZXJyaWRlU2Vzc2lvbiIsInNlc3Npb24iLCJjb250ZXh0IiwiZGF0YWJhc2VOYW1lIiwidW5kZWZpbmVkIiwiY3JlYXRlTW9ja1Jlc29sdmVJbmZvIiwiZmllbGROYW1lIiwib3BlcmF0aW9uIiwicGFyZW50VHlwZSIsInJldHVyblR5cGUiLCJzY2hlbWEiLCJmaWVsZE5vZGVzIiwiZnJhZ21lbnRzIiwicGF0aCIsImtleSIsInByZXYiLCJ0eXBlbmFtZSIsInJvb3RWYWx1ZSIsInZhcmlhYmxlVmFsdWVzIiwibW9ja0FjdGlvbnNNb2R1bGUiLCJtb2R1bGVQYXRoIiwibW9ja0FjdGlvbnMiLCJtb2NrcyIsImVudHJpZXMiLCJyZWR1Y2UiLCJhY2MiLCJ2YWx1ZSIsIm1vY2tJbXBsZW1lbnRhdGlvbiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwibW9ja09iamVjdFR5cGUiLCJ0eXBlTmFtZSIsIm1vY2siLCJnZXRGaWVsZCIsInJlc29sdmUiLCJnZXRGaWVsZHMiLCJjcmVhdGVRdWVyeVRlc3RTdWl0ZSIsIm5hbWUiLCJhY3Rpb25zUGF0aCIsInRlc3RDYXNlcyIsImFjdGlvbnMiLCJtb2NrQ29udGV4dCIsImZvckVhY2giLCJ0ZXN0TmFtZSIsImFjdGlvbk5hbWUiLCJhcmdzIiwiZXhwZWN0ZWRDYWxsIiwibW9ja1JldHVyblZhbHVlIiwiZXJyb3JDYXNlIiwibW9ja0ZuIiwiUHJvbWlzZSIsInJlc3VsdCIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwidG9FcXVhbCIsInRvQmVOdWxsIiwiY3JlYXRlTXV0YXRpb25UZXN0U3VpdGUiLCJyZXF1aXJlc0F1dGgiLCJhdXRoVXNlcklkIiwiY3JlYXRlSW50ZWdyYXRpb25UZXN0U3VpdGUiLCJvYmplY3RUeXBlUGF0aCIsInN1Y2Nlc3NSZXR1cm5WYWx1ZSIsImVycm9yUmV0dXJuVmFsdWUiLCJ0ZXN0RXJyb3JDYXNlIiwiY3JlYXRlTW9ja1VzZXIiLCJlbWFpbCIsImZpcnN0TmFtZSIsImxhc3ROYW1lIiwiY3JlYXRlTW9ja1Bvc3QiLCJjb250ZW50IiwiY3JlYXRlZEF0IiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwicG9zdElkIiwiY3JlYXRlTW9ja01lc3NhZ2UiLCJjb252ZXJzYXRpb25JZCIsIm1lc3NhZ2VJZCIsImNyZWF0ZU1vY2tSZWFjdGlvbiIsInJlYWN0aW9uSWQiLCJ0eXBlIiwiY3JlYXRlTW9ja1RhZyIsImRlc2NyaXB0aW9uIiwidGFnSWQiLCJzZXR1cENvbW1vbk1vY2tzIiwidXNlRGIiLCJnZXRMaW1pdCIsImdldERvY0lkIiwic29ydElkcyIsImdldEdxbEZpZWxkcyIsImNsZWFyQWxsTW9ja3MiLCJjcmVhdGVBY3Rpb25UZXN0U3VpdGUiLCJtb2NrUXVlcnkiLCJleHBlY3RlZFJlc3VsdCIsIm1vY2tEYiIsInF1ZXJ5IiwiYWN0dWFsIiwiY3JlYXRlQWRhcHRlclRlc3RTdWl0ZSIsImFkYXB0ZXJQYXRoIiwiYWRhcHRlciIsImlucHV0IiwiZXhwZWN0ZWRPdXRwdXQiLCJwYXJzZVRhZyIsImNyZWF0ZVV0aWxzVGVzdFN1aXRlIiwidXRpbHNQYXRoIiwidXRpbHMiLCJsb2dJbmZvIiwicmVtb3ZlRW1wdHlLZXlzIiwiRXJyb3IiXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUNELFNBQVFBLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUVDLEVBQUUsRUFBRUMsRUFBRSxRQUFPLFNBQVM7QUFJM0QsTUFBTUMsT0FBT0MsT0FBT0MsTUFBTSxDQUFDSCxJQUFXO0lBQ3BDSSxxQkFBcUIsT0FBT0M7UUFDMUJMLEdBQUdNLFlBQVk7UUFDZixNQUFNRDtJQUNSO0lBQ0FFLGVBQWVQLEdBQUdRLFlBQVk7SUFDOUJDLHFCQUFxQlQsR0FBR1UsTUFBTTtBQUNoQztBQVVBLE9BQU8sTUFBTUMsb0JBQW9CLENBQUNDLFlBQTJCLENBQUMsQ0FBQztJQUM3RCxNQUFNQyxpQkFBaUI7UUFDckJDLFlBQVk7UUFDWkMsUUFBUTtRQUNSQyxVQUFVO0lBQ1o7SUFDQSxNQUFNQyxrQkFBa0RMLFVBQVVNLE9BQU8sSUFBSSxDQUFDO0lBQzlFLE1BQU1DLFVBQXVCO1FBQzNCQyxjQUFjLEFBQUNSLFVBQVVRLFlBQVksSUFBZTtRQUNwRCxHQUFHUixTQUFTO0lBQ2Q7SUFDQSxPQUFPTyxRQUFRRCxPQUFPO0lBQ3RCQyxRQUFRRCxPQUFPLEdBQUc7UUFDaEJKLFlBQVlHLGdCQUFnQkgsVUFBVSxLQUFLTyxZQUFZSixnQkFBZ0JILFVBQVUsR0FBR0QsZUFBZUMsVUFBVTtRQUM3R0MsUUFBUUUsZ0JBQWdCRixNQUFNLEtBQUtNLFlBQVlKLGdCQUFnQkYsTUFBTSxHQUFHRixlQUFlRSxNQUFNO1FBQzdGQyxVQUFVQyxnQkFBZ0JELFFBQVEsS0FBS0ssWUFBWUos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
|
|
@@ -337,4 +337,4 @@ export async function ensureAllTranslationsProcessed() {
|
|
|
337
337
|
// // Force flush
|
|
338
338
|
// await ensureAllTranslationsProcessed();
|
|
339
339
|
|
|
340
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50Ly5jb2RleC13b3JrdHJlZXMvcmVha3Rvci1waGFudGF6ZS1jaGF0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3RyYW5zbGF0aW9uUXVldWUuZXhhbXBsZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqXG4gKiBFeGFtcGxlIHVzYWdlIG9mIHRoZSB0cmFuc2xhdGlvbiBxdWV1ZSBzeXN0ZW0gd2l0aCBHb29nbGUgVHJhbnNsYXRlIGludGVncmF0aW9uXG4gKlxuICogVGhpcyBkZW1vbnN0cmF0ZXMgaG93IHRvIHVzZSB0aGUgbmV3IHRyYW5zbGF0aW9uIHF1ZXVlIHRoYXQgYXV0b21hdGljYWxseVxuICogdHJhbnNsYXRlcyBjb250ZW50IHVzaW5nIEdvb2dsZSBUcmFuc2xhdGUgQVBJIHdoZW4gbmVlZGVkLlxuICovXG5cbmltcG9ydCB7Zmx1c2gsIGkxOG4sIHR5cGUgVHJhbnNsYXRpb25PYmplY3R9IGZyb20gJy4vdHJhbnNsYXRpb25RdWV1ZS5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtMb2NhbGV9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQudHlwZXMuanMnO1xuXG4vLyBFeGFtcGxlIDE6IEJhc2ljIHRyYW5zbGF0aW9ucyAtIHdpbGwgdXNlIGRhdGFiYXNlIG9yIHRyYW5zbGF0ZSBhcyBuZWVkZWRcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRXZWxjb21lTWVzc2FnZXMoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYWxlOiBMb2NhbGUgPSAnZW4nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICd3ZWxjb21lLnRpdGxlJyxcbiAgICAgIGZhbGxiYWNrOiAnV2VsY29tZSB0byBUb3JjaE9uZSEnXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICd3ZWxjb21lLnN1YnRpdGxlJyxcbiAgICAgIGZhbGxiYWNrOiAnWW91ciBwZXJzb25hbCBBSSBhc3Npc3RhbnQnXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICd3ZWxjb21lLmRlc2NyaXB0aW9uJyxcbiAgICAgIGZhbGxiYWNrOiAnR2V0IHN0YXJ0ZWQgYnkgZXhwbG9yaW5nIG91ciBmZWF0dXJlcydcbiAgICB9XG4gIF07XG5cbiAgLy8gVGhpcyB3aWxsOlxuICAvLyAxLiBDaGVjayBkYXRhYmFzZSBmb3IgZXhpc3RpbmcgdHJhbnNsYXRpb25zXG4gIC8vIDIuIElmIG5vdCBmb3VuZCBhbmQgbG9jYWxlIGlzIGRlZmF1bHQgKGVuKSwgc2F2ZSBmYWxsYmFjayB0byBEQlxuICAvLyAzLiBJZiBub3QgZm91bmQgYW5kIGxvY2FsZSBpcyBkaWZmZXJlbnQsIHRyYW5zbGF0ZSBmcm9tIGRlZmF1bHQgbG9jYWxlXG4gIC8vIDQuIFNhdmUgdHJhbnNsYXRlZCBjb250ZW50IHRvIERCIGZvciBmdXR1cmUgdXNlXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGkxOG4gKGNvbnRleHQsIHRyYW5zbGF0aW9ucywgbG9jYWxlKTtcblxuICByZXR1cm4gcmVzdWx0O1xuICAvLyBSZXR1cm5zOiB7XG4gIC8vICAgJ3dlbGNvbWUudGl0bGUnOiAnV2VsY29tZSB0byBUb3JjaE9uZSEnIChvciB0cmFuc2xhdGVkIHZlcnNpb24pLFxuICAvLyAgICd3ZWxjb21lLnN1YnRpdGxlJzogJ1lvdXIgcGVyc29uYWwgQUkgYXNzaXN0YW50JyAob3IgdHJhbnNsYXRlZCB2ZXJzaW9uKSxcbiAgLy8gICAnd2VsY29tZS5kZXNjcmlwdGlvbic6ICdHZXQgc3RhcnRlZCBieSBleHBsb3Jpbmcgb3VyIGZlYXR1cmVzJyAob3IgdHJhbnNsYXRlZCB2ZXJzaW9uKVxuICAvLyB9XG59XG5cbi8vIEV4YW1wbGUgMjogVHJhbnNsYXRpb25zIHdpdGggaW50ZXJwb2xhdGlvblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFBlcnNvbmFsaXplZE1lc3NhZ2VzKGNvbnRleHQ6IEFwaUNvbnRleHQsIHVzZXJuYW1lOiBzdHJpbmcsIGxvY2FsZTogTG9jYWxlID0gJ2VuJykge1xuICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBbXG4gICAge1xuICAgICAga2V5OiAndXNlci53ZWxjb21lJyxcbiAgICAgIGZhbGxiYWNrOiAnV2VsY29tZSBiYWNrLCB7e3VzZXJuYW1lfX0hJyxcbiAgICAgIHBhcmFtczoge3VzZXJuYW1lfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndXNlci5ub3RpZmljYXRpb25zJyxcbiAgICAgIGZhbGxiYWNrOiAnWW91IGhhdmUge3tjb3VudH19IG5ldyBub3RpZmljYXRpb25zJyxcbiAgICAgIHBhcmFtczoge2NvdW50OiA1fVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAndXNlci5sYXN0TG9naW4nLFxuICAgICAgZmFsbGJhY2s6ICdMYXN0IGxvZ2luOiB7e2RhdGV9fScsXG4gICAgICBwYXJhbXM6IHtkYXRlOiBuZXcgRGF0ZSgpLnRvTG9jYWxlRGF0ZVN0cmluZygpfVxuICAgIH1cbiAgXTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBpMThuKGNvbnRleHQsIHRyYW5zbGF0aW9ucywgbG9jYWxlKTtcblxuICByZXR1cm4gcmVzdWx0O1xuICAvLyBSZXR1cm5zOiB7XG4gIC8vICAgJ3VzZXIud2VsY29tZSc6ICdXZWxjb21lIGJhY2ssIEFsaWNlIScgKG9yIHRyYW5zbGF0ZWQgd2l0aCBpbnRlcnBvbGF0aW9uKSxcbiAgLy8gICAndXNlci5ub3RpZmljYXRpb25zJzogJ1lvdSBoYXZlIDUgbmV3IG5vdGlmaWNhdGlvbnMnIChvciB0cmFuc2xhdGVkIHdpdGggaW50ZXJwb2xhdGlvbiksXG4gIC8vICAgJ3VzZXIubGFzdExvZ2luJzogJ0xhc3QgbG9naW46IDEvMTUvMjAyNScgKG9yIHRyYW5zbGF0ZWQgd2l0aCBpbnRlcnBvbGF0aW9uKVxuICAvLyB9XG59XG5cbi8vIEV4YW1wbGUgMzogTXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldE11bHRpTGFuZ3VhZ2VDb250ZW50KGNvbnRleHQ6IEFwaUNvbnRleHQpIHtcbiAgLy8gR2V0IGNvbnRlbnQgaW4gbXVsdGlwbGUgbGFuZ3VhZ2VzXG4gIGNvbnN0IGxhbmd1YWdlczogTG9jYWxlW10gPSBbJ2VuJywgJ2VzJywgJ2ZyJ107XG4gIGNvbnN0IHJlc3VsdHM6IFJlY29yZDxMb2NhbGUsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0ge30gYXMgYW55O1xuXG4gIGZvcihjb25zdCBsb2NhbGUgb2YgbGFuZ3VhZ2VzKSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdFtdID0gW1xuICAgICAge1xuICAgICAgICBrZXk6ICdhcHAubmFtZScsXG4gICAgICAgIGZhbGxiYWNrOiAnVG9yY2hPbmUnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdhcHAudGFnbGluZScsXG4gICAgICAgIGZhbGxiYWNrOiAnWW91ciBBSSBBc3Npc3RhbnQnXG4gICAgICB9XG4gICAgXTtcblxuICAgIHJlc3VsdHNbbG9jYWxlXSA9IGF3YWl0IGkxOG4oY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdHM7XG4gIC8vIFJldHVybnM6IHtcbiAgLy8gICBlbjogeyAnYXBwLm5hbWUnOiAnVG9yY2hPbmUnLCAnYXBwLnRhZ2xpbmUnOiAnWW91ciBBSSBBc3Npc3RhbnQnIH0sXG4gIC8vICAgZXM6IHsgJ2FwcC5uYW1lJzogJ1RvcmNoT25lJywgJ2FwcC50YWdsaW5lJzogJ1R1IEFzaXN0ZW50ZSBkZSBJQScgfSxcbiAgLy8gICBmcjogeyAnYXBwLm5hbWUnOiAnVG9yY2hPbmUnLCAnYXBwLnRhZ2xpbmUnOiAnVm90cmUgQXNzaXN0YW50IElBJyB9XG4gIC8vIH1cbn1cblxuLy8gRXhhbXBsZSA0OiBFcnJvciBoYW5kbGluZyBhbmQgZmFsbGJhY2tzXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Um9idXN0VHJhbnNsYXRpb25zKGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2FsZTogTG9jYWxlID0gJ2VuJykge1xuICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBbXG4gICAge1xuICAgICAga2V5OiAnZXJyb3Iubm90Rm91bmQnLFxuICAgICAgZmFsbGJhY2s6ICdDb250ZW50IG5vdCBmb3VuZCdcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2Vycm9yLnNlcnZlckVycm9yJyxcbiAgICAgIGZhbGxiYWNrOiAnU2VydmVyIGVycm9yIG9jY3VycmVkJ1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnc3VjY2Vzcy5zYXZlZCcsXG4gICAgICBmYWxsYmFjazogJ0NvbnRlbnQgc2F2ZWQgc3VjY2Vzc2Z1bGx5J1xuICAgIH1cbiAgXTtcblxuICB0cnkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGkxOG4oY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gY2F0Y2goZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdUcmFuc2xhdGlvbiBlcnJvcjonLCBlcnJvcik7XG4gICAgLy8gUmV0dXJuIGZhbGxiYWNrcyBpZiB0cmFuc2xhdGlvbiBmYWlsc1xuICAgIHJldHVybiB0cmFuc2xhdGlvbnMucmVkdWNlKChhY2MsIHQpID0+IHtcbiAgICAgIGFjY1t0LmtleV0gPSB0LmZhbGxiYWNrIHx8ICcnO1xuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LCB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+KTtcbiAgfVxufVxuXG4vLyBFeGFtcGxlIDU6IEJhdGNoIHByb2Nlc3Npbmcgd2l0aCBmbHVzaFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByb2Nlc3NMYXJnZVRyYW5zbGF0aW9uQmF0Y2goY29udGV4dDogQXBpQ29udGV4dCwgbG9jYWxlOiBMb2NhbGUgPSAnZW4nKSB7XG4gIC8vIENyZWF0ZSBhIGxhcmdlIGJhdGNoIG9mIHRyYW5zbGF0aW9uc1xuICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBbXTtcblxuICBmb3IobGV0IGkgPSAxOyBpIDw9IDEwMDsgaSsrKSB7XG4gICAgdHJhbnNsYXRpb25zLnB1c2goe1xuICAgICAga2V5OiBgaXRlbS4ke2l9LnRpdGxlYCxcbiAgICAgIGZhbGxiYWNrOiBgSXRlbSAke2l9IFRpdGxlYCxcbiAgICAgIHBhcmFtczoge251bWJlcjogaX1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIFByb2Nlc3MgdGhlIGJhdGNoXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGkxOG4oY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuXG4gIC8vIEVuc3VyZSBhbGwgcGVuZGluZyB0cmFuc2xhdGlvbnMgYXJlIHByb2Nlc3NlZFxuICBhd2FpdCBmbHVzaCgpO1xuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEV4YW1wbGUgNjogRXJyb3IgaGFuZGxpbmcgd2l0aCBmYWxsYmFja3NcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRFcnJvck1lc3NhZ2VzKGNvbnRleHQ6IEFwaUNvbnRleHQsIGVycm9yQ29kZTogc3RyaW5nLCBsb2NhbGU6IExvY2FsZSA9ICdlbicpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdFtdID0gW1xuICAgIHtcbiAgICAgIGtleTogYGVycm9yLiR7ZXJyb3JDb2RlfWAsXG4gICAgICBmYWxsYmFjazogYEFuIGVycm9yIG9jY3VycmVkOiAke2Vycm9yQ29kZX1gLFxuICAgICAgcGFyYW1zOiB7ZXJyb3JDb2RlfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZXJyb3IuY29udGFjdFN1cHBvcnQnLFxuICAgICAgZmFsbGJhY2s6ICdQbGVhc2UgY29udGFjdCBzdXBwb3J0IGlmIHRoaXMgcHJvYmxlbSBwZXJzaXN0cy4nLFxuICAgICAgcGFyYW1zOiB7fVxuICAgIH1cbiAgXTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBpMThuKGNvbnRleHQsIHRyYW5zbGF0aW9ucywgbG9jYWxlKTtcblxuICAvLyBJZiBkYXRhYmFzZSBpcyB1bmF2YWlsYWJsZSwgd2lsbCByZXR1cm4gZmFsbGJhY2tzOlxuICAvLyB7XG4gIC8vICAgJ2Vycm9yLklOVkFMSURfRU1BSUwnOiAnQW4gZXJyb3Igb2NjdXJyZWQ6IElOVkFMSURfRU1BSUwnLFxuICAvLyAgICdlcnJvci5jb250YWN0U3VwcG9ydCc6ICdQbGVhc2UgY29udGFjdCBzdXBwb3J0IGlmIHRoaXMgcHJvYmxlbSBwZXJzaXN0cy4nXG4gIC8vIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBFeGFtcGxlIDc6IENvbXBsZXggZW1haWwgdGVtcGxhdGUgd2l0aCBtdWx0aXBsZSBpbnRlcnBvbGF0aW9uc1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdlbmVyYXRlRW1haWxUZW1wbGF0ZShcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgdXNlckRhdGE6IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgICBvcmRlcklkOiBzdHJpbmc7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBpdGVtczogbnVtYmVyO1xuICB9LFxuICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbikge1xuICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBbXG4gICAge1xuICAgICAga2V5OiAnZW1haWwub3JkZXJDb25maXJtYXRpb24uc3ViamVjdCcsXG4gICAgICBmYWxsYmFjazogJ09yZGVyIHt7b3JkZXJJZH19IENvbmZpcm1lZCcsXG4gICAgICBwYXJhbXM6IHtvcmRlcklkOiB1c2VyRGF0YS5vcmRlcklkfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZW1haWwub3JkZXJDb25maXJtYXRpb24uZ3JlZXRpbmcnLFxuICAgICAgZmFsbGJhY2s6ICdIZWxsbyB7e25hbWV9fSwnLFxuICAgICAgcGFyYW1zOiB7bmFtZTogdXNlckRhdGEubmFtZX1cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2VtYWlsLm9yZGVyQ29uZmlybWF0aW9uLmJvZHknLFxuICAgICAgZmFsbGJhY2s6ICdZb3VyIG9yZGVyIHt7b3JkZXJJZH19IGhhcyBiZWVuIGNvbmZpcm1lZC4gVG90YWw6ICR7e3RvdGFsfX0gZm9yIHt7aXRlbXN9fSBpdGVtcy4nLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIG9yZGVySWQ6IHVzZXJEYXRhLm9yZGVySWQsXG4gICAgICAgIHRvdGFsOiB1c2VyRGF0YS50b3RhbCxcbiAgICAgICAgaXRlbXM6IHVzZXJEYXRhLml0ZW1zXG4gICAgICB9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdlbWFpbC5vcmRlckNvbmZpcm1hdGlvbi5mb290ZXInLFxuICAgICAgZmFsbGJhY2s6ICdUaGFuayB5b3UgZm9yIHlvdXIgcHVyY2hhc2UhJ1xuICAgIH1cbiAgXTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBpMThuKGNvbnRleHQsIHRyYW5zbGF0aW9ucywgbG9jYWxlKTtcblxuICByZXR1cm4ge1xuICAgIHN1YmplY3Q6IHJlc3VsdFsnZW1haWwub3JkZXJDb25maXJtYXRpb24uc3ViamVjdCddLFxuICAgIGdyZWV0aW5nOiByZXN1bHRbJ2VtYWlsLm9yZGVyQ29uZmlybWF0aW9uLmdyZWV0aW5nJ10sXG4gICAgYm9keTogcmVzdWx0WydlbWFpbC5vcmRlckNvbmZpcm1hdGlvbi5ib2R5J10sXG4gICAgZm9vdGVyOiByZXN1bHRbJ2VtYWlsLm9yZGVyQ29uZmlybWF0aW9uLmZvb3RlciddXG4gIH07XG59XG5cbi8vIEV4YW1wbGUgODogTm90aWZpY2F0aW9uIG1lc3NhZ2VzIGZvciBkaWZmZXJlbnQgc2NlbmFyaW9zXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0Tm90aWZpY2F0aW9uTWVzc2FnZXMoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYWxlOiBMb2NhbGUgPSAnZW4nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdub3RpZmljYXRpb24ud2VsY29tZScsXG4gICAgICBmYWxsYmFjazogJ1dlbGNvbWUgdG8gVG9yY2hPbmUhJ1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbm90aWZpY2F0aW9uLnZlcmlmaWNhdGlvbicsXG4gICAgICBmYWxsYmFjazogJ1BsZWFzZSB2ZXJpZnkgeW91ciBhY2NvdW50LidcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ25vdGlmaWNhdGlvbi5wYXNzd29yZFJlc2V0JyxcbiAgICAgIGZhbGxiYWNrOiAnWW91ciBwYXNzd29yZCBoYXMgYmVlbiByZXNldC4nXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdub3RpZmljYXRpb24ucGVyc29uYVVwZGF0ZScsXG4gICAgICBmYWxsYmFjazogJ1lvdXIgcGVyc29uYSBoYXMgYmVlbiB1cGRhdGVkLidcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ25vdGlmaWNhdGlvbi5uZXdNZXNzYWdlJyxcbiAgICAgIGZhbGxiYWNrOiAnWW91IGhhdmUgYSBuZXcgbWVzc2FnZSBmcm9tIHt7c2VuZGVyfX0uJyxcbiAgICAgIHBhcmFtczoge3NlbmRlcjogJ0pvaG4gRG9lJ31cbiAgICB9XG4gIF07XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaTE4bihjb250ZXh0LCB0cmFuc2xhdGlvbnMsIGxvY2FsZSk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gRXhhbXBsZSA5OiBQZXJmb3JtYW5jZSBjb21wYXJpc29uXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGVyZm9ybWFuY2VDb21wYXJpc29uKGNvbnRleHQ6IEFwaUNvbnRleHQpIHtcbiAgY29uc3Qga2V5cyA9IFtcbiAgICAnd2VsY29tZScsICd2ZXJpZmljYXRpb24nLCAncGFzc3dvcmRSZXNldCcsICdwZXJzb25hVXBkYXRlJyxcbiAgICAnZW1haWwuc3ViamVjdCcsICdlbWFpbC5ib2R5JywgJ3Ntcy53ZWxjb21lJywgJ3Ntcy52ZXJpZmljYXRpb24nXG4gIF07XG5cbiAgY29uc3QgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdFtdID0ga2V5cy5tYXAoKGtleSkgPT4gKHtcbiAgICBrZXksXG4gICAgZmFsbGJhY2s6IGBGYWxsYmFjayBmb3IgJHtrZXl9YFxuICB9KSk7XG5cbiAgY29uc29sZS50aW1lKCdCYXRjaCB0cmFuc2xhdGlvbicpO1xuICBjb25zdCBiYXRjaFJlc3VsdHMgPSBhd2FpdCBpMThuKGNvbnRleHQsIHRyYW5zbGF0aW9ucywgJ2VuJyk7XG4gIGNvbnNvbGUudGltZUVuZCgnQmF0Y2ggdHJhbnNsYXRpb24nKTtcblxuICByZXR1cm4gYmF0Y2hSZXN1bHRzO1xufVxuXG4vLyBFeGFtcGxlIDEwOiBEeW5hbWljIGNvbnRlbnQgYmFzZWQgb24gdXNlciBwcmVmZXJlbmNlc1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFVzZXJHcmVldGluZyhcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgdXNlckxvY2FsZT86IHN0cmluZyxcbiAgdXNlcm5hbWU/OiBzdHJpbmdcbikge1xuICBjb25zdCBsb2NhbGU6IExvY2FsZSA9ICh1c2VyTG9jYWxlIGFzIExvY2FsZSkgfHwgJ2VuJztcblxuICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBbXG4gICAge1xuICAgICAga2V5OiAnZ3JlZXRpbmcubW9ybmluZycsXG4gICAgICBmYWxsYmFjazogJ0dvb2QgbW9ybmluZyEnLFxuICAgICAgcGFyYW1zOiB1c2VybmFtZSA/IHt1c2VybmFtZX0gOiB7fVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ3JlZXRpbmcuYWZ0ZXJub29uJyxcbiAgICAgIGZhbGxiYWNrOiAnR29vZCBhZnRlcm5vb24hJyxcbiAgICAgIHBhcmFtczogdXNlcm5hbWUgPyB7dXNlcm5hbWV9IDoge31cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2dyZWV0aW5nLmV2ZW5pbmcnLFxuICAgICAgZmFsbGJhY2s6ICdHb29kIGV2ZW5pbmchJyxcbiAgICAgIHBhcmFtczogdXNlcm5hbWUgPyB7dXNlcm5hbWV9IDoge31cbiAgICB9XG4gIF07XG5cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaTE4bihjb250ZXh0LCB0cmFuc2xhdGlvbnMsIGxvY2FsZSk7XG5cbiAgLy8gUmV0dXJuIGFwcHJvcHJpYXRlIGdyZWV0aW5nIGJhc2VkIG9uIHRpbWUgb2YgZGF5XG4gIGNvbnN0IGhvdXIgPSBuZXcgRGF0ZSgpLmdldEhvdXJzKCk7XG4gIGlmKGhvdXIgPCAxMikge1xuICAgIHJldHVybiByZXN1bHRbJ2dyZWV0aW5nLm1vcm5pbmcnXTtcbiAgfVxuICBpZihob3VyIDwgMTgpIHtcbiAgICByZXR1cm4gcmVzdWx0WydncmVldGluZy5hZnRlcm5vb24nXTtcbiAgfVxuICByZXR1cm4gcmVzdWx0WydncmVldGluZy5ldmVuaW5nJ107XG59XG5cbi8vIEV4YW1wbGUgMTE6IEZvcmNlIGZsdXNoIHBlbmRpbmcgdHJhbnNsYXRpb25zXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZW5zdXJlQWxsVHJhbnNsYXRpb25zUHJvY2Vzc2VkKCkge1xuICAvLyBGb3JjZSBwcm9jZXNzIGFueSBwZW5kaW5nIHRyYW5zbGF0aW9uIGJhdGNoZXNcbiAgYXdhaXQgZmx1c2goKTtcbiAgY29uc29sZS5sb2coJ0FsbCB0cmFuc2xhdGlvbiBiYXRjaGVzIHByb2Nlc3NlZCcpO1xufVxuXG4vLyBVc2FnZSBleGFtcGxlczpcbi8vIGNvbnN0IGNvbnRleHQgPSB7IGRhdGFiYXNlTmFtZTogJ3RvcmNob25lLWRldicsIHNlc3Npb246IHsgdXNlcklkOiAndXNlcjEyMycgfSB9O1xuLy9cbi8vIC8vIEJhc2ljIHVzYWdlXG4vLyBjb25zdCB3ZWxjb21lTWVzc2FnZXMgPSBhd2FpdCBnZXRXZWxjb21lTWVzc2FnZXMoY29udGV4dCwgJ2VuJyk7XG4vL1xuLy8gLy8gV2l0aCBpbnRlcnBvbGF0aW9uXG4vLyBjb25zdCBwZXJzb25hbGl6ZWRNZXNzYWdlcyA9IGF3YWl0IGdldFBlcnNvbmFsaXplZE1lc3NhZ2VzKGNvbnRleHQsICdKb2huJywgJ2VzJyk7XG4vL1xuLy8gLy8gTXVsdGktbGFuZ3VhZ2UgY29udGVudFxuLy8gY29uc3QgbXVsdGlMYW5ndWFnZUNvbnRlbnQgPSBhd2FpdCBnZXRNdWx0aUxhbmd1YWdlQ29udGVudChjb250ZXh0KTtcbi8vXG4vLyAvLyBFcnJvciBoYW5kbGluZ1xuLy8gY29uc3QgZXJyb3JNZXNzYWdlcyA9IGF3YWl0IGdldFJvYnVzdFRyYW5zbGF0aW9ucyhjb250ZXh0LCAnZGUnKTtcbi8vXG4vLyAvLyBDb21wbGV4IHRlbXBsYXRlXG4vLyBjb25zdCBlbWFpbFRlbXBsYXRlID0gYXdhaXQgZ2VuZXJhdGVFbWFpbFRlbXBsYXRlKGNvbnRleHQsIHtcbi8vICAgbmFtZTogJ01hcmlhJyxcbi8vICAgZW1haWw6ICdtYXJpYUBleGFtcGxlLmNvbScsXG4vLyAgIG9yZGVySWQ6ICdPUkQtMTIzJyxcbi8vICAgdG90YWw6IDk5Ljk5LFxuLy8gICBpdGVtczogM1xuLy8gfSwgJ3B0Jyk7XG4vL1xuLy8gLy8gTm90aWZpY2F0aW9uc1xuLy8gY29uc3Qgbm90aWZpY2F0aW9ucyA9IGF3YWl0IGdldE5vdGlmaWNhdGlvbk1lc3NhZ2VzKGNvbnRleHQsICdmcicpO1xuLy9cbi8vIC8vIFBlcmZvcm1hbmNlIHRlc3Rcbi8vIGNvbnN0IHBlcmYgPSBhd2FpdCBwZXJmb3JtYW5jZUNvbXBhcmlzb24oY29udGV4dCk7XG4vL1xuLy8gLy8gRHluYW1pYyBncmVldGluZ1xuLy8gY29uc3QgZ3JlZXRpbmcgPSBhd2FpdCBnZXRVc2VyR3JlZXRpbmcoY29udGV4dCwgJ2VuJywgJ0pvaG4nKTtcbi8vXG4vLyAvLyBGb3JjZSBmbHVzaFxuLy8gYXdhaXQgZW5zdXJlQWxsVHJhbnNsYXRpb25zUHJvY2Vzc2VkKCk7XG4iXSwibmFtZXMiOlsiZmx1c2giLCJpMThuIiwiZ2V0V2VsY29tZU1lc3NhZ2VzIiwiY29udGV4dCIsImxvY2FsZSIsInRyYW5zbGF0aW9ucyIsImtleSIsImZhbGxiYWNrIiwicmVzdWx0IiwiZ2V0UGVyc29uYWxpemVkTWVzc2FnZXMiLCJ1c2VybmFtZSIsInBhcmFtcyIsImNvdW50IiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJnZXRNdWx0aUxhbmd1YWdlQ29udGVudCIsImxhbmd1YWdlcyIsInJlc3VsdHMiLCJnZXRSb2J1c3RUcmFuc2xhdGlvbnMiLCJlcnJvciIsImNvbnNvbGUiLCJyZWR1Y2UiLCJhY2MiLCJ0IiwicHJvY2Vzc0xhcmdlVHJhbnNsYXRpb25CYXRjaCIsImkiLCJwdXNoIiwibnVtYmVyIiwiZ2V0RXJyb3JNZXNzYWdlcyIsImVycm9yQ29kZSIsImdlbmVyYXRlRW1haWxUZW1wbGF0ZSIsInVzZXJEYXRhIiwib3JkZXJJZCIsIm5hbWUiLCJ0b3RhbCIsIml0ZW1zIiwic3ViamVjdCIsImdyZWV0aW5nIiwiYm9keSIsImZvb3RlciIsImdldE5vdGlmaWNhdGlvbk1lc3NhZ2VzIiwic2VuZGVyIiwicGVyZm9ybWFuY2VDb21wYXJpc29uIiwia2V5cyIsIm1hcCIsInRpbWUiLCJiYXRjaFJlc3VsdHMiLCJ0aW1lRW5kIiwiZ2V0VXNlckdyZWV0aW5nIiwidXNlckxvY2FsZSIsImhvdXIiLCJnZXRIb3VycyIsImVuc3VyZUFsbFRyYW5zbGF0aW9uc1Byb2Nlc3NlZCIsImxvZyJdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0NBUUMsR0FFRCxTQUFRQSxLQUFLLEVBQUVDLElB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
|
|
340
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvdXRpbHMvdHJhbnNsYXRpb25RdWV1ZS5leGFtcGxlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDI1LVByZXNlbnQsIE5pdHJvZ2VuIExhYnMsIEluYy5cbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVzZSBpcyBzdWJqZWN0IHRvIHRoZSBhY2NvbXBhbnlpbmcgY29tbWVyY2lhbCBMSUNFTlNFLlxuICpcbiAqIEV4YW1wbGUgdXNhZ2Ugb2YgdGhlIHRyYW5zbGF0aW9uIHF1ZXVlIHN5c3RlbSB3aXRoIEdvb2dsZSBUcmFuc2xhdGUgaW50ZWdyYXRpb25cbiAqXG4gKiBUaGlzIGRlbW9uc3RyYXRlcyBob3cgdG8gdXNlIHRoZSBuZXcgdHJhbnNsYXRpb24gcXVldWUgdGhhdCBhdXRvbWF0aWNhbGx5XG4gKiB0cmFuc2xhdGVzIGNvbnRlbnQgdXNpbmcgR29vZ2xlIFRyYW5zbGF0ZSBBUEkgd2hlbiBuZWVkZWQuXG4gKi9cblxuaW1wb3J0IHtmbHVzaCwgaTE4biwgdHlwZSBUcmFuc2xhdGlvbk9iamVjdH0gZnJvbSAnLi90cmFuc2xhdGlvblF1ZXVlLmpzJztcblxuaW1wb3J0IHR5cGUge0FwaUNvbnRleHR9IGZyb20gJy4uL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHR5cGUge0xvY2FsZX0gZnJvbSAnLi4vdHlwZXMvY29udGVudC50eXBlcy5qcyc7XG5cbi8vIEV4YW1wbGUgMTogQmFzaWMgdHJhbnNsYXRpb25zIC0gd2lsbCB1c2UgZGF0YWJhc2Ugb3IgdHJhbnNsYXRlIGFzIG5lZWRlZFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFdlbGNvbWVNZXNzYWdlcyhjb250ZXh0OiBBcGlDb250ZXh0LCBsb2NhbGU6IExvY2FsZSA9ICdlbicpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdFtdID0gW1xuICAgIHtcbiAgICAgIGtleTogJ3dlbGNvbWUudGl0bGUnLFxuICAgICAgZmFsbGJhY2s6ICdXZWxjb21lIHRvIFRvcmNoT25lISdcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3dlbGNvbWUuc3VidGl0bGUnLFxuICAgICAgZmFsbGJhY2s6ICdZb3VyIHBlcnNvbmFsIEFJIGFzc2lzdGFudCdcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ3dlbGNvbWUuZGVzY3JpcHRpb24nLFxuICAgICAgZmFsbGJhY2s6ICdHZXQgc3RhcnRlZCBieSBleHBsb3Jpbmcgb3VyIGZlYXR1cmVzJ1xuICAgIH1cbiAgXTtcblxuICAvLyBUaGlzIHdpbGw6XG4gIC8vIDEuIENoZWNrIGRhdGFiYXNlIGZvciBleGlzdGluZyB0cmFuc2xhdGlvbnNcbiAgLy8gMi4gSWYgbm90IGZvdW5kIGFuZCBsb2NhbGUgaXMgZGVmYXVsdCAoZW4pLCBzYXZlIGZhbGxiYWNrIHRvIERCXG4gIC8vIDMuIElmIG5vdCBmb3VuZCBhbmQgbG9jYWxlIGlzIGRpZmZlcmVudCwgdHJhbnNsYXRlIGZyb20gZGVmYXVsdCBsb2NhbGVcbiAgLy8gNC4gU2F2ZSB0cmFuc2xhdGVkIGNvbnRlbnQgdG8gREIgZm9yIGZ1dHVyZSB1c2VcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaTE4biAoY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuXG4gIHJldHVybiByZXN1bHQ7XG4gIC8vIFJldHVybnM6IHtcbiAgLy8gICAnd2VsY29tZS50aXRsZSc6ICdXZWxjb21lIHRvIFRvcmNoT25lIScgKG9yIHRyYW5zbGF0ZWQgdmVyc2lvbiksXG4gIC8vICAgJ3dlbGNvbWUuc3VidGl0bGUnOiAnWW91ciBwZXJzb25hbCBBSSBhc3Npc3RhbnQnIChvciB0cmFuc2xhdGVkIHZlcnNpb24pLFxuICAvLyAgICd3ZWxjb21lLmRlc2NyaXB0aW9uJzogJ0dldCBzdGFydGVkIGJ5IGV4cGxvcmluZyBvdXIgZmVhdHVyZXMnIChvciB0cmFuc2xhdGVkIHZlcnNpb24pXG4gIC8vIH1cbn1cblxuLy8gRXhhbXBsZSAyOiBUcmFuc2xhdGlvbnMgd2l0aCBpbnRlcnBvbGF0aW9uXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0UGVyc29uYWxpemVkTWVzc2FnZXMoY29udGV4dDogQXBpQ29udGV4dCwgdXNlcm5hbWU6IHN0cmluZywgbG9jYWxlOiBMb2NhbGUgPSAnZW4nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICd1c2VyLndlbGNvbWUnLFxuICAgICAgZmFsbGJhY2s6ICdXZWxjb21lIGJhY2ssIHt7dXNlcm5hbWV9fSEnLFxuICAgICAgcGFyYW1zOiB7dXNlcm5hbWV9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICd1c2VyLm5vdGlmaWNhdGlvbnMnLFxuICAgICAgZmFsbGJhY2s6ICdZb3UgaGF2ZSB7e2NvdW50fX0gbmV3IG5vdGlmaWNhdGlvbnMnLFxuICAgICAgcGFyYW1zOiB7Y291bnQ6IDV9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICd1c2VyLmxhc3RMb2dpbicsXG4gICAgICBmYWxsYmFjazogJ0xhc3QgbG9naW46IHt7ZGF0ZX19JyxcbiAgICAgIHBhcmFtczoge2RhdGU6IG5ldyBEYXRlKCkudG9Mb2NhbGVEYXRlU3RyaW5nKCl9XG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGkxOG4oY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuXG4gIHJldHVybiByZXN1bHQ7XG4gIC8vIFJldHVybnM6IHtcbiAgLy8gICAndXNlci53ZWxjb21lJzogJ1dlbGNvbWUgYmFjaywgQWxpY2UhJyAob3IgdHJhbnNsYXRlZCB3aXRoIGludGVycG9sYXRpb24pLFxuICAvLyAgICd1c2VyLm5vdGlmaWNhdGlvbnMnOiAnWW91IGhhdmUgNSBuZXcgbm90aWZpY2F0aW9ucycgKG9yIHRyYW5zbGF0ZWQgd2l0aCBpbnRlcnBvbGF0aW9uKSxcbiAgLy8gICAndXNlci5sYXN0TG9naW4nOiAnTGFzdCBsb2dpbjogMS8xNS8yMDI1JyAob3IgdHJhbnNsYXRlZCB3aXRoIGludGVycG9sYXRpb24pXG4gIC8vIH1cbn1cblxuLy8gRXhhbXBsZSAzOiBNdWx0aS1sYW5ndWFnZSBzdXBwb3J0XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0TXVsdGlMYW5ndWFnZUNvbnRlbnQoY29udGV4dDogQXBpQ29udGV4dCkge1xuICAvLyBHZXQgY29udGVudCBpbiBtdWx0aXBsZSBsYW5ndWFnZXNcbiAgY29uc3QgbGFuZ3VhZ2VzOiBMb2NhbGVbXSA9IFsnZW4nLCAnZXMnLCAnZnInXTtcbiAgY29uc3QgcmVzdWx0czogUmVjb3JkPExvY2FsZSwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fSBhcyBhbnk7XG5cbiAgZm9yKGNvbnN0IGxvY2FsZSBvZiBsYW5ndWFnZXMpIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2FwcC5uYW1lJyxcbiAgICAgICAgZmFsbGJhY2s6ICdUb3JjaE9uZSdcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ2FwcC50YWdsaW5lJyxcbiAgICAgICAgZmFsbGJhY2s6ICdZb3VyIEFJIEFzc2lzdGFudCdcbiAgICAgIH1cbiAgICBdO1xuXG4gICAgcmVzdWx0c1tsb2NhbGVdID0gYXdhaXQgaTE4bihjb250ZXh0LCB0cmFuc2xhdGlvbnMsIGxvY2FsZSk7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0cztcbiAgLy8gUmV0dXJuczoge1xuICAvLyAgIGVuOiB7ICdhcHAubmFtZSc6ICdUb3JjaE9uZScsICdhcHAudGFnbGluZSc6ICdZb3VyIEFJIEFzc2lzdGFudCcgfSxcbiAgLy8gICBlczogeyAnYXBwLm5hbWUnOiAnVG9yY2hPbmUnLCAnYXBwLnRhZ2xpbmUnOiAnVHUgQXNpc3RlbnRlIGRlIElBJyB9LFxuICAvLyAgIGZyOiB7ICdhcHAubmFtZSc6ICdUb3JjaE9uZScsICdhcHAudGFnbGluZSc6ICdWb3RyZSBBc3Npc3RhbnQgSUEnIH1cbiAgLy8gfVxufVxuXG4vLyBFeGFtcGxlIDQ6IEVycm9yIGhhbmRsaW5nIGFuZCBmYWxsYmFja3NcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRSb2J1c3RUcmFuc2xhdGlvbnMoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYWxlOiBMb2NhbGUgPSAnZW4nKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdlcnJvci5ub3RGb3VuZCcsXG4gICAgICBmYWxsYmFjazogJ0NvbnRlbnQgbm90IGZvdW5kJ1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZXJyb3Iuc2VydmVyRXJyb3InLFxuICAgICAgZmFsbGJhY2s6ICdTZXJ2ZXIgZXJyb3Igb2NjdXJyZWQnXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdzdWNjZXNzLnNhdmVkJyxcbiAgICAgIGZhbGxiYWNrOiAnQ29udGVudCBzYXZlZCBzdWNjZXNzZnVsbHknXG4gICAgfVxuICBdO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaTE4bihjb250ZXh0LCB0cmFuc2xhdGlvbnMsIGxvY2FsZSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSBjYXRjaChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1RyYW5zbGF0aW9uIGVycm9yOicsIGVycm9yKTtcbiAgICAvLyBSZXR1cm4gZmFsbGJhY2tzIGlmIHRyYW5zbGF0aW9uIGZhaWxzXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9ucy5yZWR1Y2UoKGFjYywgdCkgPT4ge1xuICAgICAgYWNjW3Qua2V5XSA9IHQuZmFsbGJhY2sgfHwgJyc7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz4pO1xuICB9XG59XG5cbi8vIEV4YW1wbGUgNTogQmF0Y2ggcHJvY2Vzc2luZyB3aXRoIGZsdXNoXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvY2Vzc0xhcmdlVHJhbnNsYXRpb25CYXRjaChjb250ZXh0OiBBcGlDb250ZXh0LCBsb2NhbGU6IExvY2FsZSA9ICdlbicpIHtcbiAgLy8gQ3JlYXRlIGEgbGFyZ2UgYmF0Y2ggb2YgdHJhbnNsYXRpb25zXG4gIGNvbnN0IHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSA9IFtdO1xuXG4gIGZvcihsZXQgaSA9IDE7IGkgPD0gMTAwOyBpKyspIHtcbiAgICB0cmFuc2xhdGlvbnMucHVzaCh7XG4gICAgICBrZXk6IGBpdGVtLiR7aX0udGl0bGVgLFxuICAgICAgZmFsbGJhY2s6IGBJdGVtICR7aX0gVGl0bGVgLFxuICAgICAgcGFyYW1zOiB7bnVtYmVyOiBpfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gUHJvY2VzcyB0aGUgYmF0Y2hcbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgaTE4bihjb250ZXh0LCB0cmFuc2xhdGlvbnMsIGxvY2FsZSk7XG5cbiAgLy8gRW5zdXJlIGFsbCBwZW5kaW5nIHRyYW5zbGF0aW9ucyBhcmUgcHJvY2Vzc2VkXG4gIGF3YWl0IGZsdXNoKCk7XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLy8gRXhhbXBsZSA2OiBFcnJvciBoYW5kbGluZyB3aXRoIGZhbGxiYWNrc1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldEVycm9yTWVzc2FnZXMoY29udGV4dDogQXBpQ29udGV4dCwgZXJyb3JDb2RlOiBzdHJpbmcsIGxvY2FsZTogTG9jYWxlID0gJ2VuJykge1xuICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBbXG4gICAge1xuICAgICAga2V5OiBgZXJyb3IuJHtlcnJvckNvZGV9YCxcbiAgICAgIGZhbGxiYWNrOiBgQW4gZXJyb3Igb2NjdXJyZWQ6ICR7ZXJyb3JDb2RlfWAsXG4gICAgICBwYXJhbXM6IHtlcnJvckNvZGV9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdlcnJvci5jb250YWN0U3VwcG9ydCcsXG4gICAgICBmYWxsYmFjazogJ1BsZWFzZSBjb250YWN0IHN1cHBvcnQgaWYgdGhpcyBwcm9ibGVtIHBlcnNpc3RzLicsXG4gICAgICBwYXJhbXM6IHt9XG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGkxOG4oY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuXG4gIC8vIElmIGRhdGFiYXNlIGlzIHVuYXZhaWxhYmxlLCB3aWxsIHJldHVybiBmYWxsYmFja3M6XG4gIC8vIHtcbiAgLy8gICAnZXJyb3IuSU5WQUxJRF9FTUFJTCc6ICdBbiBlcnJvciBvY2N1cnJlZDogSU5WQUxJRF9FTUFJTCcsXG4gIC8vICAgJ2Vycm9yLmNvbnRhY3RTdXBwb3J0JzogJ1BsZWFzZSBjb250YWN0IHN1cHBvcnQgaWYgdGhpcyBwcm9ibGVtIHBlcnNpc3RzLidcbiAgLy8gfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIEV4YW1wbGUgNzogQ29tcGxleCBlbWFpbCB0ZW1wbGF0ZSB3aXRoIG11bHRpcGxlIGludGVycG9sYXRpb25zXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2VuZXJhdGVFbWFpbFRlbXBsYXRlKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB1c2VyRGF0YToge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBlbWFpbDogc3RyaW5nO1xuICAgIG9yZGVySWQ6IHN0cmluZztcbiAgICB0b3RhbDogbnVtYmVyO1xuICAgIGl0ZW1zOiBudW1iZXI7XG4gIH0sXG4gIGxvY2FsZTogTG9jYWxlID0gJ2VuJ1xuKSB7XG4gIGNvbnN0IHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdlbWFpbC5vcmRlckNvbmZpcm1hdGlvbi5zdWJqZWN0JyxcbiAgICAgIGZhbGxiYWNrOiAnT3JkZXIge3tvcmRlcklkfX0gQ29uZmlybWVkJyxcbiAgICAgIHBhcmFtczoge29yZGVySWQ6IHVzZXJEYXRhLm9yZGVySWR9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdlbWFpbC5vcmRlckNvbmZpcm1hdGlvbi5ncmVldGluZycsXG4gICAgICBmYWxsYmFjazogJ0hlbGxvIHt7bmFtZX19LCcsXG4gICAgICBwYXJhbXM6IHtuYW1lOiB1c2VyRGF0YS5uYW1lfVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZW1haWwub3JkZXJDb25maXJtYXRpb24uYm9keScsXG4gICAgICBmYWxsYmFjazogJ1lvdXIgb3JkZXIge3tvcmRlcklkfX0gaGFzIGJlZW4gY29uZmlybWVkLiBUb3RhbDogJHt7dG90YWx9fSBmb3Ige3tpdGVtc319IGl0ZW1zLicsXG4gICAgICBwYXJhbXM6IHtcbiAgICAgICAgb3JkZXJJZDogdXNlckRhdGEub3JkZXJJZCxcbiAgICAgICAgdG90YWw6IHVzZXJEYXRhLnRvdGFsLFxuICAgICAgICBpdGVtczogdXNlckRhdGEuaXRlbXNcbiAgICAgIH1cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2VtYWlsLm9yZGVyQ29uZmlybWF0aW9uLmZvb3RlcicsXG4gICAgICBmYWxsYmFjazogJ1RoYW5rIHlvdSBmb3IgeW91ciBwdXJjaGFzZSEnXG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGkxOG4oY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuXG4gIHJldHVybiB7XG4gICAgc3ViamVjdDogcmVzdWx0WydlbWFpbC5vcmRlckNvbmZpcm1hdGlvbi5zdWJqZWN0J10sXG4gICAgZ3JlZXRpbmc6IHJlc3VsdFsnZW1haWwub3JkZXJDb25maXJtYXRpb24uZ3JlZXRpbmcnXSxcbiAgICBib2R5OiByZXN1bHRbJ2VtYWlsLm9yZGVyQ29uZmlybWF0aW9uLmJvZHknXSxcbiAgICBmb290ZXI6IHJlc3VsdFsnZW1haWwub3JkZXJDb25maXJtYXRpb24uZm9vdGVyJ11cbiAgfTtcbn1cblxuLy8gRXhhbXBsZSA4OiBOb3RpZmljYXRpb24gbWVzc2FnZXMgZm9yIGRpZmZlcmVudCBzY2VuYXJpb3NcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXROb3RpZmljYXRpb25NZXNzYWdlcyhjb250ZXh0OiBBcGlDb250ZXh0LCBsb2NhbGU6IExvY2FsZSA9ICdlbicpIHtcbiAgY29uc3QgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdFtdID0gW1xuICAgIHtcbiAgICAgIGtleTogJ25vdGlmaWNhdGlvbi53ZWxjb21lJyxcbiAgICAgIGZhbGxiYWNrOiAnV2VsY29tZSB0byBUb3JjaE9uZSEnXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdub3RpZmljYXRpb24udmVyaWZpY2F0aW9uJyxcbiAgICAgIGZhbGxiYWNrOiAnUGxlYXNlIHZlcmlmeSB5b3VyIGFjY291bnQuJ1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbm90aWZpY2F0aW9uLnBhc3N3b3JkUmVzZXQnLFxuICAgICAgZmFsbGJhY2s6ICdZb3VyIHBhc3N3b3JkIGhhcyBiZWVuIHJlc2V0LidcbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ25vdGlmaWNhdGlvbi5wZXJzb25hVXBkYXRlJyxcbiAgICAgIGZhbGxiYWNrOiAnWW91ciBwZXJzb25hIGhhcyBiZWVuIHVwZGF0ZWQuJ1xuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnbm90aWZpY2F0aW9uLm5ld01lc3NhZ2UnLFxuICAgICAgZmFsbGJhY2s6ICdZb3UgaGF2ZSBhIG5ldyBtZXNzYWdlIGZyb20ge3tzZW5kZXJ9fS4nLFxuICAgICAgcGFyYW1zOiB7c2VuZGVyOiAnSm9obiBEb2UnfVxuICAgIH1cbiAgXTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBpMThuKGNvbnRleHQsIHRyYW5zbGF0aW9ucywgbG9jYWxlKTtcblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBFeGFtcGxlIDk6IFBlcmZvcm1hbmNlIGNvbXBhcmlzb25cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwZXJmb3JtYW5jZUNvbXBhcmlzb24oY29udGV4dDogQXBpQ29udGV4dCkge1xuICBjb25zdCBrZXlzID0gW1xuICAgICd3ZWxjb21lJywgJ3ZlcmlmaWNhdGlvbicsICdwYXNzd29yZFJlc2V0JywgJ3BlcnNvbmFVcGRhdGUnLFxuICAgICdlbWFpbC5zdWJqZWN0JywgJ2VtYWlsLmJvZHknLCAnc21zLndlbGNvbWUnLCAnc21zLnZlcmlmaWNhdGlvbidcbiAgXTtcblxuICBjb25zdCB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10gPSBrZXlzLm1hcCgoa2V5KSA9PiAoe1xuICAgIGtleSxcbiAgICBmYWxsYmFjazogYEZhbGxiYWNrIGZvciAke2tleX1gXG4gIH0pKTtcblxuICBjb25zb2xlLnRpbWUoJ0JhdGNoIHRyYW5zbGF0aW9uJyk7XG4gIGNvbnN0IGJhdGNoUmVzdWx0cyA9IGF3YWl0IGkxOG4oY29udGV4dCwgdHJhbnNsYXRpb25zLCAnZW4nKTtcbiAgY29uc29sZS50aW1lRW5kKCdCYXRjaCB0cmFuc2xhdGlvbicpO1xuXG4gIHJldHVybiBiYXRjaFJlc3VsdHM7XG59XG5cbi8vIEV4YW1wbGUgMTA6IER5bmFtaWMgY29udGVudCBiYXNlZCBvbiB1c2VyIHByZWZlcmVuY2VzXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0VXNlckdyZWV0aW5nKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB1c2VyTG9jYWxlPzogc3RyaW5nLFxuICB1c2VybmFtZT86IHN0cmluZ1xuKSB7XG4gIGNvbnN0IGxvY2FsZTogTG9jYWxlID0gKHVzZXJMb2NhbGUgYXMgTG9jYWxlKSB8fCAnZW4nO1xuXG4gIGNvbnN0IHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSA9IFtcbiAgICB7XG4gICAgICBrZXk6ICdncmVldGluZy5tb3JuaW5nJyxcbiAgICAgIGZhbGxiYWNrOiAnR29vZCBtb3JuaW5nIScsXG4gICAgICBwYXJhbXM6IHVzZXJuYW1lID8ge3VzZXJuYW1lfSA6IHt9XG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdncmVldGluZy5hZnRlcm5vb24nLFxuICAgICAgZmFsbGJhY2s6ICdHb29kIGFmdGVybm9vbiEnLFxuICAgICAgcGFyYW1zOiB1c2VybmFtZSA/IHt1c2VybmFtZX0gOiB7fVxuICAgIH0sXG4gICAge1xuICAgICAga2V5OiAnZ3JlZXRpbmcuZXZlbmluZycsXG4gICAgICBmYWxsYmFjazogJ0dvb2QgZXZlbmluZyEnLFxuICAgICAgcGFyYW1zOiB1c2VybmFtZSA/IHt1c2VybmFtZX0gOiB7fVxuICAgIH1cbiAgXTtcblxuICBjb25zdCByZXN1bHQgPSBhd2FpdCBpMThuKGNvbnRleHQsIHRyYW5zbGF0aW9ucywgbG9jYWxlKTtcblxuICAvLyBSZXR1cm4gYXBwcm9wcmlhdGUgZ3JlZXRpbmcgYmFzZWQgb24gdGltZSBvZiBkYXlcbiAgY29uc3QgaG91ciA9IG5ldyBEYXRlKCkuZ2V0SG91cnMoKTtcbiAgaWYoaG91ciA8IDEyKSB7XG4gICAgcmV0dXJuIHJlc3VsdFsnZ3JlZXRpbmcubW9ybmluZyddO1xuICB9XG4gIGlmKGhvdXIgPCAxOCkge1xuICAgIHJldHVybiByZXN1bHRbJ2dyZWV0aW5nLmFmdGVybm9vbiddO1xuICB9XG4gIHJldHVybiByZXN1bHRbJ2dyZWV0aW5nLmV2ZW5pbmcnXTtcbn1cblxuLy8gRXhhbXBsZSAxMTogRm9yY2UgZmx1c2ggcGVuZGluZyB0cmFuc2xhdGlvbnNcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVBbGxUcmFuc2xhdGlvbnNQcm9jZXNzZWQoKSB7XG4gIC8vIEZvcmNlIHByb2Nlc3MgYW55IHBlbmRpbmcgdHJhbnNsYXRpb24gYmF0Y2hlc1xuICBhd2FpdCBmbHVzaCgpO1xuICBjb25zb2xlLmxvZygnQWxsIHRyYW5zbGF0aW9uIGJhdGNoZXMgcHJvY2Vzc2VkJyk7XG59XG5cbi8vIFVzYWdlIGV4YW1wbGVzOlxuLy8gY29uc3QgY29udGV4dCA9IHsgZGF0YWJhc2VOYW1lOiAndG9yY2hvbmUtZGV2Jywgc2Vzc2lvbjogeyB1c2VySWQ6ICd1c2VyMTIzJyB9IH07XG4vL1xuLy8gLy8gQmFzaWMgdXNhZ2Vcbi8vIGNvbnN0IHdlbGNvbWVNZXNzYWdlcyA9IGF3YWl0IGdldFdlbGNvbWVNZXNzYWdlcyhjb250ZXh0LCAnZW4nKTtcbi8vXG4vLyAvLyBXaXRoIGludGVycG9sYXRpb25cbi8vIGNvbnN0IHBlcnNvbmFsaXplZE1lc3NhZ2VzID0gYXdhaXQgZ2V0UGVyc29uYWxpemVkTWVzc2FnZXMoY29udGV4dCwgJ0pvaG4nLCAnZXMnKTtcbi8vXG4vLyAvLyBNdWx0aS1sYW5ndWFnZSBjb250ZW50XG4vLyBjb25zdCBtdWx0aUxhbmd1YWdlQ29udGVudCA9IGF3YWl0IGdldE11bHRpTGFuZ3VhZ2VDb250ZW50KGNvbnRleHQpO1xuLy9cbi8vIC8vIEVycm9yIGhhbmRsaW5nXG4vLyBjb25zdCBlcnJvck1lc3NhZ2VzID0gYXdhaXQgZ2V0Um9idXN0VHJhbnNsYXRpb25zKGNvbnRleHQsICdkZScpO1xuLy9cbi8vIC8vIENvbXBsZXggdGVtcGxhdGVcbi8vIGNvbnN0IGVtYWlsVGVtcGxhdGUgPSBhd2FpdCBnZW5lcmF0ZUVtYWlsVGVtcGxhdGUoY29udGV4dCwge1xuLy8gICBuYW1lOiAnTWFyaWEnLFxuLy8gICBlbWFpbDogJ21hcmlhQGV4YW1wbGUuY29tJyxcbi8vICAgb3JkZXJJZDogJ09SRC0xMjMnLFxuLy8gICB0b3RhbDogOTkuOTksXG4vLyAgIGl0ZW1zOiAzXG4vLyB9LCAncHQnKTtcbi8vXG4vLyAvLyBOb3RpZmljYXRpb25zXG4vLyBjb25zdCBub3RpZmljYXRpb25zID0gYXdhaXQgZ2V0Tm90aWZpY2F0aW9uTWVzc2FnZXMoY29udGV4dCwgJ2ZyJyk7XG4vL1xuLy8gLy8gUGVyZm9ybWFuY2UgdGVzdFxuLy8gY29uc3QgcGVyZiA9IGF3YWl0IHBlcmZvcm1hbmNlQ29tcGFyaXNvbihjb250ZXh0KTtcbi8vXG4vLyAvLyBEeW5hbWljIGdyZWV0aW5nXG4vLyBjb25zdCBncmVldGluZyA9IGF3YWl0IGdldFVzZXJHcmVldGluZyhjb250ZXh0LCAnZW4nLCAnSm9obicpO1xuLy9cbi8vIC8vIEZvcmNlIGZsdXNoXG4vLyBhd2FpdCBlbnN1cmVBbGxUcmFuc2xhdGlvbnNQcm9jZXNzZWQoKTtcbiJdLCJuYW1lcyI6WyJmbHVzaCIsImkxOG4iLCJnZXRXZWxjb21lTWVzc2FnZXMiLCJjb250ZXh0IiwibG9jYWxlIiwidHJhbnNsYXRpb25zIiwia2V5IiwiZmFsbGJhY2siLCJyZXN1bHQiLCJnZXRQZXJzb25hbGl6ZWRNZXNzYWdlcyIsInVzZXJuYW1lIiwicGFyYW1zIiwiY291bnQiLCJkYXRlIiwiRGF0ZSIsInRvTG9jYWxlRGF0ZVN0cmluZyIsImdldE11bHRpTGFuZ3VhZ2VDb250ZW50IiwibGFuZ3VhZ2VzIiwicmVzdWx0cyIsImdldFJvYnVzdFRyYW5zbGF0aW9ucyIsImVycm9yIiwiY29uc29sZSIsInJlZHVjZSIsImFjYyIsInQiLCJwcm9jZXNzTGFyZ2VUcmFuc2xhdGlvbkJhdGNoIiwiaSIsInB1c2giLCJudW1iZXIiLCJnZXRFcnJvck1lc3NhZ2VzIiwiZXJyb3JDb2RlIiwiZ2VuZXJhdGVFbWFpbFRlbXBsYXRlIiwidXNlckRhdGEiLCJvcmRlcklkIiwibmFtZSIsInRvdGFsIiwiaXRlbXMiLCJzdWJqZWN0IiwiZ3JlZXRpbmciLCJib2R5IiwiZm9vdGVyIiwiZ2V0Tm90aWZpY2F0aW9uTWVzc2FnZXMiLCJzZW5kZXIiLCJwZXJmb3JtYW5jZUNvbXBhcmlzb24iLCJrZXlzIiwibWFwIiwidGltZSIsImJhdGNoUmVzdWx0cyIsInRpbWVFbmQiLCJnZXRVc2VyR3JlZXRpbmciLCJ1c2VyTG9jYWxlIiwiaG91ciIsImdldEhvdXJzIiwiZW5zdXJlQWxsVHJhbnNsYXRpb25zUHJvY2Vzc2VkIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Q0FRQyxHQUVELFNBQVFBLEtBQUssRUFBRUMsSUFBSSxRQUErQix3QkFBd0I7QUFLMUUsMkVBQTJFO0FB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
|
|
@@ -110,4 +110,4 @@ export const flush = ()=>translationQueue.flush();
|
|
|
110
110
|
export const clear = ()=>translationQueue.clear();
|
|
111
111
|
export { translationQueue };
|
|
112
112
|
|
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50Ly5jb2RleC13b3JrdHJlZXMvcmVha3Rvci1waGFudGF6ZS1jaGF0L3BhY2thZ2VzL3JlYWt0b3Ivc3JjL3V0aWxzL3RyYW5zbGF0aW9uUXVldWUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjUtUHJlc2VudCwgTml0cm9nZW4gTGFicywgSW5jLlxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVXNlIGlzIHN1YmplY3QgdG8gdGhlIGFjY29tcGFueWluZyBjb21tZXJjaWFsIExJQ0VOU0UuXG4gKi9cblxuaW1wb3J0IHtnZXRDb250ZW50V2l0aEZhbGxiYWNrfSBmcm9tICcuLi9hY3Rpb25zL2NvbnRlbnQuanMnO1xuXG5pbXBvcnQgdHlwZSB7QXBpQ29udGV4dH0gZnJvbSAnLi4vdHlwZXMvYXV0aC50eXBlcy5qcyc7XG5pbXBvcnQgdHlwZSB7TG9jYWxlfSBmcm9tICcuLi90eXBlcy9jb250ZW50LnR5cGVzLmpzJztcblxuaW50ZXJmYWNlIFRyYW5zbGF0aW9uUmVxdWVzdCB7XG4gIGtleTogc3RyaW5nO1xuICBmYWxsYmFjazogc3RyaW5nO1xuICBwYXJhbXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICBsb2NhbGU6IExvY2FsZTtcbiAgcmVzb2x2ZTogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQ7XG4gIHJlamVjdDogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbn1cblxuaW50ZXJmYWNlIFRyYW5zbGF0aW9uQmF0Y2gge1xuICBjb250ZXh0OiBBcGlDb250ZXh0O1xuICByZXF1ZXN0czogVHJhbnNsYXRpb25SZXF1ZXN0W107XG4gIHRpbWVvdXQ6IE5vZGVKUy5UaW1lb3V0O1xufVxuXG5pbnRlcmZhY2UgVHJhbnNsYXRpb25PYmplY3Qge1xuICBrZXk6IHN0cmluZztcbiAgZmFsbGJhY2s/OiBzdHJpbmc7XG4gIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmNsYXNzIFRyYW5zbGF0aW9uUXVldWUge1xuICBwcml2YXRlIGJhdGNoZXM6IE1hcDxzdHJpbmcsIFRyYW5zbGF0aW9uQmF0Y2g+ID0gbmV3IE1hcCgpO1xuICBwcml2YXRlIGJhdGNoVGltZW91dCA9IDUwO1xuICBwcml2YXRlIG1heEJhdGNoU2l6ZSA9IDIwO1xuXG4gIGFzeW5jIHRyYW5zbGF0ZShcbiAgICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICAgIHRyYW5zbGF0aW9uczogVHJhbnNsYXRpb25PYmplY3RbXSxcbiAgICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbiAgKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gICAgaWYodHJhbnNsYXRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGNvbnN0IHByb21pc2VzID0gdHJhbnNsYXRpb25zLm1hcCgoe2tleSwgZmFsbGJhY2sgPSAnJywgcGFyYW1zID0ge319KSA9PlxuICAgICAgdGhpcy5nZXRUcmFuc2xhdGlvbihjb250ZXh0LCBrZXksIGZhbGxiYWNrLCBwYXJhbXMsIGxvY2FsZSlcbiAgICApO1xuXG4gICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKTtcblxuICAgIGNvbnN0IHJlc3VsdE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHt9O1xuICAgIHRyYW5zbGF0aW9ucy5mb3JFYWNoKCh7a2V5fSwgaW5kZXgpID0+IHtcbiAgICAgIHJlc3VsdE1hcFtrZXldID0gcmVzdWx0c1tpbmRleF07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gcmVzdWx0TWFwO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXRUcmFuc2xhdGlvbihcbiAgICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICAgIGtleTogc3RyaW5nLFxuICAgIGZhbGxiYWNrOiBzdHJpbmcsXG4gICAgcGFyYW1zOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge30sXG4gICAgbG9jYWxlOiBMb2NhbGUgPSAnZW4nXG4gICk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNvbnN0IGJhdGNoS2V5ID0gdGhpcy5nZXRCYXRjaEtleShjb250ZXh0LCBsb2NhbGUpO1xuICAgICAgY29uc3QgcmVxdWVzdDogVHJhbnNsYXRpb25SZXF1ZXN0ID0ge2tleSwgZmFsbGJhY2ssIHBhcmFtcywgbG9jYWxlLCByZXNvbHZlLCByZWplY3R9O1xuXG4gICAgICBpZighdGhpcy5iYXRjaGVzLmhhcyhiYXRjaEtleSkpIHtcbiAgICAgICAgY29uc3QgdGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0JhdGNoKGJhdGNoS2V5KTtcbiAgICAgICAgfSwgdGhpcy5iYXRjaFRpbWVvdXQpO1xuXG4gICAgICAgIHRoaXMuYmF0Y2hlcy5zZXQoYmF0Y2hLZXksIHtcbiAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgIHJlcXVlc3RzOiBbcmVxdWVzdF0sXG4gICAgICAgICAgdGltZW91dFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGJhdGNoID0gdGhpcy5iYXRjaGVzLmdldChiYXRjaEtleSkhO1xuICAgICAgICBiYXRjaC5yZXF1ZXN0cy5wdXNoKHJlcXVlc3QpO1xuXG4gICAgICAgIGlmKGJhdGNoLnJlcXVlc3RzLmxlbmd0aCA+PSB0aGlzLm1heEJhdGNoU2l6ZSkge1xuICAgICAgICAgIGNsZWFyVGltZW91dChiYXRjaC50aW1lb3V0KTtcbiAgICAgICAgICB0aGlzLnByb2Nlc3NCYXRjaChiYXRjaEtleSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGZsdXNoKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGJhdGNoS2V5cyA9IEFycmF5LmZyb20odGhpcy5iYXRjaGVzLmtleXMoKSk7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoYmF0Y2hLZXlzLm1hcCgoa2V5KSA9PiB0aGlzLnByb2Nlc3NCYXRjaChrZXkpKSk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLmJhdGNoZXMuZm9yRWFjaCgoYmF0Y2gpID0+IHtcbiAgICAgIGNsZWFyVGltZW91dChiYXRjaC50aW1lb3V0KTtcbiAgICAgIGJhdGNoLnJlcXVlc3RzLmZvckVhY2goKHJlcXVlc3QpID0+IHtcbiAgICAgICAgcmVxdWVzdC5yZWplY3QobmV3IEVycm9yKCdUcmFuc2xhdGlvbiBxdWV1ZSBjbGVhcmVkJykpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5iYXRjaGVzLmNsZWFyKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEJhdGNoS2V5KGNvbnRleHQ6IEFwaUNvbnRleHQsIGxvY2FsZTogTG9jYWxlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7Y29udGV4dC5kYXRhYmFzZU5hbWV9OiR7bG9jYWxlfWA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NCYXRjaChiYXRjaEtleTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmF0Y2ggPSB0aGlzLmJhdGNoZXMuZ2V0KGJhdGNoS2V5KTtcbiAgICBpZighYmF0Y2gpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmJhdGNoZXMuZGVsZXRlKGJhdGNoS2V5KTtcbiAgICBjbGVhclRpbWVvdXQoYmF0Y2gudGltZW91dCk7XG5cbiAgICBjb25zdCBwcm9taXNlcyA9IGJhdGNoLnJlcXVlc3RzLm1hcChhc3luYyAocmVxdWVzdCkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgY29udGVudCA9IGF3YWl0IGdldENvbnRlbnRXaXRoRmFsbGJhY2soXG4gICAgICAgICAgYmF0Y2guY29udGV4dCxcbiAgICAgICAgICByZXF1ZXN0LmtleSxcbiAgICAgICAgICByZXF1ZXN0LmZhbGxiYWNrLFxuICAgICAgICAgIHJlcXVlc3QubG9jYWxlXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGVkQ29udGVudCA9IHRoaXMuaW50ZXJwb2xhdGUoY29udGVudCwgcmVxdWVzdC5wYXJhbXMpO1xuICAgICAgICByZXR1cm4ge3JlcXVlc3QsIHJlc3VsdDogaW50ZXJwb2xhdGVkQ29udGVudH07XG4gICAgICB9IGNhdGNoKGVycm9yKSB7XG4gICAgICAgIGNvbnN0IGludGVycG9sYXRlZEZhbGxiYWNrID0gdGhpcy5pbnRlcnBvbGF0ZShyZXF1ZXN0LmZhbGxiYWNrLCByZXF1ZXN0LnBhcmFtcyk7XG4gICAgICAgIHJldHVybiB7cmVxdWVzdCwgcmVzdWx0OiBpbnRlcnBvbGF0ZWRGYWxsYmFja307XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKHByb21pc2VzKTtcblxuICAgIHJlc3VsdHMuZm9yRWFjaCgocmVzdWx0KSA9PiB7XG4gICAgICBpZihyZXN1bHQuc3RhdHVzID09PSAnZnVsZmlsbGVkJykge1xuICAgICAgICByZXN1bHQudmFsdWUucmVxdWVzdC5yZXNvbHZlKHJlc3VsdC52YWx1ZS5yZXN1bHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3Qge3JlcXVlc3R9ID0gcmVzdWx0LnJlYXNvbjtcbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGVkRmFsbGJhY2sgPSB0aGlzLmludGVycG9sYXRlKHJlcXVlc3QuZmFsbGJhY2ssIHJlcXVlc3QucGFyYW1zKTtcbiAgICAgICAgcmVxdWVzdC5yZXNvbHZlKGludGVycG9sYXRlZEZhbGxiYWNrKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaW50ZXJwb2xhdGUoY29udGVudDogc3RyaW5nLCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGNvbnRlbnQucmVwbGFjZSgvXFx7XFx7KFxcdyspXFx9XFx9L2csIChtYXRjaCwga2V5KSA9PiAocGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCA/IFN0cmluZyhwYXJhbXNba2V5XSkgOiBtYXRjaCkpO1xuICB9XG59XG5cbmNvbnN0IHRyYW5zbGF0aW9uUXVldWUgPSBuZXcgVHJhbnNsYXRpb25RdWV1ZSgpO1xuXG5leHBvcnQgY29uc3QgaTE4biA9IChcbiAgY29udGV4dDogQXBpQ29udGV4dCxcbiAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdFtdLFxuICBsb2NhbGU/OiBMb2NhbGVcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPT4gdHJhbnNsYXRpb25RdWV1ZS50cmFuc2xhdGUoY29udGV4dCwgdHJhbnNsYXRpb25zLCBsb2NhbGUpO1xuXG5leHBvcnQgY29uc3QgZmx1c2ggPSAoKTogUHJvbWlzZTx2b2lkPiA9PiB0cmFuc2xhdGlvblF1ZXVlLmZsdXNoKCk7XG5leHBvcnQgY29uc3QgY2xlYXIgPSAoKTogdm9pZCA9PiB0cmFuc2xhdGlvblF1ZXVlLmNsZWFyKCk7XG5cbmV4cG9ydCB0eXBlIHtUcmFuc2xhdGlvbk9iamVjdH07XG5cbiAgZXhwb3J0IHt0cmFuc2xhdGlvblF1ZXVlfTtcbiJdLCJuYW1lcyI6WyJnZXRDb250ZW50V2l0aEZhbGxiYWNrIiwiVHJhbnNsYXRpb25RdWV1ZSIsImJhdGNoZXMiLCJNYXAiLCJiYXRjaFRpbWVvdXQiLCJtYXhCYXRjaFNpemUiLCJ0cmFuc2xhdGUiLCJjb250ZXh0IiwidHJhbnNsYXRpb25zIiwibG9jYWxlIiwibGVuZ3RoIiwicHJvbWlzZXMiLCJtYXAiLCJrZXkiLCJmYWxsYmFjayIsInBhcmFtcyIsImdldFRyYW5zbGF0aW9uIiwicmVzdWx0cyIsIlByb21pc2UiLCJhbGwiLCJyZXN1bHRNYXAiLCJmb3JFYWNoIiwiaW5kZXgiLCJyZXNvbHZlIiwicmVqZWN0IiwiYmF0Y2hLZXkiLCJnZXRCYXRjaEtleSIsInJlcXVlc3QiLCJoYXMiLCJ0aW1lb3V0Iiwic2V0VGltZW91dCIsInByb2Nlc3NCYXRjaCIsInNldCIsInJlcXVlc3RzIiwiYmF0Y2giLCJnZXQiLCJwdXNoIiwiY2xlYXJUaW1lb3V0IiwiZmx1c2giLCJiYXRjaEtleXMiLCJBcnJheSIsImZyb20iLCJrZXlzIiwiY2xlYXIiLCJFcnJvciIsImRhdGFiYXNlTmFtZSIsImRlbGV0ZSIsImNvbnRlbnQiLCJpbnRlcnBvbGF0ZWRDb250ZW50IiwiaW50ZXJwb2xhdGUiLCJyZXN1bHQiLCJlcnJvciIsImludGVycG9sYXRlZEZhbGxiYWNrIiwiYWxsU2V0dGxlZCIsInN0YXR1cyIsInZhbHVlIiwicmVhc29uIiwicmVwbGFjZSIsIm1hdGNoIiwidW5kZWZpbmVkIiwiU3RyaW5nIiwidHJhbnNsYXRpb25RdWV1ZSIsImkxOG4iXSwibWFwcGluZ3MiOiJBQUFBOzs7Q0FHQyxHQUVELFNBQVFBLHNCQUFzQixRQUFPLHdCQUF3QjtBQTBCN0QsTUFBTUM7SUFDSUMsVUFBeUMsSUFBSUMsTUFBTTtJQUNuREMsZUFBZSxHQUFHO0lBQ2xCQyxlQUFlLEdBQUc7SUFFMUIsTUFBTUMsVUFDSkMsT0FBbUIsRUFDbkJDLFlBQWlDLEVBQ2pDQyxTQUFpQixJQUFJLEVBQ1k7UUFDakMsSUFBR0QsYUFBYUUsTUFBTSxLQUFLLEdBQUc7WUFDNUIsT0FBTyxDQUFDO1FBQ1Y7UUFFQSxNQUFNQyxXQUFXSCxhQUFhSSxHQUFHLENBQUMsQ0FBQyxFQUFDQyxHQUFHLEVBQUVDLFdBQVcsRUFBRSxFQUFFQyxTQUFTLENBQUMsQ0FBQyxFQUFDLEdBQ2xFLElBQUksQ0FBQ0MsY0FBYyxDQUFDVCxTQUFTTSxLQUFLQyxVQUFVQyxRQUFRTjtRQUd0RCxNQUFNUSxVQUFVLE1BQU1DLFFBQVFDLEdBQUcsQ0FBQ1I7UUFFbEMsTUFBTVMsWUFBb0MsQ0FBQztRQUMzQ1osYUFBYWEsT0FBTyxDQUFDLENBQUMsRUFBQ1IsR0FBRyxFQUFDLEVBQUVTO1lBQzNCRixTQUFTLENBQUNQLElBQUksR0FBR0ksT0FBTyxDQUFDSyxNQUFN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
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvdXRpbHMvdHJhbnNsYXRpb25RdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgMjAyNS1QcmVzZW50LCBOaXRyb2dlbiBMYWJzLCBJbmMuXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBVc2UgaXMgc3ViamVjdCB0byB0aGUgYWNjb21wYW55aW5nIGNvbW1lcmNpYWwgTElDRU5TRS5cbiAqL1xuXG5pbXBvcnQge2dldENvbnRlbnRXaXRoRmFsbGJhY2t9IGZyb20gJy4uL2FjdGlvbnMvY29udGVudC5qcyc7XG5cbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuLi90eXBlcy9hdXRoLnR5cGVzLmpzJztcbmltcG9ydCB0eXBlIHtMb2NhbGV9IGZyb20gJy4uL3R5cGVzL2NvbnRlbnQudHlwZXMuanMnO1xuXG5pbnRlcmZhY2UgVHJhbnNsYXRpb25SZXF1ZXN0IHtcbiAga2V5OiBzdHJpbmc7XG4gIGZhbGxiYWNrOiBzdHJpbmc7XG4gIHBhcmFtcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIGxvY2FsZTogTG9jYWxlO1xuICByZXNvbHZlOiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgcmVqZWN0OiAoZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgVHJhbnNsYXRpb25CYXRjaCB7XG4gIGNvbnRleHQ6IEFwaUNvbnRleHQ7XG4gIHJlcXVlc3RzOiBUcmFuc2xhdGlvblJlcXVlc3RbXTtcbiAgdGltZW91dDogTm9kZUpTLlRpbWVvdXQ7XG59XG5cbmludGVyZmFjZSBUcmFuc2xhdGlvbk9iamVjdCB7XG4gIGtleTogc3RyaW5nO1xuICBmYWxsYmFjaz86IHN0cmluZztcbiAgcGFyYW1zPzogUmVjb3JkPHN0cmluZywgYW55Pjtcbn1cblxuY2xhc3MgVHJhbnNsYXRpb25RdWV1ZSB7XG4gIHByaXZhdGUgYmF0Y2hlczogTWFwPHN0cmluZywgVHJhbnNsYXRpb25CYXRjaD4gPSBuZXcgTWFwKCk7XG4gIHByaXZhdGUgYmF0Y2hUaW1lb3V0ID0gNTA7XG4gIHByaXZhdGUgbWF4QmF0Y2hTaXplID0gMjA7XG5cbiAgYXN5bmMgdHJhbnNsYXRlKFxuICAgIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gICAgdHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbk9iamVjdFtdLFxuICAgIGxvY2FsZTogTG9jYWxlID0gJ2VuJ1xuICApOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgICBpZih0cmFuc2xhdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgY29uc3QgcHJvbWlzZXMgPSB0cmFuc2xhdGlvbnMubWFwKCh7a2V5LCBmYWxsYmFjayA9ICcnLCBwYXJhbXMgPSB7fX0pID0+XG4gICAgICB0aGlzLmdldFRyYW5zbGF0aW9uKGNvbnRleHQsIGtleSwgZmFsbGJhY2ssIHBhcmFtcywgbG9jYWxlKVxuICAgICk7XG5cbiAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuXG4gICAgY29uc3QgcmVzdWx0TWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge307XG4gICAgdHJhbnNsYXRpb25zLmZvckVhY2goKHtrZXl9LCBpbmRleCkgPT4ge1xuICAgICAgcmVzdWx0TWFwW2tleV0gPSByZXN1bHRzW2luZGV4XTtcbiAgICB9KTtcblxuICAgIHJldHVybiByZXN1bHRNYXA7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldFRyYW5zbGF0aW9uKFxuICAgIGNvbnRleHQ6IEFwaUNvbnRleHQsXG4gICAga2V5OiBzdHJpbmcsXG4gICAgZmFsbGJhY2s6IHN0cmluZyxcbiAgICBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fSxcbiAgICBsb2NhbGU6IExvY2FsZSA9ICdlbidcbiAgKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgYmF0Y2hLZXkgPSB0aGlzLmdldEJhdGNoS2V5KGNvbnRleHQsIGxvY2FsZSk7XG4gICAgICBjb25zdCByZXF1ZXN0OiBUcmFuc2xhdGlvblJlcXVlc3QgPSB7a2V5LCBmYWxsYmFjaywgcGFyYW1zLCBsb2NhbGUsIHJlc29sdmUsIHJlamVjdH07XG5cbiAgICAgIGlmKCF0aGlzLmJhdGNoZXMuaGFzKGJhdGNoS2V5KSkge1xuICAgICAgICBjb25zdCB0aW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5wcm9jZXNzQmF0Y2goYmF0Y2hLZXkpO1xuICAgICAgICB9LCB0aGlzLmJhdGNoVGltZW91dCk7XG5cbiAgICAgICAgdGhpcy5iYXRjaGVzLnNldChiYXRjaEtleSwge1xuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgcmVxdWVzdHM6IFtyZXF1ZXN0XSxcbiAgICAgICAgICB0aW1lb3V0XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgYmF0Y2ggPSB0aGlzLmJhdGNoZXMuZ2V0KGJhdGNoS2V5KSE7XG4gICAgICAgIGJhdGNoLnJlcXVlc3RzLnB1c2gocmVxdWVzdCk7XG5cbiAgICAgICAgaWYoYmF0Y2gucmVxdWVzdHMubGVuZ3RoID49IHRoaXMubWF4QmF0Y2hTaXplKSB7XG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGJhdGNoLnRpbWVvdXQpO1xuICAgICAgICAgIHRoaXMucHJvY2Vzc0JhdGNoKGJhdGNoS2V5KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgZmx1c2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgYmF0Y2hLZXlzID0gQXJyYXkuZnJvbSh0aGlzLmJhdGNoZXMua2V5cygpKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChiYXRjaEtleXMubWFwKChrZXkpID0+IHRoaXMucHJvY2Vzc0JhdGNoKGtleSkpKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuYmF0Y2hlcy5mb3JFYWNoKChiYXRjaCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KGJhdGNoLnRpbWVvdXQpO1xuICAgICAgYmF0Y2gucmVxdWVzdHMuZm9yRWFjaCgocmVxdWVzdCkgPT4ge1xuICAgICAgICByZXF1ZXN0LnJlamVjdChuZXcgRXJyb3IoJ1RyYW5zbGF0aW9uIHF1ZXVlIGNsZWFyZWQnKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLmJhdGNoZXMuY2xlYXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0QmF0Y2hLZXkoY29udGV4dDogQXBpQ29udGV4dCwgbG9jYWxlOiBMb2NhbGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHtjb250ZXh0LmRhdGFiYXNlTmFtZX06JHtsb2NhbGV9YDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcHJvY2Vzc0JhdGNoKGJhdGNoS2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBiYXRjaCA9IHRoaXMuYmF0Y2hlcy5nZXQoYmF0Y2hLZXkpO1xuICAgIGlmKCFiYXRjaCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuYmF0Y2hlcy5kZWxldGUoYmF0Y2hLZXkpO1xuICAgIGNsZWFyVGltZW91dChiYXRjaC50aW1lb3V0KTtcblxuICAgIGNvbnN0IHByb21pc2VzID0gYmF0Y2gucmVxdWVzdHMubWFwKGFzeW5jIChyZXF1ZXN0KSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gYXdhaXQgZ2V0Q29udGVudFdpdGhGYWxsYmFjayhcbiAgICAgICAgICBiYXRjaC5jb250ZXh0LFxuICAgICAgICAgIHJlcXVlc3Qua2V5LFxuICAgICAgICAgIHJlcXVlc3QuZmFsbGJhY2ssXG4gICAgICAgICAgcmVxdWVzdC5sb2NhbGVcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRDb250ZW50ID0gdGhpcy5pbnRlcnBvbGF0ZShjb250ZW50LCByZXF1ZXN0LnBhcmFtcyk7XG4gICAgICAgIHJldHVybiB7cmVxdWVzdCwgcmVzdWx0OiBpbnRlcnBvbGF0ZWRDb250ZW50fTtcbiAgICAgIH0gY2F0Y2goZXJyb3IpIHtcbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGVkRmFsbGJhY2sgPSB0aGlzLmludGVycG9sYXRlKHJlcXVlc3QuZmFsbGJhY2ssIHJlcXVlc3QucGFyYW1zKTtcbiAgICAgICAgcmV0dXJuIHtyZXF1ZXN0LCByZXN1bHQ6IGludGVycG9sYXRlZEZhbGxiYWNrfTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHJlc3VsdHMgPSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQocHJvbWlzZXMpO1xuXG4gICAgcmVzdWx0cy5mb3JFYWNoKChyZXN1bHQpID0+IHtcbiAgICAgIGlmKHJlc3VsdC5zdGF0dXMgPT09ICdmdWxmaWxsZWQnKSB7XG4gICAgICAgIHJlc3VsdC52YWx1ZS5yZXF1ZXN0LnJlc29sdmUocmVzdWx0LnZhbHVlLnJlc3VsdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB7cmVxdWVzdH0gPSByZXN1bHQucmVhc29uO1xuICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRGYWxsYmFjayA9IHRoaXMuaW50ZXJwb2xhdGUocmVxdWVzdC5mYWxsYmFjaywgcmVxdWVzdC5wYXJhbXMpO1xuICAgICAgICByZXF1ZXN0LnJlc29sdmUoaW50ZXJwb2xhdGVkRmFsbGJhY2spO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpbnRlcnBvbGF0ZShjb250ZW50OiBzdHJpbmcsIHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9KTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudC5yZXBsYWNlKC9cXHtcXHsoXFx3KylcXH1cXH0vZywgKG1hdGNoLCBrZXkpID0+IChwYXJhbXNba2V5XSAhPT0gdW5kZWZpbmVkID8gU3RyaW5nKHBhcmFtc1trZXldKSA6IG1hdGNoKSk7XG4gIH1cbn1cblxuY29uc3QgdHJhbnNsYXRpb25RdWV1ZSA9IG5ldyBUcmFuc2xhdGlvblF1ZXVlKCk7XG5cbmV4cG9ydCBjb25zdCBpMThuID0gKFxuICBjb250ZXh0OiBBcGlDb250ZXh0LFxuICB0cmFuc2xhdGlvbnM6IFRyYW5zbGF0aW9uT2JqZWN0W10sXG4gIGxvY2FsZT86IExvY2FsZVxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9PiB0cmFuc2xhdGlvblF1ZXVlLnRyYW5zbGF0ZShjb250ZXh0LCB0cmFuc2xhdGlvbnMsIGxvY2FsZSk7XG5cbmV4cG9ydCBjb25zdCBmbHVzaCA9ICgpOiBQcm9taXNlPHZvaWQ+ID0+IHRyYW5zbGF0aW9uUXVldWUuZmx1c2goKTtcbmV4cG9ydCBjb25zdCBjbGVhciA9ICgpOiB2b2lkID0+IHRyYW5zbGF0aW9uUXVldWUuY2xlYXIoKTtcblxuZXhwb3J0IHR5cGUge1RyYW5zbGF0aW9uT2JqZWN0fTtcblxuICBleHBvcnQge3RyYW5zbGF0aW9uUXVldWV9O1xuIl0sIm5hbWVzIjpbImdldENvbnRlbnRXaXRoRmFsbGJhY2siLCJUcmFuc2xhdGlvblF1ZXVlIiwiYmF0Y2hlcyIsIk1hcCIsImJhdGNoVGltZW91dCIsIm1heEJhdGNoU2l6ZSIsInRyYW5zbGF0ZSIsImNvbnRleHQiLCJ0cmFuc2xhdGlvbnMiLCJsb2NhbGUiLCJsZW5ndGgiLCJwcm9taXNlcyIsIm1hcCIsImtleSIsImZhbGxiYWNrIiwicGFyYW1zIiwiZ2V0VHJhbnNsYXRpb24iLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsInJlc3VsdE1hcCIsImZvckVhY2giLCJpbmRleCIsInJlc29sdmUiLCJyZWplY3QiLCJiYXRjaEtleSIsImdldEJhdGNoS2V5IiwicmVxdWVzdCIsImhhcyIsInRpbWVvdXQiLCJzZXRUaW1lb3V0IiwicHJvY2Vzc0JhdGNoIiwic2V0IiwicmVxdWVzdHMiLCJiYXRjaCIsImdldCIsInB1c2giLCJjbGVhclRpbWVvdXQiLCJmbHVzaCIsImJhdGNoS2V5cyIsIkFycmF5IiwiZnJvbSIsImtleXMiLCJjbGVhciIsIkVycm9yIiwiZGF0YWJhc2VOYW1lIiwiZGVsZXRlIiwiY29udGVudCIsImludGVycG9sYXRlZENvbnRlbnQiLCJpbnRlcnBvbGF0ZSIsInJlc3VsdCIsImVycm9yIiwiaW50ZXJwb2xhdGVkRmFsbGJhY2siLCJhbGxTZXR0bGVkIiwic3RhdHVzIiwidmFsdWUiLCJyZWFzb24iLCJyZXBsYWNlIiwibWF0Y2giLCJ1bmRlZmluZWQiLCJTdHJpbmciLCJ0cmFuc2xhdGlvblF1ZXVlIiwiaTE4biJdLCJtYXBwaW5ncyI6IkFBQUE7OztDQUdDLEdBRUQsU0FBUUEsc0JBQXNCLFFBQU8sd0JBQXdCO0FBMEI3RCxNQUFNQztJQUNJQyxVQUF5QyxJQUFJQyxNQUFNO0lBQ25EQyxlQUFlLEdBQUc7SUFDbEJDLGVBQWUsR0FBRztJQUUxQixNQUFNQyxVQUNKQyxPQUFtQixFQUNuQkMsWUFBaUMsRUFDakNDLFNBQWlCLElBQUksRUFDWTtRQUNqQyxJQUFHRCxhQUFhRSxNQUFNLEtBQUssR0FBRztZQUM1QixPQUFPLENBQUM7UUFDVjtRQUVBLE1BQU1DLFdBQVdILGFBQWFJLEdBQUcsQ0FBQyxDQUFDLEVBQUNDLEdBQUcsRUFBRUMsV0FBVyxFQUFFLEVBQUVDLFNBQVMsQ0FBQyxDQUFDLEVBQUMsR0FDbEUsSUFBSSxDQUFDQyxjQUFjLENBQUNULFNBQVNNLEtBQUtDLFVBQVVDLFFBQVFOO1FBR3RELE1BQU1RLFVBQVUsTUFBTUMsUUFBUUMsR0FBRyxDQUFDUjtRQUVsQyxNQUFNUyxZQUFvQyxDQUFDO1FBQzNDWixhQUFhYSxPQUFPLENBQUMsQ0FBQyxFQUFDUixHQUFHLEVBQUMsRUFBRVM7WUFDM0JGLFNBQVMsQ0FBQ1AsSUFBSSxHQUFHSSxPQUFPLENBQUNLLE1BQU07UUFDakM7UUFFQSxPQUFPRjtJQUNUO0lBRUEsTUFB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
|
package/lib/videoProcessing.js
CHANGED
|
@@ -63,4 +63,4 @@ export const createMediaConvertBackfillHandler = (configureReaktor)=>async ()=>{
|
|
|
63
63
|
return mediaConvertBackfillHandler();
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9uaXRyb2c3L0RldmVsb3BtZW50L3JlYWt0b3IvcGFja2FnZXMvcmVha3Rvci9zcmMvdmlkZW9Qcm9jZXNzaW5nLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtFdmVudEJyaWRnZUV2ZW50fSBmcm9tICdhd3MtbGFtYmRhJztcblxuaW1wb3J0IHtDb25maWd9IGZyb20gJy4vY29uZmlnLmpzJztcbmltcG9ydCB0eXBlIHtBcGlDb250ZXh0fSBmcm9tICcuL3R5cGVzL2F1dGgudHlwZXMuanMnO1xuaW1wb3J0IHtcbiAgY29tcGxldGVWaWRlb1Byb2Nlc3NpbmcsXG4gIGZhaWxWaWRlb1Byb2Nlc3NpbmcsXG4gIHF1ZXVlVmlkZW9UcmFuc2NvZGVCYWNrZmlsbFxufSBmcm9tICcuL2FjdGlvbnMvdmlkZW9zLmpzJztcblxudHlwZSBNZWRpYUNvbnZlcnRKb2JTdGF0ZSA9IHtcbiAgcmVhZG9ubHkgam9iSWQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXR1cz86IHN0cmluZztcbiAgcmVhZG9ubHkgdXNlck1ldGFkYXRhPzoge1xuICAgIHJlYWRvbmx5IGhsc0tleT86IHN0cmluZztcbiAgICByZWFkb25seSBwbGF5YmFja0tleT86IHN0cmluZztcbiAgICByZWFkb25seSBzdHJlYW1UeXBlPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJJZD86IHN0cmluZztcbiAgICByZWFkb25seSB2aWRlb0lkPzogc3RyaW5nO1xuICB9O1xufTtcblxuZXhwb3J0IHR5cGUgUmVha3RvckNvbmZpZ3VyZUhhbmRsZXIgPSAoKSA9PiB2b2lkO1xuXG5jb25zdCBjcmVhdGVQcm9jZXNzaW5nQ29udGV4dCA9ICgpOiBBcGlDb250ZXh0ID0+ICh7XG4gIGNvbmZpZzoge1xuICAgIGRldGFpbHM6IHtcbiAgICAgIG5hbWU6IENvbmZpZy5nZXQoJ2RldGFpbHMubmFtZScpLFxuICAgICAgc3VwcG9ydEVtYWlsOiBDb25maWcuZ2V0KCdkZXRhaWxzLnN1cHBvcnRFbWFpbCcpLFxuICAgICAgc3VwcG9ydE5hbWU6IENvbmZpZy5nZXQoJ2RldGFpbHMuc3VwcG9ydE5hbWUnKVxuICAgIH1cbiAgfSxcbiAgZGF0YWJhc2VOYW1lOiBDb25maWcuZ2V0KCdhcmFuZ29kYi5kYXRhYmFzZScpLFxuICBzZXNzaW9uOiB7fVxufSBhcyBBcGlDb250ZXh0KTtcblxuZXhwb3J0IGNvbnN0IG1lZGlhQ29udmVydEhhbmRsZXIgPSBhc3luYyAoXG4gIGV2ZW50OiBFdmVudEJyaWRnZUV2ZW50PCdNZWRpYUNvbnZlcnQgSm9iIFN0YXRlIENoYW5nZScsIE1lZGlhQ29udmVydEpvYlN0YXRlPlxuKTogUHJvbWlzZTx7c3RhdHVzQ29kZTogbnVtYmVyfT4gPT4ge1xuICBjb25zdCBkZXRhaWwgPSBldmVudD8uZGV0YWlsIHx8IHt9O1xuICBjb25zdCBzdGF0dXMgPSBTdHJpbmcoZGV0YWlsPy5zdGF0dXMgfHwgJycpLnRvVXBwZXJDYXNlKCk7XG4gIGNvbnN0IHVzZXJNZXRhZGF0YSA9IGRldGFpbD8udXNlck1ldGFkYXRhIHx8IHt9O1xuICBjb25zdCB2aWRlb0lkID0gU3RyaW5nKHVzZXJNZXRhZGF0YT8udmlkZW9JZCB8fCAnJyk7XG4gIGNvbnN0IGNvbnRleHQgPSBjcmVhdGVQcm9jZXNzaW5nQ29udGV4dCgpO1xuXG4gIGlmKCF2aWRlb0lkKSB7XG4gICAgcmV0dXJuIHtzdGF0dXNDb2RlOiAyMDJ9O1xuICB9XG5cbiAgaWYoc3RhdHVzID09PSAnQ09NUExFVEUnKSB7XG4gICAgYXdhaXQgY29tcGxldGVWaWRlb1Byb2Nlc3NpbmcoY29udGV4dCwgdmlkZW9JZCwge1xuICAgICAgaGxzS2V5OiBTdHJpbmcodXNlck1ldGFkYXRhPy5obHNLZXkgfHwgJycpLFxuICAgICAgcGxheWJhY2tLZXk6IFN0cmluZyh1c2VyTWV0YWRhdGE/LnBsYXliYWNrS2V5IHx8ICcnKSxcbiAgICAgIHByb2Nlc3NpbmdTdGF0dXM6ICdyZWFkeScsXG4gICAgICBzdHJlYW1UeXBlOiBTdHJpbmcodXNlck1ldGFkYXRhPy5zdHJlYW1UeXBlIHx8ICdwcm9ncmVzc2l2ZScpXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge3N0YXR1c0NvZGU6IDIwMH07XG4gIH1cblxuICBpZihbJ0NBTkNFTEVEJywgJ0VSUk9SJ10uaW5jbHVkZXMoc3RhdHVzKSkge1xuICAgIGF3YWl0IGZhaWxWaWRlb1Byb2Nlc3NpbmcoY29udGV4dCwgdmlkZW9JZCk7XG4gIH1cblxuICByZXR1cm4ge3N0YXR1c0NvZGU6IDIwMH07XG59O1xuXG5leHBvcnQgY29uc3QgbWVkaWFDb252ZXJ0QmFja2ZpbGxIYW5kbGVyID0gYXN5bmMgKCk6IFByb21pc2U8e2JvZHk6IHN0cmluZzsgc3RhdHVzQ29kZTogbnVtYmVyfT4gPT4ge1xuICBjb25zdCBsaW1pdCA9IE51bWJlcihwcm9jZXNzLmVudi5WSURFT19UUkFOU0NPREVfQkFDS0ZJTExfTElNSVQgfHwgMTApO1xuICBjb25zdCBqb2JJZHMgPSBhd2FpdCBxdWV1ZVZpZGVvVHJhbnNjb2RlQmFja2ZpbGwoY3JlYXRlUHJvY2Vzc2luZ0NvbnRleHQoKSwgbGltaXQpO1xuXG4gIHJldHVybiB7XG4gICAgYm9keTogSlNPTi5zdHJpbmdpZnkoe2pvYklkcywgcXVldWVkOiBqb2JJZHMubGVuZ3RofSksXG4gICAgc3RhdHVzQ29kZTogMjAwXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWVkaWFDb252ZXJ0SGFuZGxlciA9IChjb25maWd1cmVSZWFrdG9yOiBSZWFrdG9yQ29uZmlndXJlSGFuZGxlcikgPT4gYXN5bmMgKFxuICBldmVudDogRXZlbnRCcmlkZ2VFdmVudDwnTWVkaWFDb252ZXJ0IEpvYiBTdGF0ZSBDaGFuZ2UnLCBNZWRpYUNvbnZlcnRKb2JTdGF0ZT5cbik6IFByb21pc2U8e3N0YXR1c0NvZGU6IG51bWJlcn0+ID0+IHtcbiAgY29uZmlndXJlUmVha3RvcigpO1xuICByZXR1cm4gbWVkaWFDb252ZXJ0SGFuZGxlcihldmVudCk7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWVkaWFDb252ZXJ0QmFja2ZpbGxIYW5kbGVyID0gKGNvbmZpZ3VyZVJlYWt0b3I6IFJlYWt0b3JDb25maWd1cmVIYW5kbGVyKSA9PiBhc3luYyAoKTogUHJvbWlzZTx7XG4gIGJvZHk6IHN0cmluZztcbiAgc3RhdHVzQ29kZTogbnVtYmVyO1xufT4gPT4ge1xuICBjb25maWd1cmVSZWFrdG9yKCk7XG4gIHJldHVybiBtZWRpYUNvbnZlcnRCYWNrZmlsbEhhbmRsZXIoKTtcbn07XG4iXSwibmFtZXMiOlsiQ29uZmlnIiwiY29tcGxldGVWaWRlb1Byb2Nlc3NpbmciLCJmYWlsVmlkZW9Qcm9jZXNzaW5nIiwicXVldWVWaWRlb1RyYW5zY29kZUJhY2tmaWxsIiwiY3JlYXRlUHJvY2Vzc2luZ0NvbnRleHQiLCJjb25maWciLCJkZXRhaWxzIiwibmFtZSIsImdldCIsInN1cHBvcnRFbWFpbCIsInN1cHBvcnROYW1lIiwiZGF0YWJhc2VOYW1lIiwic2Vzc2lvbiIsIm1lZGlhQ29udmVydEhhbmRsZXIiLCJldmVudCIsImRldGFpbCIsInN0YXR1cyIsIlN0cmluZyIsInRvVXBwZXJDYXNlIiwidXNlck1ldGFkYXRhIiwidmlkZW9JZCIsImNvbnRleHQiLCJzdGF0dXNDb2RlIiwiaGxzS2V5IiwicGxheWJhY2tLZXkiLCJwcm9jZXNzaW5nU3RhdHVzIiwic3RyZWFtVHlwZSIsImluY2x1ZGVzIiwibWVkaWFDb252ZXJ0QmFja2ZpbGxIYW5kbGVyIiwibGltaXQiLCJOdW1iZXIiLCJwcm9jZXNzIiwiZW52IiwiVklERU9fVFJBTlNDT0RFX0JBQ0tGSUxMX0xJTUlUIiwiam9iSWRzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJxdWV1ZWQiLCJsZW5ndGgiLCJjcmVhdGVNZWRpYUNvbnZlcnRIYW5kbGVyIiwiY29uZmlndXJlUmVha3RvciIsImNyZWF0ZU1lZGlhQ29udmVydEJhY2tmaWxsSGFuZGxlciJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBUUEsTUFBTSxRQUFPLGNBQWM7QUFFbkMsU0FDRUMsdUJBQXVCLEVBQ3ZCQyxtQkFBbUIsRUFDbkJDLDJCQUEyQixRQUN0QixzQkFBc0I7QUFnQjdCLE1BQU1DLDBCQUEwQixJQUFtQixDQUFBO1FBQ2pEQyxRQUFRO1lBQ05DLFNBQVM7Z0JBQ1BDLE1BQU1QLE9BQU9RLEdBQUcsQ0FBQztnQkFDakJDLGNBQWNULE9BQU9RLEdBQUcsQ0FBQztnQkFDekJFLGFBQWFWLE9BQU9RLEdBQUcsQ0FBQztZQUMxQjtRQUNGO1FBQ0FHLGNBQWNYLE9BQU9RLEdBQUcsQ0FBQztRQUN6QkksU0FBUyxDQUFDO0lBQ1osQ0FBQTtBQUVBLE9BQU8sTUFBTUMsc0JBQXNCLE9BQ2pDQztJQUVBLE1BQU1DLFNBQVNELE9BQU9DLFVBQVUsQ0FBQztJQUNqQyxNQUFNQyxTQUFTQyxPQUFPRixRQUFRQyxVQUFVLElBQUlFLFdBQVc7SUFDdkQsTUFBTUMsZUFBZUosUUFBUUksZ0JBQWdCLENBQUM7SUFDOUMsTUFBTUMsVUFBVUgsT0FBT0UsY0FBY0MsV0FBVztJQUNoRCxNQUFNQyxVQUFVakI7SUFFaEIsSUFBRyxDQUFDZ0IsU0FBUztRQUNYLE9BQU87WUFBQ0UsWUFBWTtRQUFHO0lBQ3pCO0lBRUEsSUFBR04sV0FBVyxZQUFZO1FBQ3hCLE1BQU1mLHdCQUF3Qm9CLFNBQVNELFNBQVM7WUFDOUNHLFFBQVFOLE9BQU9FLGNBQWNJLFVBQVU7WUFDdkNDLGFBQWFQLE9BQU9FLGNBQWNLLGVBQWU7WUFDakRDLGtCQUFrQjtZQUNsQkMsWUFBWVQsT0FBT0UsY0FBY08sY0FBYztRQUNqRDtRQUVBLE9BQU87WUFBQ0osWUFBWTtRQUFHO0lBQ3pCO0lBRUEsSUFBRztRQUFDO1FBQVk7S0FBUSxDQUFDSyxRQUFRLENBQUNYLFNBQVM7UUFDekMsTUFBTWQsb0JBQW9CbUIsU0FBU0Q7SUFDckM7SUFFQSxPQUFPO1FBQUNFLFlBQVk7SUFBRztBQUN6QixFQUFFO0FBRUYsT0FBTyxNQUFNTSw4QkFBOEI7SUFDekMsTUFBTUMsUUFBUUMsT0FBT0MsUUFBUUMsR0FBRyxDQUFDQyw4QkFBOEIsSUFBSTtJQUNuRSxNQUFNQyxTQUFTLE1BQU0vQiw0QkFBNEJDLDJCQUEyQnlCO0lBRTVFLE9BQU87UUFDTE0sTUFBTUMsS0FBS0MsU0FBUyxDQUFDO1lBQUNIO1lBQVFJLFFBQVFKLE9BQU9LLE1BQU07UUFBQTtRQUNuRGpCLFlBQVk7SUFDZDtBQUNGLEVBQUU7QUFFRixPQUFPLE1BQU1rQiw0QkFBNEIsQ0FBQ0MsbUJBQThDLE9BQ3RGM0I7UUFFQTJCO1FBQ0EsT0FBTzVCLG9CQUFvQkM7SUFDN0IsRUFBRTtBQUVGLE9BQU8sTUFBTTRCLG9DQUFvQyxDQUFDRCxtQkFBOEM7UUFJOUZBO1FBQ0EsT0FBT2I7SUFDVCxFQUFFIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nlabs/reaktor",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "GraphQL and ArangoDB application platform for typed actions, authentication, billing, media, messaging, and realtime services.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"type": "module",
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
"types": "./lib/index.d.ts",
|
|
10
10
|
"files": [
|
|
11
11
|
"lib",
|
|
12
|
-
"README.md"
|
|
12
|
+
"README.md",
|
|
13
|
+
"docs/GENERATION.md"
|
|
13
14
|
],
|
|
14
15
|
"typesVersions": {
|
|
15
16
|
"*": {
|
|
@@ -81,29 +82,29 @@
|
|
|
81
82
|
"watch": "lex compile --remove --watch"
|
|
82
83
|
},
|
|
83
84
|
"dependencies": {
|
|
84
|
-
"@aws-sdk/client-apigatewaymanagementapi": "^3.
|
|
85
|
-
"@aws-sdk/client-dynamodb": "^3.
|
|
86
|
-
"@aws-sdk/client-mediaconvert": "^3.
|
|
87
|
-
"@aws-sdk/client-rum": "^3.
|
|
88
|
-
"@aws-sdk/client-s3": "^3.
|
|
89
|
-
"@aws-sdk/client-ses": "^3.
|
|
90
|
-
"@aws-sdk/client-sns": "^3.
|
|
91
|
-
"@aws-sdk/s3-request-presigner": "^3.
|
|
85
|
+
"@aws-sdk/client-apigatewaymanagementapi": "^3.1137.0",
|
|
86
|
+
"@aws-sdk/client-dynamodb": "^3.1137.0",
|
|
87
|
+
"@aws-sdk/client-mediaconvert": "^3.1137.0",
|
|
88
|
+
"@aws-sdk/client-rum": "^3.1137.0",
|
|
89
|
+
"@aws-sdk/client-s3": "^3.1137.0",
|
|
90
|
+
"@aws-sdk/client-ses": "^3.1137.0",
|
|
91
|
+
"@aws-sdk/client-sns": "^3.1137.0",
|
|
92
|
+
"@aws-sdk/s3-request-presigner": "^3.1137.0",
|
|
92
93
|
"@nlabs/arkhamjs": "3.31.16",
|
|
93
94
|
"@nlabs/rip-hunter": "^3.1.2",
|
|
94
|
-
"@nlabs/utils": "^2.
|
|
95
|
+
"@nlabs/utils": "^2.11.0",
|
|
95
96
|
"apn": "npm:@parse/node-apn@^8.1.0",
|
|
96
|
-
"arangojs": "^10.
|
|
97
|
+
"arangojs": "^10.5.0",
|
|
97
98
|
"busboy": "^1.6.0",
|
|
98
99
|
"child_process": "^1.0.2",
|
|
99
100
|
"core-js": "^3.50.0",
|
|
100
101
|
"exif-reader": "^2.0.3",
|
|
101
|
-
"file-type": "^22.
|
|
102
|
+
"file-type": "^22.1.1",
|
|
102
103
|
"google-libphonenumber": "^3.2.46",
|
|
103
104
|
"graphql": "^16.14.2",
|
|
104
|
-
"graphql-compose": "^9.2.
|
|
105
|
+
"graphql-compose": "^9.2.2",
|
|
105
106
|
"graphql-fields": "^2.0.3",
|
|
106
|
-
"i18next": "^26.4.
|
|
107
|
+
"i18next": "^26.4.2",
|
|
107
108
|
"jsonwebtoken": "^9.0.3",
|
|
108
109
|
"luxon": "^3.7.2",
|
|
109
110
|
"mime-types": "^3.0.2",
|
|
@@ -112,21 +113,21 @@
|
|
|
112
113
|
"sanitize-html": "^2.17.7",
|
|
113
114
|
"sharp": "0.35.4",
|
|
114
115
|
"spawn-sync": "^2.0.0",
|
|
115
|
-
"stripe": "^22.6.
|
|
116
|
+
"stripe": "^22.6.2",
|
|
116
117
|
"tls": "0.0.1",
|
|
117
118
|
"typed-promisify": "^0.4.0",
|
|
118
|
-
"
|
|
119
|
+
"ws": "^8.21.3",
|
|
120
|
+
"zod": "^4.6.5"
|
|
119
121
|
},
|
|
120
122
|
"devDependencies": {
|
|
121
|
-
"@nlabs/lex": "^2.0.
|
|
123
|
+
"@nlabs/lex": "^2.0.9",
|
|
122
124
|
"@types/aws-lambda": "^8.10.163",
|
|
123
125
|
"@types/busboy": "^1.5.4",
|
|
124
126
|
"@types/luxon": "^3.7.5",
|
|
125
|
-
"@types/node": "^26.
|
|
126
|
-
"@
|
|
127
|
+
"@types/node": "^26.6.2",
|
|
128
|
+
"@types/ws": "^8.18.1",
|
|
127
129
|
"chokidar": "^5.0.0",
|
|
128
|
-
"graphql-tools": "^9.0.
|
|
129
|
-
"typescript": "^7.0.2"
|
|
130
|
-
"vitest": "^4.1.11"
|
|
130
|
+
"graphql-tools": "^9.0.35",
|
|
131
|
+
"typescript": "^7.0.2"
|
|
131
132
|
}
|
|
132
133
|
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { ApiContext } from '../types/auth.types.js';
|
|
2
|
-
import type { ChatIdentity, ChatQuery } from './membership.js';
|
|
3
|
-
import type { AcceptInviteInput, ChangeMemberRoleInput, ConversationInvite, ConversationMembership, ConversationSummary, CreateDirectInput, CreateGroupInput, InviteMemberInput, LeaveConversationInput, RemoveMemberInput, TransferOwnershipInput } from './types.js';
|
|
4
|
-
export interface ConversationRecord {
|
|
5
|
-
readonly _key: string;
|
|
6
|
-
readonly activeMemberCount: number;
|
|
7
|
-
readonly chatSchemaVersion: number;
|
|
8
|
-
readonly kind: 'direct' | 'group';
|
|
9
|
-
readonly lastSequence: number;
|
|
10
|
-
readonly membershipRevision: number;
|
|
11
|
-
readonly name?: string;
|
|
12
|
-
readonly nameContentVersion?: string;
|
|
13
|
-
readonly nameDecision?: unknown;
|
|
14
|
-
readonly state: 'active' | 'closed' | 'forming';
|
|
15
|
-
}
|
|
16
|
-
export interface ChatListInput {
|
|
17
|
-
readonly after?: string;
|
|
18
|
-
readonly limit?: number;
|
|
19
|
-
}
|
|
20
|
-
export interface DurableConversationOptions {
|
|
21
|
-
readonly audience?: 'mobile' | 'web';
|
|
22
|
-
/** All policy reads must use this query; exceptions fail the transaction. */
|
|
23
|
-
readonly authorizeIdentity: (read: ChatQuery, identity: ChatIdentity) => Promise<void>;
|
|
24
|
-
readonly classifyName: (name: string, contentVersion: string) => unknown;
|
|
25
|
-
readonly projectName: (conversation: ConversationRecord, audience: 'mobile' | 'web') => string | undefined;
|
|
26
|
-
readonly readCollections?: readonly string[];
|
|
27
|
-
/** Caller owns transaction/locks/commit when supplied; no independent database access occurs. */
|
|
28
|
-
readonly query?: ChatQuery;
|
|
29
|
-
}
|
|
30
|
-
export declare const createDurableConversationRepository: (context: ApiContext, identity: ChatIdentity, options: DurableConversationOptions) => {
|
|
31
|
-
acceptInvite: (input: AcceptInviteInput) => Promise<ConversationSummary>;
|
|
32
|
-
changeMemberRole: (input: ChangeMemberRoleInput) => Promise<ConversationSummary>;
|
|
33
|
-
createGroup: (input: CreateGroupInput) => Promise<ConversationSummary>;
|
|
34
|
-
declineInvite: (input: AcceptInviteInput) => Promise<ConversationInvite>;
|
|
35
|
-
getOrCreateDirect: (input: CreateDirectInput) => Promise<ConversationSummary>;
|
|
36
|
-
getParticipants: (input: {
|
|
37
|
-
readonly conversationId: string;
|
|
38
|
-
}) => Promise<readonly ConversationMembership[]>;
|
|
39
|
-
inviteMember: (input: InviteMemberInput) => Promise<ConversationInvite>;
|
|
40
|
-
leaveConversation: (input: LeaveConversationInput) => Promise<ConversationSummary>;
|
|
41
|
-
listConversations: (input: ChatListInput) => Promise<readonly ConversationSummary[]>;
|
|
42
|
-
listInvites: (input: ChatListInput) => Promise<readonly ConversationInvite[]>;
|
|
43
|
-
removeMember: (input: RemoveMemberInput) => Promise<ConversationSummary>;
|
|
44
|
-
transferOwnership: (input: TransferOwnershipInput) => Promise<ConversationSummary>;
|
|
45
|
-
};
|
|
46
|
-
export type ChatRepository = ReturnType<typeof createDurableConversationRepository>;
|
|
47
|
-
export declare const createDurableConversationActions: (identity: ChatIdentity, repository: ChatRepository) => {
|
|
48
|
-
acceptInvite: (input: AcceptInviteInput) => Promise<ConversationSummary>;
|
|
49
|
-
changeMemberRole: (input: ChangeMemberRoleInput) => Promise<ConversationSummary>;
|
|
50
|
-
createGroup: (input: CreateGroupInput) => Promise<ConversationSummary>;
|
|
51
|
-
declineInvite: (input: AcceptInviteInput) => Promise<ConversationInvite>;
|
|
52
|
-
getOrCreateDirect: (input: CreateDirectInput) => Promise<ConversationSummary>;
|
|
53
|
-
getParticipants: (input: {
|
|
54
|
-
readonly conversationId: string;
|
|
55
|
-
}) => Promise<readonly ConversationMembership[]>;
|
|
56
|
-
inviteMember: (input: InviteMemberInput) => Promise<ConversationInvite>;
|
|
57
|
-
leaveConversation: (input: LeaveConversationInput) => Promise<ConversationSummary>;
|
|
58
|
-
listConversations: (input?: ChatListInput) => Promise<readonly ConversationSummary[]>;
|
|
59
|
-
listInvites: (input?: ChatListInput) => Promise<readonly ConversationInvite[]>;
|
|
60
|
-
removeMember: (input: RemoveMemberInput) => Promise<ConversationSummary>;
|
|
61
|
-
transferOwnership: (input: TransferOwnershipInput) => Promise<ConversationSummary>;
|
|
62
|
-
};
|