payload 2.23.0 → 2.24.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/dist/admin/components/elements/Dropzone/index.d.ts +2 -1
- package/dist/admin/components/elements/Dropzone/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Dropzone/index.js +15 -10
- package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/admin/components/elements/EditUpload/index.js +1 -1
- package/dist/admin/components/utilities/Auth/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Auth/index.js +64 -61
- package/dist/admin/components/utilities/Auth/types.d.ts +3 -1
- package/dist/admin/components/utilities/Auth/types.d.ts.map +1 -1
- package/dist/admin/components/utilities/Locale/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Locale/index.js +31 -20
- package/dist/admin/components/utilities/UploadEdits/index.d.ts +1 -0
- package/dist/admin/components/utilities/UploadEdits/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/UploadEdits/index.js +6 -1
- package/dist/admin/components/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/admin/components/views/Unauthorized/index.js +6 -4
- package/dist/admin/components/views/collections/Edit/Upload/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +105 -27
- package/dist/admin/components/views/collections/Edit/Upload/index.scss +6 -3
- package/dist/auth/graphql/resolvers/refresh.d.ts +1 -1
- package/dist/auth/graphql/resolvers/refresh.d.ts.map +1 -1
- package/dist/auth/graphql/resolvers/refresh.js +3 -11
- package/dist/auth/operations/refresh.d.ts +0 -1
- package/dist/auth/operations/refresh.d.ts.map +1 -1
- package/dist/auth/operations/refresh.js +2 -2
- package/dist/auth/requestHandlers/refresh.d.ts.map +1 -1
- package/dist/auth/requestHandlers/refresh.js +2 -10
- package/dist/collections/graphql/init.d.ts.map +1 -1
- package/dist/collections/graphql/init.js +1 -6
- package/dist/fields/hooks/beforeValidate/promise.d.ts +2 -1
- package/dist/fields/hooks/beforeValidate/promise.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/promise.js +18 -6
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts +2 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.d.ts.map +1 -1
- package/dist/fields/hooks/beforeValidate/traverseFields.js +18 -3
- package/dist/translations/ar.json +3 -1
- package/dist/translations/az.json +3 -1
- package/dist/translations/bg.json +3 -1
- package/dist/translations/cs.json +3 -1
- package/dist/translations/de.json +3 -1
- package/dist/translations/en.json +2 -0
- package/dist/translations/es.json +3 -1
- package/dist/translations/fa.json +3 -1
- package/dist/translations/fr.json +3 -1
- package/dist/translations/hr.json +3 -1
- package/dist/translations/hu.json +3 -1
- package/dist/translations/index.d.ts +60 -0
- package/dist/translations/index.d.ts.map +1 -1
- package/dist/translations/it.json +3 -1
- package/dist/translations/ja.json +3 -1
- package/dist/translations/ko.json +3 -1
- package/dist/translations/my.json +3 -1
- package/dist/translations/nb.json +3 -1
- package/dist/translations/nl.json +3 -1
- package/dist/translations/pl.json +3 -1
- package/dist/translations/pt.json +3 -1
- package/dist/translations/ro.json +3 -1
- package/dist/translations/rs-latin.json +3 -1
- package/dist/translations/rs.json +3 -1
- package/dist/translations/ru.json +3 -1
- package/dist/translations/sv.json +3 -1
- package/dist/translations/th.json +3 -1
- package/dist/translations/tr.json +3 -1
- package/dist/translations/translation-schema.json +6 -0
- package/dist/translations/ua.json +3 -1
- package/dist/translations/vi.json +3 -1
- package/dist/translations/zh-tw.json +3 -1
- package/dist/translations/zh.json +3 -1
- package/dist/uploads/generateFileData.js +4 -4
- package/package.json +1 -1
|
@@ -459,11 +459,6 @@ function initCollectionsGraphQL(payload) {
|
|
|
459
459
|
}
|
|
460
460
|
}
|
|
461
461
|
}),
|
|
462
|
-
args: {
|
|
463
|
-
token: {
|
|
464
|
-
type: _graphql.GraphQLString
|
|
465
|
-
}
|
|
466
|
-
},
|
|
467
462
|
resolve: (0, _refresh.default)(collection)
|
|
468
463
|
};
|
|
469
464
|
payload.Mutation.fields[`logout${singularName}`] = {
|
|
@@ -559,4 +554,4 @@ function initCollectionsGraphQL(payload) {
|
|
|
559
554
|
}
|
|
560
555
|
const _default = initCollectionsGraphQL;
|
|
561
556
|
|
|
562
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9ncmFwaHFsL2luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB7XG4gIEdyYXBoUUxCb29sZWFuLFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTE9iamVjdFR5cGUsXG4gIEdyYXBoUUxTdHJpbmcsXG59IGZyb20gJ2dyYXBocWwnXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPYmplY3RUeXBlQ29uZmlnIH0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vcGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiwgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGZvcmdvdFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvZm9yZ290UGFzc3dvcmQnXG5pbXBvcnQgaW5pdCBmcm9tICcuLi8uLi9hdXRoL2dyYXBocWwvcmVzb2x2ZXJzL2luaXQnXG5pbXBvcnQgbG9naW4gZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dpbidcbmltcG9ydCBsb2dvdXQgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dvdXQnXG5pbXBvcnQgbWUgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9tZSdcbmltcG9ydCByZWZyZXNoIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVmcmVzaCdcbmltcG9ydCByZXNldFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB1bmxvY2sgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy91bmxvY2snXG5pbXBvcnQgdmVyaWZ5RW1haWwgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy92ZXJpZnlFbWFpbCdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUsIHtcbiAgZ2V0Q29sbGVjdGlvbklEVHlwZSxcbn0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRNdXRhdGlvbklucHV0VHlwZSdcbmltcG9ydCBidWlsZE9iamVjdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IGJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSdcbmltcG9ydCB7IGJ1aWxkUG9saWN5VHlwZSB9IGZyb20gJy4uLy4uL2dyYXBocWwvc2NoZW1hL2J1aWxkUG9saWNpZXNUeXBlJ1xuaW1wb3J0IGJ1aWxkV2hlcmVJbnB1dFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uLy4uL2dyYXBocWwvdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZmxhdHRlbkZpZWxkcyBmcm9tICcuLi8uLi91dGlsaXRpZXMvZmxhdHRlblRvcExldmVsRmllbGRzJ1xuaW1wb3J0IHsgZm9ybWF0TmFtZXMsIHRvV29yZHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZm9ybWF0TGFiZWxzJ1xuaW1wb3J0IHsgYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL2J1aWxkQ29sbGVjdGlvbkZpZWxkcydcbmltcG9ydCBjb3VudFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2NvdW50J1xuaW1wb3J0IGNyZWF0ZVJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2NyZWF0ZSdcbmltcG9ydCBnZXREZWxldGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9kZWxldGUnXG5pbXBvcnQgeyBkb2NBY2Nlc3NSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzL2RvY0FjY2VzcydcbmltcG9ydCBmaW5kUmVzb2x2ZXIgZnJvbSAnLi9yZXNvbHZlcnMvZmluZCdcbmltcG9ydCBmaW5kQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRCeUlEJ1xuaW1wb3J0IGZpbmRWZXJzaW9uQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRCdcbmltcG9ydCBmaW5kVmVyc2lvbnNSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9maW5kVmVyc2lvbnMnXG5pbXBvcnQgcmVzdG9yZVZlcnNpb25SZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB1cGRhdGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy91cGRhdGUnXG5cbmZ1bmN0aW9uIGluaXRDb2xsZWN0aW9uc0dyYXBoUUwocGF5bG9hZDogUGF5bG9hZCk6IHZvaWQge1xuICBPYmplY3Qua2V5cyhwYXlsb2FkLmNvbGxlY3Rpb25zKS5mb3JFYWNoKChzbHVnKSA9PiB7XG4gICAgY29uc3QgY29sbGVjdGlvbjogQ29sbGVjdGlvbiA9IHBheWxvYWQuY29sbGVjdGlvbnNbc2x1Z11cbiAgICBjb25zdCB7XG4gICAgICBjb25maWcsXG4gICAgICBjb25maWc6IHsgZmllbGRzLCBncmFwaFFMID0ge30gYXMgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1snZ3JhcGhRTCddLCB2ZXJzaW9ucyB9LFxuICAgIH0gPSBjb2xsZWN0aW9uXG5cbiAgICBpZiAoIWdyYXBoUUwpIHJldHVyblxuXG4gICAgY29uc3QgZHJhZnRzRW5hYmxlZCA9IGNvbGxlY3Rpb24uY29uZmlnLnZlcnNpb25zPy5kcmFmdHNcblxuICAgIGxldCBzaW5ndWxhck5hbWVcbiAgICBsZXQgcGx1cmFsTmFtZVxuICAgIGNvbnN0IGZyb21TbHVnID0gZm9ybWF0TmFtZXMoY29sbGVjdGlvbi5jb25maWcuc2x1ZylcbiAgICBpZiAoZ3JhcGhRTC5zaW5ndWxhck5hbWUpIHtcbiAgICAgIHNpbmd1bGFyTmFtZSA9IHRvV29yZHMoZ3JhcGhRTC5zaW5ndWxhck5hbWUsIHRydWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNpbmd1bGFyTmFtZSA9IGZyb21TbHVnLnNpbmd1bGFyXG4gICAgfVxuICAgIGlmIChncmFwaFFMLnBsdXJhbE5hbWUpIHtcbiAgICAgIHBsdXJhbE5hbWUgPSB0b1dvcmRzKGdyYXBoUUwucGx1cmFsTmFtZSwgdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcGx1cmFsTmFtZSA9IGZyb21TbHVnLnBsdXJhbFxuICAgIH1cblxuICAgIC8vIEZvciBjb2xsZWN0aW9ucyBuYW1lZCAnTWVkaWEnIG9yIHNpbWlsYXIsXG4gICAgLy8gdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBzaW5ndWxhciBuYW1lXG4gICAgLy8gd2lsbCBlcXVhbCB0aGUgcGx1cmFsIG5hbWUuIEFwcGVuZCBgYWxsYCB0byB0aGUgYmVnaW5uaW5nXG4gICAgLy8gb2YgcG90ZW50aWFsIGNvbmZsaWN0c1xuICAgIGlmIChzaW5ndWxhck5hbWUgPT09IHBsdXJhbE5hbWUpIHtcbiAgICAgIHBsdXJhbE5hbWUgPSBgYWxsJHtzaW5ndWxhck5hbWV9YFxuICAgIH1cblxuICAgIGNvbGxlY3Rpb24uZ3JhcGhRTCA9IHt9IGFzIENvbGxlY3Rpb25bJ2dyYXBoUUwnXVxuXG4gICAgY29uc3QgaGFzSURGaWVsZCA9XG4gICAgICBmbGF0dGVuRmllbGRzKGZpZWxkcykuZmluZEluZGV4KChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJykgPlxuICAgICAgLTFcblxuICAgIGNvbnN0IGlkVHlwZSA9IGdldENvbGxlY3Rpb25JRFR5cGUocGF5bG9hZCwgY29uZmlnKVxuXG4gICAgY29uc3QgYmFzZUZpZWxkczogT2JqZWN0VHlwZUNvbmZpZyA9IHt9XG5cbiAgICBjb25zdCB3aGVyZUlucHV0RmllbGRzID0gWy4uLmZpZWxkc11cblxuICAgIGlmICghaGFzSURGaWVsZCkge1xuICAgICAgYmFzZUZpZWxkcy5pZCA9IHsgdHlwZTogaWRUeXBlIH1cbiAgICAgIHdoZXJlSW5wdXRGaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlID0gQm9vbGVhbih2ZXJzaW9ucz8uZHJhZnRzKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUgPSBidWlsZE9iamVjdFR5cGUoe1xuICAgICAgbmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgYmFzZUZpZWxkcyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZvcmNlTnVsbGFibGU6IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlLFxuICAgICAgcGFyZW50TmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgcGF5bG9hZCxcbiAgICB9KVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnBhZ2luYXRlZFR5cGUgPSBidWlsZFBhZ2luYXRlZExpc3RUeXBlKHBsdXJhbE5hbWUsIGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLndoZXJlSW5wdXRUeXBlID0gYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICBuYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBmaWVsZHM6IHdoZXJlSW5wdXRGaWVsZHMsXG4gICAgICBwYXJlbnROYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBwYXlsb2FkLFxuICAgIH0pXG5cbiAgICBpZiAoY29uZmlnLmF1dGggJiYgIWNvbmZpZy5hdXRoLmRpc2FibGVMb2NhbFN0cmF0ZWd5KSB7XG4gICAgICBmaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgbGFiZWw6ICdQYXNzd29yZCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgICAgZmllbGRzLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgIClcbiAgICBpZiAoY3JlYXRlTXV0YXRpb25JbnB1dFR5cGUpIHtcbiAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC5tdXRhdGlvbklucHV0VHlwZSA9IG5ldyBHcmFwaFFMTm9uTnVsbChjcmVhdGVNdXRhdGlvbklucHV0VHlwZSlcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgYCR7c2luZ3VsYXJOYW1lfVVwZGF0ZWAsXG4gICAgICBmaWVsZHMuZmlsdGVyKChmaWVsZCkgPT4gIShmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSksXG4gICAgICBgJHtzaW5ndWxhck5hbWV9VXBkYXRlYCxcbiAgICAgIHRydWUsXG4gICAgKVxuICAgIGlmICh1cGRhdGVNdXRhdGlvbklucHV0VHlwZSkge1xuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLnVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlID0gbmV3IEdyYXBoUUxOb25OdWxsKHVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlKVxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW3Npbmd1bGFyTmFtZV0gPSB7XG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgaWQ6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKGlkVHlwZSkgfSxcbiAgICAgICAgLi4uKGRyYWZ0c0VuYWJsZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGZpbmRCeUlEUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgfVxuXG4gICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbcGx1cmFsTmFtZV0gPSB7XG4gICAgICB0eXBlOiBidWlsZFBhZ2luYXRlZExpc3RUeXBlKHBsdXJhbE5hbWUsIGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlKSxcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgLi4uKGRyYWZ0c0VuYWJsZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgd2hlcmU6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLndoZXJlSW5wdXRUeXBlIH0sXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgbGltaXQ6IHsgdHlwZTogR3JhcGhRTEludCB9LFxuICAgICAgICBwYWdlOiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgc29ydDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogZmluZFJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2Bjb3VudCR7cGx1cmFsTmFtZX1gXSA9IHtcbiAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgIG5hbWU6IGBjb3VudCR7cGx1cmFsTmFtZX1gLFxuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICB0b3RhbERvY3M6IHsgdHlwZTogR3JhcGhRTEludCB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBhcmdzOiB7XG4gICAgICAgIC4uLihkcmFmdHNFbmFibGVkXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIHdoZXJlOiB7IHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC53aGVyZUlucHV0VHlwZSB9LFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGNvdW50UmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgfVxuXG4gICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYGRvY0FjY2VzcyR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgdHlwZTogYnVpbGRQb2xpY3lUeXBlKHtcbiAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICBlbnRpdHk6IGNvbmZpZyxcbiAgICAgICAgc2NvcGU6ICdkb2NBY2Nlc3MnLFxuICAgICAgICB0eXBlU3VmZml4OiAnRG9jQWNjZXNzJyxcbiAgICAgIH0pLFxuICAgICAgYXJnczoge1xuICAgICAgICBpZDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoaWRUeXBlKSB9LFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGRvY0FjY2Vzc1Jlc29sdmVyKCksXG4gICAgfVxuXG4gICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYGNyZWF0ZSR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUsXG4gICAgICBhcmdzOiB7XG4gICAgICAgIC4uLihjcmVhdGVNdXRhdGlvbklucHV0VHlwZVxuICAgICAgICAgID8geyBkYXRhOiB7IHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC5tdXRhdGlvbklucHV0VHlwZSB9IH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKGRyYWZ0c0VuYWJsZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiBjcmVhdGVSZXNvbHZlcihjb2xsZWN0aW9uKSxcbiAgICB9XG5cbiAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgdXBkYXRlJHtzaW5ndWxhck5hbWV9YF0gPSB7XG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgaWQ6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKGlkVHlwZSkgfSxcbiAgICAgICAgYXV0b3NhdmU6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgLi4uKHVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlXG4gICAgICAgICAgPyB7IGRhdGE6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlIH0gfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICAuLi4oZHJhZnRzRW5hYmxlZFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBkcmFmdDogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IHVwZGF0ZVJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgIH1cblxuICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2BkZWxldGUke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgIHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlLFxuICAgICAgYXJnczoge1xuICAgICAgICBpZDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoaWRUeXBlKSB9LFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGdldERlbGV0ZVJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgIH1cblxuICAgIGlmIChjb25maWcudmVyc2lvbnMpIHtcbiAgICAgIGNvbnN0IHZlcnNpb25JRFR5cGUgPSBwYXlsb2FkLmRiLmRlZmF1bHRJRFR5cGUgPT09ICd0ZXh0JyA/IEdyYXBoUUxTdHJpbmcgOiBHcmFwaFFMSW50XG4gICAgICBjb25zdCB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkczogRmllbGRbXSA9IFtcbiAgICAgICAgLi4uYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb25maWcpLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBwYXlsb2FkLmRiLmRlZmF1bHRJRFR5cGUgYXMgJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICAgIGxhYmVsOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcbiAgICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgICAgbGFiZWw6ICdVcGRhdGVkIEF0JyxcbiAgICAgICAgfSxcbiAgICAgIF1cblxuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLnZlcnNpb25UeXBlID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgbmFtZTogYCR7c2luZ3VsYXJOYW1lfVZlcnNpb25gLFxuICAgICAgICBmaWVsZHM6IHZlcnNpb25Db2xsZWN0aW9uRmllbGRzLFxuICAgICAgICBmb3JjZU51bGxhYmxlOiBmb3JjZU51bGxhYmxlT2JqZWN0VHlwZSxcbiAgICAgICAgcGFyZW50TmFtZTogYCR7c2luZ3VsYXJOYW1lfVZlcnNpb25gLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSlcblxuICAgICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYHZlcnNpb24ke2Zvcm1hdE5hbWUoc2luZ3VsYXJOYW1lKX1gXSA9IHtcbiAgICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnZlcnNpb25UeXBlLFxuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogdmVyc2lvbklEVHlwZSB9LFxuICAgICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IGZpbmRWZXJzaW9uQnlJRFJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuICAgICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYHZlcnNpb25zJHtwbHVyYWxOYW1lfWBdID0ge1xuICAgICAgICB0eXBlOiBidWlsZFBhZ2luYXRlZExpc3RUeXBlKFxuICAgICAgICAgIGB2ZXJzaW9ucyR7Zm9ybWF0TmFtZShwbHVyYWxOYW1lKX1gLFxuICAgICAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSxcbiAgICAgICAgKSxcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICB0eXBlOiBidWlsZFdoZXJlSW5wdXRUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgZmllbGRzOiB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyxcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICBsaW1pdDogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgcGFnZTogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgc29ydDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IGZpbmRWZXJzaW9uc1Jlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlc3RvcmVWZXJzaW9uJHtmb3JtYXROYW1lKHNpbmd1bGFyTmFtZSl9YF0gPSB7XG4gICAgICAgIHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlLFxuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogdmVyc2lvbklEVHlwZSB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiByZXN0b3JlVmVyc2lvblJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb25maWcuYXV0aCkge1xuICAgICAgY29uc3QgYXV0aEZpZWxkczogRmllbGRbXSA9IGNvbmZpZy5hdXRoLmRpc2FibGVMb2NhbFN0cmF0ZWd5XG4gICAgICAgID8gW11cbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdlbWFpbCcsXG4gICAgICAgICAgICAgIHR5cGU6ICdlbWFpbCcsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICBjb2xsZWN0aW9uLmdyYXBoUUwuSldUID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgbmFtZTogZm9ybWF0TmFtZShgJHtzbHVnfUpXVGApLFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAuLi5jb25maWcuZmllbGRzLmZpbHRlcigoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLnNhdmVUb0pXVCksXG4gICAgICAgICAgLi4uYXV0aEZpZWxkcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnY29sbGVjdGlvbicsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBwYXJlbnROYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9SldUYCksXG4gICAgICAgIHBheWxvYWQsXG4gICAgICB9KVxuXG4gICAgICBwYXlsb2FkLlF1ZXJ5LmZpZWxkc1tgbWUke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9TWVgKSxcbiAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb246IHtcbiAgICAgICAgICAgICAgdHlwZTogR3JhcGhRTFN0cmluZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJhdGVneToge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRva2VuOiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHJlc29sdmU6IG1lKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuXG4gICAgICBwYXlsb2FkLlF1ZXJ5LmZpZWxkc1tgaW5pdGlhbGl6ZWQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgdHlwZTogR3JhcGhRTEJvb2xlYW4sXG4gICAgICAgIHJlc29sdmU6IGluaXQoY29sbGVjdGlvbi5jb25maWcuc2x1ZyksXG4gICAgICB9XG5cbiAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2ByZWZyZXNoVG9rZW4ke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9UmVmcmVzaGVkJHtzaW5ndWxhck5hbWV9YCksXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoZWRUb2tlbjoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0cmF0ZWd5OiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwuSldULFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIHRva2VuOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVzb2x2ZTogcmVmcmVzaChjb2xsZWN0aW9uKSxcbiAgICAgIH1cblxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYGxvZ291dCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICByZXNvbHZlOiBsb2dvdXQoY29sbGVjdGlvbiksXG4gICAgICB9XG5cbiAgICAgIGlmICghY29uZmlnLmF1dGguZGlzYWJsZUxvY2FsU3RyYXRlZ3kpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5hdXRoLm1heExvZ2luQXR0ZW1wdHMgPiAwKSB7XG4gICAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHVubG9jayR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxCb29sZWFuKSxcbiAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgZW1haWw6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZTogdW5sb2NrKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2Bsb2dpbiR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9TG9naW5SZXN1bHRgKSxcbiAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgZW1haWw6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb2x2ZTogbG9naW4oY29sbGVjdGlvbiksXG4gICAgICAgIH1cblxuICAgICAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgZm9yZ290UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTEJvb2xlYW4pLFxuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIGRpc2FibGVFbWFpbDogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAgICAgZW1haWw6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpIH0sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IGZvcmdvdFBhc3N3b3JkKGNvbGxlY3Rpb24pLFxuICAgICAgICB9XG5cbiAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlc2V0UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgICAgbmFtZTogZm9ybWF0TmFtZShgJHtzbHVnfVJlc2V0UGFzc3dvcmRgKSxcbiAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICB0b2tlbjogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgICAgICAgIHVzZXI6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgICAgdG9rZW46IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb2x2ZTogcmVzZXRQYXNzd29yZChjb2xsZWN0aW9uKSxcbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2B2ZXJpZnlFbWFpbCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIHR5cGU6IEdyYXBoUUxCb29sZWFuLFxuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIHRva2VuOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IHZlcmlmeUVtYWlsKGNvbGxlY3Rpb24pLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0Q29sbGVjdGlvbnNHcmFwaFFMXG4iXSwibmFtZXMiOlsiaW5pdENvbGxlY3Rpb25zR3JhcGhRTCIsInBheWxvYWQiLCJPYmplY3QiLCJrZXlzIiwiY29sbGVjdGlvbnMiLCJmb3JFYWNoIiwic2x1ZyIsImNvbGxlY3Rpb24iLCJjb25maWciLCJmaWVsZHMiLCJncmFwaFFMIiwidmVyc2lvbnMiLCJkcmFmdHNFbmFibGVkIiwiZHJhZnRzIiwic2luZ3VsYXJOYW1lIiwicGx1cmFsTmFtZSIsImZyb21TbHVnIiwiZm9ybWF0TmFtZXMiLCJ0b1dvcmRzIiwic2luZ3VsYXIiLCJwbHVyYWwiLCJoYXNJREZpZWxkIiwiZmxhdHRlbkZpZWxkcyIsImZpbmRJbmRleCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJpZFR5cGUiLCJnZXRDb2xsZWN0aW9uSURUeXBlIiwiYmFzZUZpZWxkcyIsIndoZXJlSW5wdXRGaWVsZHMiLCJpZCIsInR5cGUiLCJwdXNoIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiZm9yY2VOdWxsYWJsZU9iamVjdFR5cGUiLCJCb29sZWFuIiwiYnVpbGRPYmplY3RUeXBlIiwiZm9yY2VOdWxsYWJsZSIsInBhcmVudE5hbWUiLCJwYWdpbmF0ZWRUeXBlIiwiYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSIsIndoZXJlSW5wdXRUeXBlIiwiYnVpbGRXaGVyZUlucHV0VHlwZSIsImF1dGgiLCJkaXNhYmxlTG9jYWxTdHJhdGVneSIsImxhYmVsIiwicmVxdWlyZWQiLCJjcmVhdGVNdXRhdGlvbklucHV0VHlwZSIsImJ1aWxkTXV0YXRpb25JbnB1dFR5cGUiLCJtdXRhdGlvbklucHV0VHlwZSIsIkdyYXBoUUxOb25OdWxsIiwidXBkYXRlTXV0YXRpb25JbnB1dFR5cGUiLCJmaWx0ZXIiLCJRdWVyeSIsImFyZ3MiLCJkcmFmdCIsIkdyYXBoUUxCb29sZWFuIiwibG9jYWxpemF0aW9uIiwiZmFsbGJhY2tMb2NhbGUiLCJ0eXBlcyIsImZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwibG9jYWxlIiwibG9jYWxlSW5wdXRUeXBlIiwicmVzb2x2ZSIsImZpbmRCeUlEUmVzb2x2ZXIiLCJ3aGVyZSIsImxpbWl0IiwiR3JhcGhRTEludCIsInBhZ2UiLCJzb3J0IiwiR3JhcGhRTFN0cmluZyIsImZpbmRSZXNvbHZlciIsIkdyYXBoUUxPYmplY3RUeXBlIiwidG90YWxEb2NzIiwiY291bnRSZXNvbHZlciIsImJ1aWxkUG9saWN5VHlwZSIsImVudGl0eSIsInNjb3BlIiwidHlwZVN1ZmZpeCIsImRvY0FjY2Vzc1Jlc29sdmVyIiwiTXV0YXRpb24iLCJkYXRhIiwiY3JlYXRlUmVzb2x2ZXIiLCJhdXRvc2F2ZSIsInVwZGF0ZVJlc29sdmVyIiwiZ2V0RGVsZXRlUmVzb2x2ZXIiLCJ2ZXJzaW9uSURUeXBlIiwidmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIiwidmVyc2lvblR5cGUiLCJmb3JtYXROYW1lIiwiZmluZFZlcnNpb25CeUlEUmVzb2x2ZXIiLCJmaW5kVmVyc2lvbnNSZXNvbHZlciIsInJlc3RvcmVWZXJzaW9uUmVzb2x2ZXIiLCJhdXRoRmllbGRzIiwiSldUIiwic2F2ZVRvSldUIiwiZXhwIiwic3RyYXRlZ3kiLCJ0b2tlbiIsInVzZXIiLCJtZSIsImluaXQiLCJyZWZyZXNoZWRUb2tlbiIsInJlZnJlc2giLCJsb2dvdXQiLCJtYXhMb2dpbkF0dGVtcHRzIiwiZW1haWwiLCJ1bmxvY2siLCJwYXNzd29yZCIsImxvZ2luIiwiZGlzYWJsZUVtYWlsIiwiZXhwaXJhdGlvbiIsImZvcmdvdFBhc3N3b3JkIiwicmVzZXRQYXNzd29yZCIsInZlcmlmeUVtYWlsIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
557
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb2xsZWN0aW9ucy9ncmFwaHFsL2luaXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcGFyYW0tcmVhc3NpZ24gKi9cbmltcG9ydCB7XG4gIEdyYXBoUUxCb29sZWFuLFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTm9uTnVsbCxcbiAgR3JhcGhRTE9iamVjdFR5cGUsXG4gIEdyYXBoUUxTdHJpbmcsXG59IGZyb20gJ2dyYXBocWwnXG5cbmltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBPYmplY3RUeXBlQ29uZmlnIH0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkIH0gZnJvbSAnLi4vLi4vcGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbiwgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbmZpZy90eXBlcydcblxuaW1wb3J0IGZvcmdvdFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvZm9yZ290UGFzc3dvcmQnXG5pbXBvcnQgaW5pdCBmcm9tICcuLi8uLi9hdXRoL2dyYXBocWwvcmVzb2x2ZXJzL2luaXQnXG5pbXBvcnQgbG9naW4gZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dpbidcbmltcG9ydCBsb2dvdXQgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9sb2dvdXQnXG5pbXBvcnQgbWUgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy9tZSdcbmltcG9ydCByZWZyZXNoIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVmcmVzaCdcbmltcG9ydCByZXNldFBhc3N3b3JkIGZyb20gJy4uLy4uL2F1dGgvZ3JhcGhxbC9yZXNvbHZlcnMvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB1bmxvY2sgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy91bmxvY2snXG5pbXBvcnQgdmVyaWZ5RW1haWwgZnJvbSAnLi4vLi4vYXV0aC9ncmFwaHFsL3Jlc29sdmVycy92ZXJpZnlFbWFpbCdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuLi8uLi9maWVsZHMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUsIHtcbiAgZ2V0Q29sbGVjdGlvbklEVHlwZSxcbn0gZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRNdXRhdGlvbklucHV0VHlwZSdcbmltcG9ydCBidWlsZE9iamVjdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRPYmplY3RUeXBlJ1xuaW1wb3J0IGJ1aWxkUGFnaW5hdGVkTGlzdFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSdcbmltcG9ydCB7IGJ1aWxkUG9saWN5VHlwZSB9IGZyb20gJy4uLy4uL2dyYXBocWwvc2NoZW1hL2J1aWxkUG9saWNpZXNUeXBlJ1xuaW1wb3J0IGJ1aWxkV2hlcmVJbnB1dFR5cGUgZnJvbSAnLi4vLi4vZ3JhcGhxbC9zY2hlbWEvYnVpbGRXaGVyZUlucHV0VHlwZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uLy4uL2dyYXBocWwvdXRpbGl0aWVzL2Zvcm1hdE5hbWUnXG5pbXBvcnQgZmxhdHRlbkZpZWxkcyBmcm9tICcuLi8uLi91dGlsaXRpZXMvZmxhdHRlblRvcExldmVsRmllbGRzJ1xuaW1wb3J0IHsgZm9ybWF0TmFtZXMsIHRvV29yZHMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZm9ybWF0TGFiZWxzJ1xuaW1wb3J0IHsgYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyB9IGZyb20gJy4uLy4uL3ZlcnNpb25zL2J1aWxkQ29sbGVjdGlvbkZpZWxkcydcbmltcG9ydCBjb3VudFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2NvdW50J1xuaW1wb3J0IGNyZWF0ZVJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2NyZWF0ZSdcbmltcG9ydCBnZXREZWxldGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9kZWxldGUnXG5pbXBvcnQgeyBkb2NBY2Nlc3NSZXNvbHZlciB9IGZyb20gJy4vcmVzb2x2ZXJzL2RvY0FjY2VzcydcbmltcG9ydCBmaW5kUmVzb2x2ZXIgZnJvbSAnLi9yZXNvbHZlcnMvZmluZCdcbmltcG9ydCBmaW5kQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRCeUlEJ1xuaW1wb3J0IGZpbmRWZXJzaW9uQnlJRFJlc29sdmVyIGZyb20gJy4vcmVzb2x2ZXJzL2ZpbmRWZXJzaW9uQnlJRCdcbmltcG9ydCBmaW5kVmVyc2lvbnNSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9maW5kVmVyc2lvbnMnXG5pbXBvcnQgcmVzdG9yZVZlcnNpb25SZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy9yZXN0b3JlVmVyc2lvbidcbmltcG9ydCB1cGRhdGVSZXNvbHZlciBmcm9tICcuL3Jlc29sdmVycy91cGRhdGUnXG5cbmZ1bmN0aW9uIGluaXRDb2xsZWN0aW9uc0dyYXBoUUwocGF5bG9hZDogUGF5bG9hZCk6IHZvaWQge1xuICBPYmplY3Qua2V5cyhwYXlsb2FkLmNvbGxlY3Rpb25zKS5mb3JFYWNoKChzbHVnKSA9PiB7XG4gICAgY29uc3QgY29sbGVjdGlvbjogQ29sbGVjdGlvbiA9IHBheWxvYWQuY29sbGVjdGlvbnNbc2x1Z11cbiAgICBjb25zdCB7XG4gICAgICBjb25maWcsXG4gICAgICBjb25maWc6IHsgZmllbGRzLCBncmFwaFFMID0ge30gYXMgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1snZ3JhcGhRTCddLCB2ZXJzaW9ucyB9LFxuICAgIH0gPSBjb2xsZWN0aW9uXG5cbiAgICBpZiAoIWdyYXBoUUwpIHJldHVyblxuXG4gICAgY29uc3QgZHJhZnRzRW5hYmxlZCA9IGNvbGxlY3Rpb24uY29uZmlnLnZlcnNpb25zPy5kcmFmdHNcblxuICAgIGxldCBzaW5ndWxhck5hbWVcbiAgICBsZXQgcGx1cmFsTmFtZVxuICAgIGNvbnN0IGZyb21TbHVnID0gZm9ybWF0TmFtZXMoY29sbGVjdGlvbi5jb25maWcuc2x1ZylcbiAgICBpZiAoZ3JhcGhRTC5zaW5ndWxhck5hbWUpIHtcbiAgICAgIHNpbmd1bGFyTmFtZSA9IHRvV29yZHMoZ3JhcGhRTC5zaW5ndWxhck5hbWUsIHRydWUpXG4gICAgfSBlbHNlIHtcbiAgICAgIHNpbmd1bGFyTmFtZSA9IGZyb21TbHVnLnNpbmd1bGFyXG4gICAgfVxuICAgIGlmIChncmFwaFFMLnBsdXJhbE5hbWUpIHtcbiAgICAgIHBsdXJhbE5hbWUgPSB0b1dvcmRzKGdyYXBoUUwucGx1cmFsTmFtZSwgdHJ1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcGx1cmFsTmFtZSA9IGZyb21TbHVnLnBsdXJhbFxuICAgIH1cblxuICAgIC8vIEZvciBjb2xsZWN0aW9ucyBuYW1lZCAnTWVkaWEnIG9yIHNpbWlsYXIsXG4gICAgLy8gdGhlcmUgaXMgYSBwb3NzaWJpbGl0eSB0aGF0IHRoZSBzaW5ndWxhciBuYW1lXG4gICAgLy8gd2lsbCBlcXVhbCB0aGUgcGx1cmFsIG5hbWUuIEFwcGVuZCBgYWxsYCB0byB0aGUgYmVnaW5uaW5nXG4gICAgLy8gb2YgcG90ZW50aWFsIGNvbmZsaWN0c1xuICAgIGlmIChzaW5ndWxhck5hbWUgPT09IHBsdXJhbE5hbWUpIHtcbiAgICAgIHBsdXJhbE5hbWUgPSBgYWxsJHtzaW5ndWxhck5hbWV9YFxuICAgIH1cblxuICAgIGNvbGxlY3Rpb24uZ3JhcGhRTCA9IHt9IGFzIENvbGxlY3Rpb25bJ2dyYXBoUUwnXVxuXG4gICAgY29uc3QgaGFzSURGaWVsZCA9XG4gICAgICBmbGF0dGVuRmllbGRzKGZpZWxkcykuZmluZEluZGV4KChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJykgPlxuICAgICAgLTFcblxuICAgIGNvbnN0IGlkVHlwZSA9IGdldENvbGxlY3Rpb25JRFR5cGUocGF5bG9hZCwgY29uZmlnKVxuXG4gICAgY29uc3QgYmFzZUZpZWxkczogT2JqZWN0VHlwZUNvbmZpZyA9IHt9XG5cbiAgICBjb25zdCB3aGVyZUlucHV0RmllbGRzID0gWy4uLmZpZWxkc11cblxuICAgIGlmICghaGFzSURGaWVsZCkge1xuICAgICAgYmFzZUZpZWxkcy5pZCA9IHsgdHlwZTogaWRUeXBlIH1cbiAgICAgIHdoZXJlSW5wdXRGaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdpZCcsXG4gICAgICAgIHR5cGU6IHBheWxvYWQuZGIuZGVmYXVsdElEVHlwZSBhcyAndGV4dCcsXG4gICAgICB9KVxuICAgIH1cblxuICAgIGNvbnN0IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlID0gQm9vbGVhbih2ZXJzaW9ucz8uZHJhZnRzKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUgPSBidWlsZE9iamVjdFR5cGUoe1xuICAgICAgbmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgYmFzZUZpZWxkcyxcbiAgICAgIGZpZWxkcyxcbiAgICAgIGZvcmNlTnVsbGFibGU6IGZvcmNlTnVsbGFibGVPYmplY3RUeXBlLFxuICAgICAgcGFyZW50TmFtZTogc2luZ3VsYXJOYW1lLFxuICAgICAgcGF5bG9hZCxcbiAgICB9KVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLnBhZ2luYXRlZFR5cGUgPSBidWlsZFBhZ2luYXRlZExpc3RUeXBlKHBsdXJhbE5hbWUsIGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlKVxuXG4gICAgY29sbGVjdGlvbi5ncmFwaFFMLndoZXJlSW5wdXRUeXBlID0gYnVpbGRXaGVyZUlucHV0VHlwZSh7XG4gICAgICBuYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBmaWVsZHM6IHdoZXJlSW5wdXRGaWVsZHMsXG4gICAgICBwYXJlbnROYW1lOiBzaW5ndWxhck5hbWUsXG4gICAgICBwYXlsb2FkLFxuICAgIH0pXG5cbiAgICBpZiAoY29uZmlnLmF1dGggJiYgIWNvbmZpZy5hdXRoLmRpc2FibGVMb2NhbFN0cmF0ZWd5KSB7XG4gICAgICBmaWVsZHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgbGFiZWw6ICdQYXNzd29yZCcsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBjb25zdCBjcmVhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgICAgZmllbGRzLFxuICAgICAgc2luZ3VsYXJOYW1lLFxuICAgIClcbiAgICBpZiAoY3JlYXRlTXV0YXRpb25JbnB1dFR5cGUpIHtcbiAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC5tdXRhdGlvbklucHV0VHlwZSA9IG5ldyBHcmFwaFFMTm9uTnVsbChjcmVhdGVNdXRhdGlvbklucHV0VHlwZSlcbiAgICB9XG5cbiAgICBjb25zdCB1cGRhdGVNdXRhdGlvbklucHV0VHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoXG4gICAgICBwYXlsb2FkLFxuICAgICAgYCR7c2luZ3VsYXJOYW1lfVVwZGF0ZWAsXG4gICAgICBmaWVsZHMuZmlsdGVyKChmaWVsZCkgPT4gIShmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKSksXG4gICAgICBgJHtzaW5ndWxhck5hbWV9VXBkYXRlYCxcbiAgICAgIHRydWUsXG4gICAgKVxuICAgIGlmICh1cGRhdGVNdXRhdGlvbklucHV0VHlwZSkge1xuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLnVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlID0gbmV3IEdyYXBoUUxOb25OdWxsKHVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlKVxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW3Npbmd1bGFyTmFtZV0gPSB7XG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgaWQ6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKGlkVHlwZSkgfSxcbiAgICAgICAgLi4uKGRyYWZ0c0VuYWJsZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBmYWxsYmFja0xvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIH0sXG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGZpbmRCeUlEUmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgfVxuXG4gICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbcGx1cmFsTmFtZV0gPSB7XG4gICAgICB0eXBlOiBidWlsZFBhZ2luYXRlZExpc3RUeXBlKHBsdXJhbE5hbWUsIGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlKSxcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgLi4uKGRyYWZ0c0VuYWJsZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgd2hlcmU6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLndoZXJlSW5wdXRUeXBlIH0sXG4gICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgbGltaXQ6IHsgdHlwZTogR3JhcGhRTEludCB9LFxuICAgICAgICBwYWdlOiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgc29ydDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICB9LFxuICAgICAgcmVzb2x2ZTogZmluZFJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgIH1cblxuICAgIHBheWxvYWQuUXVlcnkuZmllbGRzW2Bjb3VudCR7cGx1cmFsTmFtZX1gXSA9IHtcbiAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgIG5hbWU6IGBjb3VudCR7cGx1cmFsTmFtZX1gLFxuICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICB0b3RhbERvY3M6IHsgdHlwZTogR3JhcGhRTEludCB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBhcmdzOiB7XG4gICAgICAgIC4uLihkcmFmdHNFbmFibGVkXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGRyYWZ0OiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fSksXG4gICAgICAgIHdoZXJlOiB7IHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC53aGVyZUlucHV0VHlwZSB9LFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGNvdW50UmVzb2x2ZXIoY29sbGVjdGlvbiksXG4gICAgfVxuXG4gICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYGRvY0FjY2VzcyR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgdHlwZTogYnVpbGRQb2xpY3lUeXBlKHtcbiAgICAgICAgdHlwZTogJ2NvbGxlY3Rpb24nLFxuICAgICAgICBlbnRpdHk6IGNvbmZpZyxcbiAgICAgICAgc2NvcGU6ICdkb2NBY2Nlc3MnLFxuICAgICAgICB0eXBlU3VmZml4OiAnRG9jQWNjZXNzJyxcbiAgICAgIH0pLFxuICAgICAgYXJnczoge1xuICAgICAgICBpZDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoaWRUeXBlKSB9LFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGRvY0FjY2Vzc1Jlc29sdmVyKCksXG4gICAgfVxuXG4gICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYGNyZWF0ZSR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUsXG4gICAgICBhcmdzOiB7XG4gICAgICAgIC4uLihjcmVhdGVNdXRhdGlvbklucHV0VHlwZVxuICAgICAgICAgID8geyBkYXRhOiB7IHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC5tdXRhdGlvbklucHV0VHlwZSB9IH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKGRyYWZ0c0VuYWJsZWRcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgZHJhZnQ6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHt9KSxcbiAgICAgIH0sXG4gICAgICByZXNvbHZlOiBjcmVhdGVSZXNvbHZlcihjb2xsZWN0aW9uKSxcbiAgICB9XG5cbiAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgdXBkYXRlJHtzaW5ndWxhck5hbWV9YF0gPSB7XG4gICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgIGFyZ3M6IHtcbiAgICAgICAgaWQ6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKGlkVHlwZSkgfSxcbiAgICAgICAgYXV0b3NhdmU6IHsgdHlwZTogR3JhcGhRTEJvb2xlYW4gfSxcbiAgICAgICAgLi4uKHVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlXG4gICAgICAgICAgPyB7IGRhdGE6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnVwZGF0ZU11dGF0aW9uSW5wdXRUeXBlIH0gfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICAuLi4oZHJhZnRzRW5hYmxlZFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBkcmFmdDogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgICAuLi4ocGF5bG9hZC5jb25maWcubG9jYWxpemF0aW9uXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDoge30pLFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IHVwZGF0ZVJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgIH1cblxuICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2BkZWxldGUke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgIHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlLFxuICAgICAgYXJnczoge1xuICAgICAgICBpZDogeyB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoaWRUeXBlKSB9LFxuICAgICAgfSxcbiAgICAgIHJlc29sdmU6IGdldERlbGV0ZVJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgIH1cblxuICAgIGlmIChjb25maWcudmVyc2lvbnMpIHtcbiAgICAgIGNvbnN0IHZlcnNpb25JRFR5cGUgPSBwYXlsb2FkLmRiLmRlZmF1bHRJRFR5cGUgPT09ICd0ZXh0JyA/IEdyYXBoUUxTdHJpbmcgOiBHcmFwaFFMSW50XG4gICAgICBjb25zdCB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkczogRmllbGRbXSA9IFtcbiAgICAgICAgLi4uYnVpbGRWZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyhjb25maWcpLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2lkJyxcbiAgICAgICAgICB0eXBlOiBwYXlsb2FkLmRiLmRlZmF1bHRJRFR5cGUgYXMgJ3RleHQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgICAgIGxhYmVsOiAnQ3JlYXRlZCBBdCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAndXBkYXRlZEF0JyxcbiAgICAgICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICAgICAgbGFiZWw6ICdVcGRhdGVkIEF0JyxcbiAgICAgICAgfSxcbiAgICAgIF1cblxuICAgICAgY29sbGVjdGlvbi5ncmFwaFFMLnZlcnNpb25UeXBlID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgbmFtZTogYCR7c2luZ3VsYXJOYW1lfVZlcnNpb25gLFxuICAgICAgICBmaWVsZHM6IHZlcnNpb25Db2xsZWN0aW9uRmllbGRzLFxuICAgICAgICBmb3JjZU51bGxhYmxlOiBmb3JjZU51bGxhYmxlT2JqZWN0VHlwZSxcbiAgICAgICAgcGFyZW50TmFtZTogYCR7c2luZ3VsYXJOYW1lfVZlcnNpb25gLFxuICAgICAgICBwYXlsb2FkLFxuICAgICAgfSlcblxuICAgICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYHZlcnNpb24ke2Zvcm1hdE5hbWUoc2luZ3VsYXJOYW1lKX1gXSA9IHtcbiAgICAgICAgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnZlcnNpb25UeXBlLFxuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogdmVyc2lvbklEVHlwZSB9LFxuICAgICAgICAgIC4uLihwYXlsb2FkLmNvbmZpZy5sb2NhbGl6YXRpb25cbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIGZhbGxiYWNrTG9jYWxlOiB7IHR5cGU6IHBheWxvYWQudHlwZXMuZmFsbGJhY2tMb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgICAgICBsb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5sb2NhbGVJbnB1dFR5cGUgfSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgOiB7fSksXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IGZpbmRWZXJzaW9uQnlJRFJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuICAgICAgcGF5bG9hZC5RdWVyeS5maWVsZHNbYHZlcnNpb25zJHtwbHVyYWxOYW1lfWBdID0ge1xuICAgICAgICB0eXBlOiBidWlsZFBhZ2luYXRlZExpc3RUeXBlKFxuICAgICAgICAgIGB2ZXJzaW9ucyR7Zm9ybWF0TmFtZShwbHVyYWxOYW1lKX1gLFxuICAgICAgICAgIGNvbGxlY3Rpb24uZ3JhcGhRTC52ZXJzaW9uVHlwZSxcbiAgICAgICAgKSxcbiAgICAgICAgYXJnczoge1xuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICB0eXBlOiBidWlsZFdoZXJlSW5wdXRUeXBlKHtcbiAgICAgICAgICAgICAgbmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgZmllbGRzOiB2ZXJzaW9uQ29sbGVjdGlvbkZpZWxkcyxcbiAgICAgICAgICAgICAgcGFyZW50TmFtZTogYHZlcnNpb25zJHtzaW5ndWxhck5hbWV9YCxcbiAgICAgICAgICAgICAgcGF5bG9hZCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgLi4uKHBheWxvYWQuY29uZmlnLmxvY2FsaXphdGlvblxuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tMb2NhbGU6IHsgdHlwZTogcGF5bG9hZC50eXBlcy5mYWxsYmFja0xvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICAgIGxvY2FsZTogeyB0eXBlOiBwYXlsb2FkLnR5cGVzLmxvY2FsZUlucHV0VHlwZSB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICBsaW1pdDogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgcGFnZTogeyB0eXBlOiBHcmFwaFFMSW50IH0sXG4gICAgICAgICAgc29ydDogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmU6IGZpbmRWZXJzaW9uc1Jlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlc3RvcmVWZXJzaW9uJHtmb3JtYXROYW1lKHNpbmd1bGFyTmFtZSl9YF0gPSB7XG4gICAgICAgIHR5cGU6IGNvbGxlY3Rpb24uZ3JhcGhRTC50eXBlLFxuICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgaWQ6IHsgdHlwZTogdmVyc2lvbklEVHlwZSB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNvbHZlOiByZXN0b3JlVmVyc2lvblJlc29sdmVyKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChjb25maWcuYXV0aCkge1xuICAgICAgY29uc3QgYXV0aEZpZWxkczogRmllbGRbXSA9IGNvbmZpZy5hdXRoLmRpc2FibGVMb2NhbFN0cmF0ZWd5XG4gICAgICAgID8gW11cbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdlbWFpbCcsXG4gICAgICAgICAgICAgIHR5cGU6ICdlbWFpbCcsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICBjb2xsZWN0aW9uLmdyYXBoUUwuSldUID0gYnVpbGRPYmplY3RUeXBlKHtcbiAgICAgICAgbmFtZTogZm9ybWF0TmFtZShgJHtzbHVnfUpXVGApLFxuICAgICAgICBmaWVsZHM6IFtcbiAgICAgICAgICAuLi5jb25maWcuZmllbGRzLmZpbHRlcigoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLnNhdmVUb0pXVCksXG4gICAgICAgICAgLi4uYXV0aEZpZWxkcyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnY29sbGVjdGlvbicsXG4gICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgICBwYXJlbnROYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9SldUYCksXG4gICAgICAgIHBheWxvYWQsXG4gICAgICB9KVxuXG4gICAgICBwYXlsb2FkLlF1ZXJ5LmZpZWxkc1tgbWUke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9TWVgKSxcbiAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb246IHtcbiAgICAgICAgICAgICAgdHlwZTogR3JhcGhRTFN0cmluZyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzdHJhdGVneToge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRva2VuOiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICAgIHJlc29sdmU6IG1lKGNvbGxlY3Rpb24pLFxuICAgICAgfVxuXG4gICAgICBwYXlsb2FkLlF1ZXJ5LmZpZWxkc1tgaW5pdGlhbGl6ZWQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgdHlwZTogR3JhcGhRTEJvb2xlYW4sXG4gICAgICAgIHJlc29sdmU6IGluaXQoY29sbGVjdGlvbi5jb25maWcuc2x1ZyksXG4gICAgICB9XG5cbiAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2ByZWZyZXNoVG9rZW4ke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9UmVmcmVzaGVkJHtzaW5ndWxhck5hbWV9YCksXG4gICAgICAgICAgZmllbGRzOiB7XG4gICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgdHlwZTogR3JhcGhRTEludCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZWZyZXNoZWRUb2tlbjoge1xuICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0cmF0ZWd5OiB7XG4gICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwuSldULFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICAgcmVzb2x2ZTogcmVmcmVzaChjb2xsZWN0aW9uKSxcbiAgICAgIH1cblxuICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYGxvZ291dCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICB0eXBlOiBHcmFwaFFMU3RyaW5nLFxuICAgICAgICByZXNvbHZlOiBsb2dvdXQoY29sbGVjdGlvbiksXG4gICAgICB9XG5cbiAgICAgIGlmICghY29uZmlnLmF1dGguZGlzYWJsZUxvY2FsU3RyYXRlZ3kpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5hdXRoLm1heExvZ2luQXR0ZW1wdHMgPiAwKSB7XG4gICAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHVubG9jayR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxCb29sZWFuKSxcbiAgICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgICAgZW1haWw6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzb2x2ZTogdW5sb2NrKGNvbGxlY3Rpb24pLFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2Bsb2dpbiR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIHR5cGU6IG5ldyBHcmFwaFFMT2JqZWN0VHlwZSh7XG4gICAgICAgICAgICBuYW1lOiBmb3JtYXROYW1lKGAke3NsdWd9TG9naW5SZXN1bHRgKSxcbiAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICBleHA6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBHcmFwaFFMSW50LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0b2tlbjoge1xuICAgICAgICAgICAgICAgIHR5cGU6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uLmdyYXBoUUwudHlwZSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgZW1haWw6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb2x2ZTogbG9naW4oY29sbGVjdGlvbiksXG4gICAgICAgIH1cblxuICAgICAgICBwYXlsb2FkLk11dGF0aW9uLmZpZWxkc1tgZm9yZ290UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE5vbk51bGwoR3JhcGhRTEJvb2xlYW4pLFxuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIGRpc2FibGVFbWFpbDogeyB0eXBlOiBHcmFwaFFMQm9vbGVhbiB9LFxuICAgICAgICAgICAgZW1haWw6IHsgdHlwZTogbmV3IEdyYXBoUUxOb25OdWxsKEdyYXBoUUxTdHJpbmcpIH0sXG4gICAgICAgICAgICBleHBpcmF0aW9uOiB7IHR5cGU6IEdyYXBoUUxJbnQgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IGZvcmdvdFBhc3N3b3JkKGNvbGxlY3Rpb24pLFxuICAgICAgICB9XG5cbiAgICAgICAgcGF5bG9hZC5NdXRhdGlvbi5maWVsZHNbYHJlc2V0UGFzc3dvcmQke3Npbmd1bGFyTmFtZX1gXSA9IHtcbiAgICAgICAgICB0eXBlOiBuZXcgR3JhcGhRTE9iamVjdFR5cGUoe1xuICAgICAgICAgICAgbmFtZTogZm9ybWF0TmFtZShgJHtzbHVnfVJlc2V0UGFzc3dvcmRgKSxcbiAgICAgICAgICAgIGZpZWxkczoge1xuICAgICAgICAgICAgICB0b2tlbjogeyB0eXBlOiBHcmFwaFFMU3RyaW5nIH0sXG4gICAgICAgICAgICAgIHVzZXI6IHsgdHlwZTogY29sbGVjdGlvbi5ncmFwaFFMLnR5cGUgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgYXJnczoge1xuICAgICAgICAgICAgcGFzc3dvcmQ6IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgICAgdG9rZW46IHsgdHlwZTogR3JhcGhRTFN0cmluZyB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzb2x2ZTogcmVzZXRQYXNzd29yZChjb2xsZWN0aW9uKSxcbiAgICAgICAgfVxuXG4gICAgICAgIHBheWxvYWQuTXV0YXRpb24uZmllbGRzW2B2ZXJpZnlFbWFpbCR7c2luZ3VsYXJOYW1lfWBdID0ge1xuICAgICAgICAgIHR5cGU6IEdyYXBoUUxCb29sZWFuLFxuICAgICAgICAgIGFyZ3M6IHtcbiAgICAgICAgICAgIHRva2VuOiB7IHR5cGU6IEdyYXBoUUxTdHJpbmcgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc29sdmU6IHZlcmlmeUVtYWlsKGNvbGxlY3Rpb24pLFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KVxufVxuXG5leHBvcnQgZGVmYXVsdCBpbml0Q29sbGVjdGlvbnNHcmFwaFFMXG4iXSwibmFtZXMiOlsiaW5pdENvbGxlY3Rpb25zR3JhcGhRTCIsInBheWxvYWQiLCJPYmplY3QiLCJrZXlzIiwiY29sbGVjdGlvbnMiLCJmb3JFYWNoIiwic2x1ZyIsImNvbGxlY3Rpb24iLCJjb25maWciLCJmaWVsZHMiLCJncmFwaFFMIiwidmVyc2lvbnMiLCJkcmFmdHNFbmFibGVkIiwiZHJhZnRzIiwic2luZ3VsYXJOYW1lIiwicGx1cmFsTmFtZSIsImZyb21TbHVnIiwiZm9ybWF0TmFtZXMiLCJ0b1dvcmRzIiwic2luZ3VsYXIiLCJwbHVyYWwiLCJoYXNJREZpZWxkIiwiZmxhdHRlbkZpZWxkcyIsImZpbmRJbmRleCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJpZFR5cGUiLCJnZXRDb2xsZWN0aW9uSURUeXBlIiwiYmFzZUZpZWxkcyIsIndoZXJlSW5wdXRGaWVsZHMiLCJpZCIsInR5cGUiLCJwdXNoIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiZm9yY2VOdWxsYWJsZU9iamVjdFR5cGUiLCJCb29sZWFuIiwiYnVpbGRPYmplY3RUeXBlIiwiZm9yY2VOdWxsYWJsZSIsInBhcmVudE5hbWUiLCJwYWdpbmF0ZWRUeXBlIiwiYnVpbGRQYWdpbmF0ZWRMaXN0VHlwZSIsIndoZXJlSW5wdXRUeXBlIiwiYnVpbGRXaGVyZUlucHV0VHlwZSIsImF1dGgiLCJkaXNhYmxlTG9jYWxTdHJhdGVneSIsImxhYmVsIiwicmVxdWlyZWQiLCJjcmVhdGVNdXRhdGlvbklucHV0VHlwZSIsImJ1aWxkTXV0YXRpb25JbnB1dFR5cGUiLCJtdXRhdGlvbklucHV0VHlwZSIsIkdyYXBoUUxOb25OdWxsIiwidXBkYXRlTXV0YXRpb25JbnB1dFR5cGUiLCJmaWx0ZXIiLCJRdWVyeSIsImFyZ3MiLCJkcmFmdCIsIkdyYXBoUUxCb29sZWFuIiwibG9jYWxpemF0aW9uIiwiZmFsbGJhY2tMb2NhbGUiLCJ0eXBlcyIsImZhbGxiYWNrTG9jYWxlSW5wdXRUeXBlIiwibG9jYWxlIiwibG9jYWxlSW5wdXRUeXBlIiwicmVzb2x2ZSIsImZpbmRCeUlEUmVzb2x2ZXIiLCJ3aGVyZSIsImxpbWl0IiwiR3JhcGhRTEludCIsInBhZ2UiLCJzb3J0IiwiR3JhcGhRTFN0cmluZyIsImZpbmRSZXNvbHZlciIsIkdyYXBoUUxPYmplY3RUeXBlIiwidG90YWxEb2NzIiwiY291bnRSZXNvbHZlciIsImJ1aWxkUG9saWN5VHlwZSIsImVudGl0eSIsInNjb3BlIiwidHlwZVN1ZmZpeCIsImRvY0FjY2Vzc1Jlc29sdmVyIiwiTXV0YXRpb24iLCJkYXRhIiwiY3JlYXRlUmVzb2x2ZXIiLCJhdXRvc2F2ZSIsInVwZGF0ZVJlc29sdmVyIiwiZ2V0RGVsZXRlUmVzb2x2ZXIiLCJ2ZXJzaW9uSURUeXBlIiwidmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIiwidmVyc2lvblR5cGUiLCJmb3JtYXROYW1lIiwiZmluZFZlcnNpb25CeUlEUmVzb2x2ZXIiLCJmaW5kVmVyc2lvbnNSZXNvbHZlciIsInJlc3RvcmVWZXJzaW9uUmVzb2x2ZXIiLCJhdXRoRmllbGRzIiwiSldUIiwic2F2ZVRvSldUIiwiZXhwIiwic3RyYXRlZ3kiLCJ0b2tlbiIsInVzZXIiLCJtZSIsImluaXQiLCJyZWZyZXNoZWRUb2tlbiIsInJlZnJlc2giLCJsb2dvdXQiLCJtYXhMb2dpbkF0dGVtcHRzIiwiZW1haWwiLCJ1bmxvY2siLCJwYXNzd29yZCIsImxvZ2luIiwiZGlzYWJsZUVtYWlsIiwiZXhwaXJhdGlvbiIsImZvcmdvdFBhc3N3b3JkIiwicmVzZXRQYXNzd29yZCIsInZlcmlmeUVtYWlsIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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
|
|
@@ -15,7 +15,8 @@ type Args<T> = {
|
|
|
15
15
|
req: PayloadRequest;
|
|
16
16
|
siblingData: Record<string, unknown>;
|
|
17
17
|
siblingDoc: Record<string, unknown>;
|
|
18
|
+
siblingDocKeys: Set<string>;
|
|
18
19
|
};
|
|
19
|
-
export declare const promise: <T>({ id, collection, context, data, doc, field, global, operation, overrideAccess, req, siblingData, siblingDoc, }: Args<T>) => Promise<void>;
|
|
20
|
+
export declare const promise: <T>({ id, collection, context, data, doc, field, global, operation, overrideAccess, req, siblingData, siblingDoc, siblingDocKeys, }: Args<T>) => Promise<void>;
|
|
20
21
|
export {};
|
|
21
22
|
//# sourceMappingURL=promise.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAQ3D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,GAAG,EAAE,CAAC,CAAA;IACN,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"promise.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/promise.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAQ3D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,GAAG,EAAE,CAAC,CAAA;IACN,KAAK,EAAE,KAAK,GAAG,UAAU,CAAA;IACzB,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC5B,CAAA;AASD,eAAO,MAAM,OAAO,mJAcP,QAAQ,IAAI,CA8YxB,CAAA"}
|
|
@@ -18,8 +18,16 @@ function _interop_require_default(obj) {
|
|
|
18
18
|
default: obj
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
-
const promise = async ({ id, collection, context, data, doc, field, global, operation, overrideAccess, req, siblingData, siblingDoc })=>{
|
|
21
|
+
const promise = async ({ id, collection, context, data, doc, field, global, operation, overrideAccess, req, siblingData, siblingDoc, siblingDocKeys })=>{
|
|
22
22
|
if ((0, _types.fieldAffectsData)(field)) {
|
|
23
|
+
// Remove the key from siblingDocKeys
|
|
24
|
+
// the goal is to keep any existing data present
|
|
25
|
+
// before updating, for users that want to maintain
|
|
26
|
+
// external data in the same collections as Payload manages,
|
|
27
|
+
// without having fields defined for them
|
|
28
|
+
if (siblingDocKeys.has(field.name)) {
|
|
29
|
+
siblingDocKeys.delete(field.name);
|
|
30
|
+
}
|
|
23
31
|
if (field.name === 'id') {
|
|
24
32
|
if (field.type === 'number' && typeof siblingData[field.name] === 'string') {
|
|
25
33
|
const value = siblingData[field.name];
|
|
@@ -286,7 +294,8 @@ const promise = async ({ id, collection, context, data, doc, field, global, oper
|
|
|
286
294
|
overrideAccess,
|
|
287
295
|
req,
|
|
288
296
|
siblingData,
|
|
289
|
-
siblingDoc
|
|
297
|
+
siblingDoc,
|
|
298
|
+
siblingDocKeys
|
|
290
299
|
});
|
|
291
300
|
break;
|
|
292
301
|
}
|
|
@@ -294,7 +303,8 @@ const promise = async ({ id, collection, context, data, doc, field, global, oper
|
|
|
294
303
|
{
|
|
295
304
|
let tabSiblingData;
|
|
296
305
|
let tabSiblingDoc;
|
|
297
|
-
|
|
306
|
+
const isNamedTab = (0, _types.tabHasName)(field);
|
|
307
|
+
if (isNamedTab) {
|
|
298
308
|
if (typeof siblingData[field.name] !== 'object') siblingData[field.name] = {};
|
|
299
309
|
if (typeof siblingDoc[field.name] !== 'object') siblingDoc[field.name] = {};
|
|
300
310
|
tabSiblingData = siblingData[field.name];
|
|
@@ -315,7 +325,8 @@ const promise = async ({ id, collection, context, data, doc, field, global, oper
|
|
|
315
325
|
overrideAccess,
|
|
316
326
|
req,
|
|
317
327
|
siblingData: tabSiblingData,
|
|
318
|
-
siblingDoc: tabSiblingDoc
|
|
328
|
+
siblingDoc: tabSiblingDoc,
|
|
329
|
+
siblingDocKeys: isNamedTab ? undefined : siblingDocKeys
|
|
319
330
|
});
|
|
320
331
|
break;
|
|
321
332
|
}
|
|
@@ -336,7 +347,8 @@ const promise = async ({ id, collection, context, data, doc, field, global, oper
|
|
|
336
347
|
overrideAccess,
|
|
337
348
|
req,
|
|
338
349
|
siblingData,
|
|
339
|
-
siblingDoc
|
|
350
|
+
siblingDoc,
|
|
351
|
+
siblingDocKeys
|
|
340
352
|
});
|
|
341
353
|
break;
|
|
342
354
|
}
|
|
@@ -347,4 +359,4 @@ const promise = async ({ id, collection, context, data, doc, field, global, oper
|
|
|
347
359
|
}
|
|
348
360
|
};
|
|
349
361
|
|
|
350
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUvcHJvbWlzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIHRhYkhhc05hbWUsIHZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCBnZXRWYWx1ZVdpdGhEZWZhdWx0IGZyb20gJy4uLy4uL2dldERlZmF1bHRWYWx1ZSdcbmltcG9ydCB7IGNsb25lRGF0YUZyb21PcmlnaW5hbERvYyB9IGZyb20gJy4uL2JlZm9yZUNoYW5nZS9jbG9uZURhdGFGcm9tT3JpZ2luYWxEb2MnXG5pbXBvcnQgeyBnZXRFeGlzdGluZ1Jvd0RvYyB9IGZyb20gJy4uL2JlZm9yZUNoYW5nZS9nZXRFeGlzdGluZ1Jvd0RvYydcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBUXG4gIGRvYzogVFxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgdGhlIGZvbGxvd2luZyBhY3Rpb25zLCBpbiBvcmRlcjpcbi8vIC0gU2FuaXRpemUgaW5jb21pbmcgZGF0YVxuLy8gLSBFeGVjdXRlIGZpZWxkIGhvb2tzXG4vLyAtIEV4ZWN1dGUgZmllbGQgYWNjZXNzIGNvbnRyb2xcbi8vIC0gTWVyZ2Ugb3JpZ2luYWwgZG9jdW1lbnQgZGF0YSBpbnRvIGluY29taW5nIGRhdGFcbi8vIC0gQ29tcHV0ZSBkZWZhdWx0IHZhbHVlcyBmb3IgdW5kZWZpbmVkIGZpZWxkc1xuXG5leHBvcnQgY29uc3QgcHJvbWlzZSA9IGFzeW5jIDxUPih7XG4gIGlkLFxuICBjb2xsZWN0aW9uLFxuICBjb250ZXh0LFxuICBkYXRhLFxuICBkb2MsXG4gIGZpZWxkLFxuICBnbG9iYWwsXG4gIG9wZXJhdGlvbixcbiAgb3ZlcnJpZGVBY2Nlc3MsXG4gIHJlcSxcbiAgc2libGluZ0RhdGEsXG4gIHNpYmxpbmdEb2MsXG59OiBBcmdzPFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgIGlmIChmaWVsZC5uYW1lID09PSAnaWQnKSB7XG4gICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ251bWJlcicgJiYgdHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIHN0cmluZ1xuXG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gcGFyc2VGbG9hdCh2YWx1ZSlcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBmaWVsZC50eXBlID09PSAndGV4dCcgJiZcbiAgICAgICAgdHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdPy50b1N0cmluZyA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICAgICB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdzdHJpbmcnXG4gICAgICApIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXS50b1N0cmluZygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU2FuaXRpemUgaW5jb21pbmcgZGF0YVxuICAgIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgICAgY2FzZSAnbnVtYmVyJzoge1xuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgc3RyaW5nXG4gICAgICAgICAgY29uc3QgdHJpbW1lZCA9IHZhbHVlLnRyaW0oKVxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gdHJpbW1lZC5sZW5ndGggPT09IDAgPyBudWxsIDogcGFyc2VGbG9hdCh0cmltbWVkKVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncG9pbnQnOiB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdKSkge1xuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIHN0cmluZ1tdKS5tYXAoKGNvb3JkaW5hdGUsIGkpID0+IHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgY29vcmRpbmF0ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVtpXSBhcyBzdHJpbmdcbiAgICAgICAgICAgICAgY29uc3QgdHJpbW1lZCA9IHZhbHVlLnRyaW0oKVxuICAgICAgICAgICAgICByZXR1cm4gdHJpbW1lZC5sZW5ndGggPT09IDAgPyBudWxsIDogcGFyc2VGbG9hdCh0cmltbWVkKVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGNvb3JkaW5hdGVcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnY2hlY2tib3gnOiB7XG4gICAgICAgIGlmIChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ3RydWUnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHRydWVcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnZmFsc2UnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IGZhbHNlXG4gICAgICAgIGlmIChzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJycpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gZmFsc2VcblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdyaWNoVGV4dCc6IHtcbiAgICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcmljaFRleHRKU09OID0gSlNPTi5wYXJzZShzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmcpXG4gICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHJpY2hUZXh0SlNPTlxuICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgLy8gRGlzcmVnYXJkIHRoaXMgZGF0YSBhcyBpdCBpcyBub3QgdmFsaWQuXG4gICAgICAgICAgICAvLyBXaWxsIGJlIHJlcG9ydGVkIHRvIHVzZXIgYnkgZmllbGQgdmFsaWRhdGlvblxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JlbGF0aW9uc2hpcCc6XG4gICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJycgfHxcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ25vbmUnIHx8XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdudWxsJyB8fFxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyAmJiBmaWVsZC5oYXNNYW55ID09PSB0cnVlKSB7XG4gICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IFtdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gbnVsbFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYzogeyByZWxhdGlvblRvOiBzdHJpbmc7IHZhbHVlOiB1bmtub3duIH0sIGkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgICAoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSByZWxhdGVkRG9jLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwSURGaWVsZCA9IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uRmllbGQpID0+XG4gICAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uc2hpcElERmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV1baV0gPSB7XG4gICAgICAgICAgICAgICAgICAuLi5yZWxhdGVkRG9jLFxuICAgICAgICAgICAgICAgICAgdmFsdWU6IHBhcnNlRmxvYXQocmVsYXRlZERvYy52YWx1ZSBhcyBzdHJpbmcpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgJiZcbiAgICAgICAgICAgIGZpZWxkLmhhc01hbnkgIT09IHRydWUgJiZcbiAgICAgICAgICAgIHZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbih2YWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29uZmlnLmNvbGxlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IHZhbHVlLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBJREZpZWxkID0gcmVsYXRlZENvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgIChjb2xsZWN0aW9uRmllbGQpID0+XG4gICAgICAgICAgICAgICAgZmllbGRBZmZlY3RzRGF0YShjb2xsZWN0aW9uRmllbGQpICYmIGNvbGxlY3Rpb25GaWVsZC5uYW1lID09PSAnaWQnLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgaWYgKHJlbGF0aW9uc2hpcElERmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0geyAuLi52YWx1ZSwgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUudmFsdWUgYXMgc3RyaW5nKSB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUuZm9yRWFjaCgocmVsYXRlZERvYzogdW5rbm93biwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZWxhdGVkQ29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IGZpZWxkLnJlbGF0aW9uVG8sXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwSURGaWVsZCA9IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uRmllbGQpID0+XG4gICAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgaWYgKHJlbGF0aW9uc2hpcElERmllbGQ/LnR5cGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV1baV0gPSBwYXJzZUZsb2F0KHJlbGF0ZWREb2MgYXMgc3RyaW5nKVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gJ3JlbGF0aW9uc2hpcCcgJiYgZmllbGQuaGFzTWFueSAhPT0gdHJ1ZSAmJiB2YWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcElERmllbGQgPSByZWxhdGVkQ29sbGVjdGlvbi5maWVsZHMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBwYXJzZUZsb2F0KHZhbHVlIGFzIHN0cmluZylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgY2FzZSAnYmxvY2tzJzoge1xuICAgICAgICAvLyBIYW5kbGUgY2FzZXMgb2YgYXJyYXlzIGJlaW5nIGludGVudGlvbmFsbHkgc2V0IHRvIDBcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnMCcgfHwgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09IDApIHtcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IFtdXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBob29rc1xuICAgIGlmIChmaWVsZC5ob29rcz8uYmVmb3JlVmFsaWRhdGUpIHtcbiAgICAgIGF3YWl0IGZpZWxkLmhvb2tzLmJlZm9yZVZhbGlkYXRlLnJlZHVjZShhc3luYyAocHJpb3JIb29rLCBjdXJyZW50SG9vaykgPT4ge1xuICAgICAgICBhd2FpdCBwcmlvckhvb2tcblxuICAgICAgICBjb25zdCBob29rZWRWYWx1ZSA9IGF3YWl0IGN1cnJlbnRIb29rKHtcbiAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgZGF0YSxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgIG9yaWdpbmFsRG9jOiBkb2MsXG4gICAgICAgICAgcmVxLFxuICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgIHZhbHVlOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcblxuICAgICAgICBpZiAoaG9va2VkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gaG9va2VkVmFsdWVcbiAgICAgICAgfVxuICAgICAgfSwgUHJvbWlzZS5yZXNvbHZlKCkpXG4gICAgfVxuXG4gICAgLy8gRXhlY3V0ZSBhY2Nlc3MgY29udHJvbFxuICAgIGlmIChmaWVsZC5hY2Nlc3MgJiYgZmllbGQuYWNjZXNzW29wZXJhdGlvbl0pIHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IG92ZXJyaWRlQWNjZXNzXG4gICAgICAgID8gdHJ1ZVxuICAgICAgICA6IGF3YWl0IGZpZWxkLmFjY2Vzc1tvcGVyYXRpb25dKHsgaWQsIGRhdGEsIGRvYywgcmVxLCBzaWJsaW5nRGF0YSB9KVxuXG4gICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICBkZWxldGUgc2libGluZ0RhdGFbZmllbGQubmFtZV1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gSWYgbm8gaW5jb21pbmcgZGF0YSwgYnV0IGV4aXN0aW5nIGRvY3VtZW50IGRhdGEgaXMgZm91bmQsIG1lcmdlIGl0IGluXG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gY2xvbmVEYXRhRnJvbU9yaWdpbmFsRG9jKHNpYmxpbmdEb2NbZmllbGQubmFtZV0pXG5cbiAgICAgICAgLy8gT3RoZXJ3aXNlIGNvbXB1dGUgZGVmYXVsdCB2YWx1ZVxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQuZGVmYXVsdFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IGF3YWl0IGdldFZhbHVlV2l0aERlZmF1bHQoe1xuICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGQuZGVmYXVsdFZhbHVlLFxuICAgICAgICAgIGxvY2FsZTogcmVxLmxvY2FsZSxcbiAgICAgICAgICB1c2VyOiByZXEudXNlcixcbiAgICAgICAgICB2YWx1ZTogc2libGluZ0RhdGFbZmllbGQubmFtZV0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhdmVyc2Ugc3ViZmllbGRzXG4gIHN3aXRjaCAoZmllbGQudHlwZSkge1xuICAgIGNhc2UgJ2dyb3VwJzoge1xuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0ge31cbiAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuXG4gICAgICBjb25zdCBncm91cERhdGEgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuICAgICAgY29uc3QgZ3JvdXBEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogZ3JvdXBEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jOiBncm91cERvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICBjb25zdCByb3dzID0gc2libGluZ0RhdGFbZmllbGQubmFtZV1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocm93cykpIHtcbiAgICAgICAgY29uc3QgcHJvbWlzZXMgPSBbXVxuICAgICAgICByb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICBjb250ZXh0LFxuICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgc2libGluZ0RvYzogZ2V0RXhpc3RpbmdSb3dEb2Mocm93LCBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ2Jsb2Nrcyc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgY29uc3Qgcm93U2libGluZ0RvYyA9IGdldEV4aXN0aW5nUm93RG9jKHJvdywgc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcbiAgICAgICAgICBjb25zdCBibG9ja1R5cGVUb01hdGNoID0gcm93LmJsb2NrVHlwZSB8fCByb3dTaWJsaW5nRG9jLmJsb2NrVHlwZVxuICAgICAgICAgIGNvbnN0IGJsb2NrID0gZmllbGQuYmxvY2tzLmZpbmQoKGJsb2NrVHlwZSkgPT4gYmxvY2tUeXBlLnNsdWcgPT09IGJsb2NrVHlwZVRvTWF0Y2gpXG5cbiAgICAgICAgICBpZiAoYmxvY2spIHtcbiAgICAgICAgICAgIHJvdy5ibG9ja1R5cGUgPSBibG9ja1R5cGVUb01hdGNoXG5cbiAgICAgICAgICAgIHByb21pc2VzLnB1c2goXG4gICAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICBkb2MsXG4gICAgICAgICAgICAgICAgZmllbGRzOiBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgZ2xvYmFsLFxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGE6IHJvdyxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRG9jOiByb3dTaWJsaW5nRG9jLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb21pc2VzKVxuICAgICAgfVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3Jvdyc6XG4gICAgY2FzZSAnY29sbGFwc2libGUnOiB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBnbG9iYWwsXG4gICAgICAgIG9wZXJhdGlvbixcbiAgICAgICAgb3ZlcnJpZGVBY2Nlc3MsXG4gICAgICAgIHJlcSxcbiAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJTaWJsaW5nRGF0YVxuICAgICAgbGV0IHRhYlNpYmxpbmdEb2NcbiAgICAgIGlmICh0YWJIYXNOYW1lKGZpZWxkKSkge1xuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdID0ge31cblxuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YWJTaWJsaW5nRGF0YSA9IHNpYmxpbmdEYXRhXG4gICAgICAgIHRhYlNpYmxpbmdEb2MgPSBzaWJsaW5nRG9jXG4gICAgICB9XG5cbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YTogdGFiU2libGluZ0RhdGEsXG4gICAgICAgIHNpYmxpbmdEb2M6IHRhYlNpYmxpbmdEb2MsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYnMnOiB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZpZWxkcyh7XG4gICAgICAgIGlkLFxuICAgICAgICBjb2xsZWN0aW9uLFxuICAgICAgICBjb250ZXh0LFxuICAgICAgICBkYXRhLFxuICAgICAgICBkb2MsXG4gICAgICAgIGZpZWxkczogZmllbGQudGFicy5tYXAoKHRhYikgPT4gKHsgLi4udGFiLCB0eXBlOiAndGFiJyB9KSksXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwcm9taXNlIiwiaWQiLCJjb2xsZWN0aW9uIiwiY29udGV4dCIsImRhdGEiLCJkb2MiLCJmaWVsZCIsImdsb2JhbCIsIm9wZXJhdGlvbiIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJ0eXBlIiwidmFsdWUiLCJwYXJzZUZsb2F0IiwidG9TdHJpbmciLCJ0cmltbWVkIiwidHJpbSIsImxlbmd0aCIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsImNvb3JkaW5hdGUiLCJpIiwicmljaFRleHRKU09OIiwiSlNPTiIsInBhcnNlIiwiaGFzTWFueSIsInJlbGF0aW9uVG8iLCJmb3JFYWNoIiwicmVsYXRlZERvYyIsInJlbGF0ZWRDb2xsZWN0aW9uIiwicGF5bG9hZCIsImNvbmZpZyIsImNvbGxlY3Rpb25zIiwiZmluZCIsInNsdWciLCJyZWxhdGlvbnNoaXBJREZpZWxkIiwiZmllbGRzIiwiY29sbGVjdGlvbkZpZWxkIiwidmFsdWVJc1ZhbHVlV2l0aFJlbGF0aW9uIiwiaG9va3MiLCJiZWZvcmVWYWxpZGF0ZSIsInJlZHVjZSIsInByaW9ySG9vayIsImN1cnJlbnRIb29rIiwiaG9va2VkVmFsdWUiLCJvcmlnaW5hbERvYyIsInVuZGVmaW5lZCIsIlByb21pc2UiLCJyZXNvbHZlIiwiYWNjZXNzIiwicmVzdWx0IiwiY2xvbmVEYXRhRnJvbU9yaWdpbmFsRG9jIiwiZGVmYXVsdFZhbHVlIiwiZ2V0VmFsdWVXaXRoRGVmYXVsdCIsImxvY2FsZSIsInVzZXIiLCJncm91cERhdGEiLCJncm91cERvYyIsInRyYXZlcnNlRmllbGRzIiwicm93cyIsInByb21pc2VzIiwicm93IiwicHVzaCIsImdldEV4aXN0aW5nUm93RG9jIiwiYWxsIiwicm93U2libGluZ0RvYyIsImJsb2NrVHlwZVRvTWF0Y2giLCJibG9ja1R5cGUiLCJibG9jayIsImJsb2NrcyIsInRhYlNpYmxpbmdEYXRhIiwidGFiU2libGluZ0RvYyIsInRhYkhhc05hbWUiLCJ0YWJzIiwidGFiIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBa0N2QkE7OztlQUFBQTs7O3VC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
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUvcHJvbWlzZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEsIHRhYkhhc05hbWUsIHZhbHVlSXNWYWx1ZVdpdGhSZWxhdGlvbiB9IGZyb20gJy4uLy4uL2NvbmZpZy90eXBlcydcbmltcG9ydCBnZXRWYWx1ZVdpdGhEZWZhdWx0IGZyb20gJy4uLy4uL2dldERlZmF1bHRWYWx1ZSdcbmltcG9ydCB7IGNsb25lRGF0YUZyb21PcmlnaW5hbERvYyB9IGZyb20gJy4uL2JlZm9yZUNoYW5nZS9jbG9uZURhdGFGcm9tT3JpZ2luYWxEb2MnXG5pbXBvcnQgeyBnZXRFeGlzdGluZ1Jvd0RvYyB9IGZyb20gJy4uL2JlZm9yZUNoYW5nZS9nZXRFeGlzdGluZ1Jvd0RvYydcbmltcG9ydCB7IHRyYXZlcnNlRmllbGRzIH0gZnJvbSAnLi90cmF2ZXJzZUZpZWxkcydcblxudHlwZSBBcmdzPFQ+ID0ge1xuICBjb2xsZWN0aW9uOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgbnVsbFxuICBjb250ZXh0OiBSZXF1ZXN0Q29udGV4dFxuICBkYXRhOiBUXG4gIGRvYzogVFxuICBmaWVsZDogRmllbGQgfCBUYWJBc0ZpZWxkXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvY0tleXM6IFNldDxzdHJpbmc+XG59XG5cbi8vIFRoaXMgZnVuY3Rpb24gaXMgcmVzcG9uc2libGUgZm9yIHRoZSBmb2xsb3dpbmcgYWN0aW9ucywgaW4gb3JkZXI6XG4vLyAtIFNhbml0aXplIGluY29taW5nIGRhdGFcbi8vIC0gRXhlY3V0ZSBmaWVsZCBob29rc1xuLy8gLSBFeGVjdXRlIGZpZWxkIGFjY2VzcyBjb250cm9sXG4vLyAtIE1lcmdlIG9yaWdpbmFsIGRvY3VtZW50IGRhdGEgaW50byBpbmNvbWluZyBkYXRhXG4vLyAtIENvbXB1dGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHVuZGVmaW5lZCBmaWVsZHNcblxuZXhwb3J0IGNvbnN0IHByb21pc2UgPSBhc3luYyA8VD4oe1xuICBpZCxcbiAgY29sbGVjdGlvbixcbiAgY29udGV4dCxcbiAgZGF0YSxcbiAgZG9jLFxuICBmaWVsZCxcbiAgZ2xvYmFsLFxuICBvcGVyYXRpb24sXG4gIG92ZXJyaWRlQWNjZXNzLFxuICByZXEsXG4gIHNpYmxpbmdEYXRhLFxuICBzaWJsaW5nRG9jLFxuICBzaWJsaW5nRG9jS2V5cyxcbn06IEFyZ3M8VD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgaWYgKGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpKSB7XG4gICAgLy8gUmVtb3ZlIHRoZSBrZXkgZnJvbSBzaWJsaW5nRG9jS2V5c1xuICAgIC8vIHRoZSBnb2FsIGlzIHRvIGtlZXAgYW55IGV4aXN0aW5nIGRhdGEgcHJlc2VudFxuICAgIC8vIGJlZm9yZSB1cGRhdGluZywgZm9yIHVzZXJzIHRoYXQgd2FudCB0byBtYWludGFpblxuICAgIC8vIGV4dGVybmFsIGRhdGEgaW4gdGhlIHNhbWUgY29sbGVjdGlvbnMgYXMgUGF5bG9hZCBtYW5hZ2VzLFxuICAgIC8vIHdpdGhvdXQgaGF2aW5nIGZpZWxkcyBkZWZpbmVkIGZvciB0aGVtXG4gICAgaWYgKHNpYmxpbmdEb2NLZXlzLmhhcyhmaWVsZC5uYW1lKSkge1xuICAgICAgc2libGluZ0RvY0tleXMuZGVsZXRlKGZpZWxkLm5hbWUpXG4gICAgfVxuXG4gICAgaWYgKGZpZWxkLm5hbWUgPT09ICdpZCcpIHtcbiAgICAgIGlmIChmaWVsZC50eXBlID09PSAnbnVtYmVyJyAmJiB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgc3RyaW5nXG5cbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBwYXJzZUZsb2F0KHZhbHVlKVxuICAgICAgfVxuXG4gICAgICBpZiAoXG4gICAgICAgIGZpZWxkLnR5cGUgPT09ICd0ZXh0JyAmJlxuICAgICAgICB0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0/LnRvU3RyaW5nID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSAhPT0gJ3N0cmluZydcbiAgICAgICkge1xuICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLnRvU3RyaW5nKClcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTYW5pdGl6ZSBpbmNvbWluZyBkYXRhXG4gICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSBhcyBzdHJpbmdcbiAgICAgICAgICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpXG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB0cmltbWVkLmxlbmd0aCA9PT0gMCA/IG51bGwgOiBwYXJzZUZsb2F0KHRyaW1tZWQpXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2libGluZ0RhdGFbZmllbGQubmFtZV0pKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSAoc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgc3RyaW5nW10pLm1hcCgoY29vcmRpbmF0ZSwgaSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBjb29yZGluYXRlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdW2ldIGFzIHN0cmluZ1xuICAgICAgICAgICAgICBjb25zdCB0cmltbWVkID0gdmFsdWUudHJpbSgpXG4gICAgICAgICAgICAgIHJldHVybiB0cmltbWVkLmxlbmd0aCA9PT0gMCA/IG51bGwgOiBwYXJzZUZsb2F0KHRyaW1tZWQpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gY29vcmRpbmF0ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH1cblxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdjaGVja2JveCc6IHtcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAndHJ1ZScpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gdHJ1ZVxuICAgICAgICBpZiAoc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICdmYWxzZScpIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gZmFsc2VcbiAgICAgICAgaWYgKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnJykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBmYWxzZVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGNhc2UgJ3JpY2hUZXh0Jzoge1xuICAgICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCByaWNoVGV4dEpTT04gPSBKU09OLnBhcnNlKHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIHN0cmluZylcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gcmljaFRleHRKU09OXG4gICAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgICAvLyBEaXNyZWdhcmQgdGhpcyBkYXRhIGFzIGl0IGlzIG5vdCB2YWxpZC5cbiAgICAgICAgICAgIC8vIFdpbGwgYmUgcmVwb3J0ZWQgdG8gdXNlciBieSBmaWVsZCB2YWxpZGF0aW9uXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgYnJlYWtcbiAgICAgIH1cblxuICAgICAgY2FzZSAncmVsYXRpb25zaGlwJzpcbiAgICAgIGNhc2UgJ3VwbG9hZCc6IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnJyB8fFxuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID09PSAnbm9uZScgfHxcbiAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gJ251bGwnIHx8XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgaWYgKGZpZWxkLnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnICYmIGZpZWxkLmhhc01hbnkgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gW11cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBudWxsXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdmFsdWUgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkLnJlbGF0aW9uVG8pKSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChyZWxhdGVkRG9jOiB7IHJlbGF0aW9uVG86IHN0cmluZzsgdmFsdWU6IHVua25vd24gfSwgaSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCByZWxhdGVkQ29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IHJlbGF0ZWREb2MucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBJREZpZWxkID0gcmVsYXRlZENvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoY29sbGVjdGlvbkZpZWxkKSAmJiBjb2xsZWN0aW9uRmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVtpXSA9IHtcbiAgICAgICAgICAgICAgICAgIC4uLnJlbGF0ZWREb2MsXG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcGFyc2VGbG9hdChyZWxhdGVkRG9jLnZhbHVlIGFzIHN0cmluZyksXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyAmJlxuICAgICAgICAgICAgZmllbGQuaGFzTWFueSAhPT0gdHJ1ZSAmJlxuICAgICAgICAgICAgdmFsdWVJc1ZhbHVlV2l0aFJlbGF0aW9uKHZhbHVlKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcmVsYXRlZENvbGxlY3Rpb24gPSByZXEucGF5bG9hZC5jb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gdmFsdWUucmVsYXRpb25UbyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGNvbnN0IHJlbGF0aW9uc2hpcElERmllbGQgPSByZWxhdGVkQ29sbGVjdGlvbi5maWVsZHMuZmluZChcbiAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICBmaWVsZEFmZmVjdHNEYXRhKGNvbGxlY3Rpb25GaWVsZCkgJiYgY29sbGVjdGlvbkZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7IC4uLnZhbHVlLCB2YWx1ZTogcGFyc2VGbG9hdCh2YWx1ZS52YWx1ZSBhcyBzdHJpbmcpIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKChyZWxhdGVkRG9jOiB1bmtub3duLCBpKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IHJlbGF0ZWRDb2xsZWN0aW9uID0gcmVxLnBheWxvYWQuY29uZmlnLmNvbGxlY3Rpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gZmllbGQucmVsYXRpb25UbyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBjb25zdCByZWxhdGlvbnNoaXBJREZpZWxkID0gcmVsYXRlZENvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgICAgICAgICAgKGNvbGxlY3Rpb25GaWVsZCkgPT5cbiAgICAgICAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoY29sbGVjdGlvbkZpZWxkKSAmJiBjb2xsZWN0aW9uRmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAocmVsYXRpb25zaGlwSURGaWVsZD8udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVtpXSA9IHBhcnNlRmxvYXQocmVsYXRlZERvYyBhcyBzdHJpbmcpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChmaWVsZC50eXBlID09PSAncmVsYXRpb25zaGlwJyAmJiBmaWVsZC5oYXNNYW55ICE9PSB0cnVlICYmIHZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCByZWxhdGVkQ29sbGVjdGlvbiA9IHJlcS5wYXlsb2FkLmNvbmZpZy5jb2xsZWN0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBmaWVsZC5yZWxhdGlvblRvLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgY29uc3QgcmVsYXRpb25zaGlwSURGaWVsZCA9IHJlbGF0ZWRDb2xsZWN0aW9uLmZpZWxkcy5maW5kKFxuICAgICAgICAgICAgICAoY29sbGVjdGlvbkZpZWxkKSA9PlxuICAgICAgICAgICAgICAgIGZpZWxkQWZmZWN0c0RhdGEoY29sbGVjdGlvbkZpZWxkKSAmJiBjb2xsZWN0aW9uRmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIGlmIChyZWxhdGlvbnNoaXBJREZpZWxkPy50eXBlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHBhcnNlRmxvYXQodmFsdWUgYXMgc3RyaW5nKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVha1xuICAgICAgfVxuXG4gICAgICBjYXNlICdhcnJheSc6XG4gICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgIC8vIEhhbmRsZSBjYXNlcyBvZiBhcnJheXMgYmVpbmcgaW50ZW50aW9uYWxseSBzZXQgdG8gMFxuICAgICAgICBpZiAoc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICcwJyB8fCBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9PT0gMCkge1xuICAgICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gW11cbiAgICAgICAgfVxuXG4gICAgICAgIGJyZWFrXG4gICAgICB9XG5cbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBFeGVjdXRlIGhvb2tzXG4gICAgaWYgKGZpZWxkLmhvb2tzPy5iZWZvcmVWYWxpZGF0ZSkge1xuICAgICAgYXdhaXQgZmllbGQuaG9va3MuYmVmb3JlVmFsaWRhdGUucmVkdWNlKGFzeW5jIChwcmlvckhvb2ssIGN1cnJlbnRIb29rKSA9PiB7XG4gICAgICAgIGF3YWl0IHByaW9ySG9va1xuXG4gICAgICAgIGNvbnN0IGhvb2tlZFZhbHVlID0gYXdhaXQgY3VycmVudEhvb2soe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgICAgb3JpZ2luYWxEb2M6IGRvYyxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgdmFsdWU6IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChob29rZWRWYWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBob29rZWRWYWx1ZVxuICAgICAgICB9XG4gICAgICB9LCBQcm9taXNlLnJlc29sdmUoKSlcbiAgICB9XG5cbiAgICAvLyBFeGVjdXRlIGFjY2VzcyBjb250cm9sXG4gICAgaWYgKGZpZWxkLmFjY2VzcyAmJiBmaWVsZC5hY2Nlc3Nbb3BlcmF0aW9uXSkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gb3ZlcnJpZGVBY2Nlc3NcbiAgICAgICAgPyB0cnVlXG4gICAgICAgIDogYXdhaXQgZmllbGQuYWNjZXNzW29wZXJhdGlvbl0oeyBpZCwgZGF0YSwgZG9jLCByZXEsIHNpYmxpbmdEYXRhIH0pXG5cbiAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgIGRlbGV0ZSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAvLyBJZiBubyBpbmNvbWluZyBkYXRhLCBidXQgZXhpc3RpbmcgZG9jdW1lbnQgZGF0YSBpcyBmb3VuZCwgbWVyZ2UgaXQgaW5cbiAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSBjbG9uZURhdGFGcm9tT3JpZ2luYWxEb2Moc2libGluZ0RvY1tmaWVsZC5uYW1lXSlcblxuICAgICAgICAvLyBPdGhlcndpc2UgY29tcHV0ZSBkZWZhdWx0IHZhbHVlXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmaWVsZC5kZWZhdWx0VmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdID0gYXdhaXQgZ2V0VmFsdWVXaXRoRGVmYXVsdCh7XG4gICAgICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUsXG4gICAgICAgICAgbG9jYWxlOiByZXEubG9jYWxlLFxuICAgICAgICAgIHVzZXI6IHJlcS51c2VyLFxuICAgICAgICAgIHZhbHVlOiBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUcmF2ZXJzZSBzdWJmaWVsZHNcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICBpZiAodHlwZW9mIHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RhdGFbZmllbGQubmFtZV0gPSB7fVxuICAgICAgaWYgKHR5cGVvZiBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdICE9PSAnb2JqZWN0Jykgc2libGluZ0RvY1tmaWVsZC5uYW1lXSA9IHt9XG5cbiAgICAgIGNvbnN0IGdyb3VwRGF0YSA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+XG4gICAgICBjb25zdCBncm91cERvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cblxuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiBncm91cERhdGEsXG4gICAgICAgIHNpYmxpbmdEb2M6IGdyb3VwRG9jLFxuICAgICAgfSlcblxuICAgICAgYnJlYWtcbiAgICB9XG5cbiAgICBjYXNlICdhcnJheSc6IHtcbiAgICAgIGNvbnN0IHJvd3MgPSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyb3dzKSkge1xuICAgICAgICBjb25zdCBwcm9taXNlcyA9IFtdXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgIHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgICAgICAgIGdsb2JhbCxcbiAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICBzaWJsaW5nRGF0YTogcm93LFxuICAgICAgICAgICAgICBzaWJsaW5nRG9jOiBnZXRFeGlzdGluZ1Jvd0RvYyhyb3csIHNpYmxpbmdEb2NbZmllbGQubmFtZV0pLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKVxuICAgICAgICB9KVxuICAgICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAnYmxvY2tzJzoge1xuICAgICAgY29uc3Qgcm93cyA9IHNpYmxpbmdEYXRhW2ZpZWxkLm5hbWVdXG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJvd3MpKSB7XG4gICAgICAgIGNvbnN0IHByb21pc2VzID0gW11cbiAgICAgICAgcm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICBjb25zdCByb3dTaWJsaW5nRG9jID0gZ2V0RXhpc3RpbmdSb3dEb2Mocm93LCBzaWJsaW5nRG9jW2ZpZWxkLm5hbWVdKVxuICAgICAgICAgIGNvbnN0IGJsb2NrVHlwZVRvTWF0Y2ggPSByb3cuYmxvY2tUeXBlIHx8IHJvd1NpYmxpbmdEb2MuYmxvY2tUeXBlXG4gICAgICAgICAgY29uc3QgYmxvY2sgPSBmaWVsZC5ibG9ja3MuZmluZCgoYmxvY2tUeXBlKSA9PiBibG9ja1R5cGUuc2x1ZyA9PT0gYmxvY2tUeXBlVG9NYXRjaClcblxuICAgICAgICAgIGlmIChibG9jaykge1xuICAgICAgICAgICAgcm93LmJsb2NrVHlwZSA9IGJsb2NrVHlwZVRvTWF0Y2hcblxuICAgICAgICAgICAgcHJvbWlzZXMucHVzaChcbiAgICAgICAgICAgICAgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIGRvYyxcbiAgICAgICAgICAgICAgICBmaWVsZHM6IGJsb2NrLmZpZWxkcyxcbiAgICAgICAgICAgICAgICBnbG9iYWwsXG4gICAgICAgICAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YTogcm93LFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEb2M6IHJvd1NpYmxpbmdEb2MsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICB9XG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIGdsb2JhbCxcbiAgICAgICAgb3BlcmF0aW9uLFxuICAgICAgICBvdmVycmlkZUFjY2VzcyxcbiAgICAgICAgcmVxLFxuICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYyxcbiAgICAgICAgc2libGluZ0RvY0tleXMsXG4gICAgICB9KVxuXG4gICAgICBicmVha1xuICAgIH1cblxuICAgIGNhc2UgJ3RhYic6IHtcbiAgICAgIGxldCB0YWJTaWJsaW5nRGF0YVxuICAgICAgbGV0IHRhYlNpYmxpbmdEb2NcblxuICAgICAgY29uc3QgaXNOYW1lZFRhYiA9IHRhYkhhc05hbWUoZmllbGQpXG5cbiAgICAgIGlmIChpc05hbWVkVGFiKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RhdGFbZmllbGQubmFtZV0gIT09ICdvYmplY3QnKSBzaWJsaW5nRGF0YVtmaWVsZC5uYW1lXSA9IHt9XG4gICAgICAgIGlmICh0eXBlb2Ygc2libGluZ0RvY1tmaWVsZC5uYW1lXSAhPT0gJ29iamVjdCcpIHNpYmxpbmdEb2NbZmllbGQubmFtZV0gPSB7fVxuXG4gICAgICAgIHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgICAgdGFiU2libGluZ0RvYyA9IHNpYmxpbmdEb2NbZmllbGQubmFtZV0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhYlNpYmxpbmdEYXRhID0gc2libGluZ0RhdGFcbiAgICAgICAgdGFiU2libGluZ0RvYyA9IHNpYmxpbmdEb2NcbiAgICAgIH1cblxuICAgICAgYXdhaXQgdHJhdmVyc2VGaWVsZHMoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZHM6IGZpZWxkLmZpZWxkcyxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhOiB0YWJTaWJsaW5nRGF0YSxcbiAgICAgICAgc2libGluZ0RvYzogdGFiU2libGluZ0RvYyxcbiAgICAgICAgc2libGluZ0RvY0tleXM6IGlzTmFtZWRUYWIgPyB1bmRlZmluZWQgOiBzaWJsaW5nRG9jS2V5cyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY2FzZSAndGFicyc6IHtcbiAgICAgIGF3YWl0IHRyYXZlcnNlRmllbGRzKHtcbiAgICAgICAgaWQsXG4gICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIGRhdGEsXG4gICAgICAgIGRvYyxcbiAgICAgICAgZmllbGRzOiBmaWVsZC50YWJzLm1hcCgodGFiKSA9PiAoeyAuLi50YWIsIHR5cGU6ICd0YWInIH0pKSxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICBzaWJsaW5nRG9jS2V5cyxcbiAgICAgIH0pXG5cbiAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgZGVmYXVsdDoge1xuICAgICAgYnJlYWtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJwcm9taXNlIiwiaWQiLCJjb2xsZWN0aW9uIiwiY29udGV4dCIsImRhdGEiLCJkb2MiLCJmaWVsZCIsImdsb2JhbCIsIm9wZXJhdGlvbiIsIm92ZXJyaWRlQWNjZXNzIiwicmVxIiwic2libGluZ0RhdGEiLCJzaWJsaW5nRG9jIiwic2libGluZ0RvY0tleXMiLCJmaWVsZEFmZmVjdHNEYXRhIiwiaGFzIiwibmFtZSIsImRlbGV0ZSIsInR5cGUiLCJ2YWx1ZSIsInBhcnNlRmxvYXQiLCJ0b1N0cmluZyIsInRyaW1tZWQiLCJ0cmltIiwibGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwiY29vcmRpbmF0ZSIsImkiLCJyaWNoVGV4dEpTT04iLCJKU09OIiwicGFyc2UiLCJoYXNNYW55IiwicmVsYXRpb25UbyIsImZvckVhY2giLCJyZWxhdGVkRG9jIiwicmVsYXRlZENvbGxlY3Rpb24iLCJwYXlsb2FkIiwiY29uZmlnIiwiY29sbGVjdGlvbnMiLCJmaW5kIiwic2x1ZyIsInJlbGF0aW9uc2hpcElERmllbGQiLCJmaWVsZHMiLCJjb2xsZWN0aW9uRmllbGQiLCJ2YWx1ZUlzVmFsdWVXaXRoUmVsYXRpb24iLCJob29rcyIsImJlZm9yZVZhbGlkYXRlIiwicmVkdWNlIiwicHJpb3JIb29rIiwiY3VycmVudEhvb2siLCJob29rZWRWYWx1ZSIsIm9yaWdpbmFsRG9jIiwidW5kZWZpbmVkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJhY2Nlc3MiLCJyZXN1bHQiLCJjbG9uZURhdGFGcm9tT3JpZ2luYWxEb2MiLCJkZWZhdWx0VmFsdWUiLCJnZXRWYWx1ZVdpdGhEZWZhdWx0IiwibG9jYWxlIiwidXNlciIsImdyb3VwRGF0YSIsImdyb3VwRG9jIiwidHJhdmVyc2VGaWVsZHMiLCJyb3dzIiwicHJvbWlzZXMiLCJyb3ciLCJwdXNoIiwiZ2V0RXhpc3RpbmdSb3dEb2MiLCJhbGwiLCJyb3dTaWJsaW5nRG9jIiwiYmxvY2tUeXBlVG9NYXRjaCIsImJsb2NrVHlwZSIsImJsb2NrIiwiYmxvY2tzIiwidGFiU2libGluZ0RhdGEiLCJ0YWJTaWJsaW5nRG9jIiwiaXNOYW1lZFRhYiIsInRhYkhhc05hbWUiLCJ0YWJzIiwidGFiIl0sInJhbmdlTWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OyIsIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7Ozs7K0JBbUN2QkE7OztlQUFBQTs7O3VCQTdCMEQ7d0VBQ3ZDOzBDQUNTO21DQUNQO2dDQUNIOzs7Ozs7QUF5QnhCLE1BQU1BLFVBQVUsT0FBVSxFQUMvQkMsRUFBRSxFQUNGQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLEtBQUssRUFDTEMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsR0FBRyxFQUNIQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsY0FBYyxFQUNOO0lBQ1IsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNSLFFBQVE7UUFDM0IscUNBQXFDO1FBQ3JDLGdEQUFnRDtRQUNoRCxt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
|
|
@@ -15,7 +15,8 @@ type Args<T> = {
|
|
|
15
15
|
req: PayloadRequest;
|
|
16
16
|
siblingData: Record<string, unknown>;
|
|
17
17
|
siblingDoc: Record<string, unknown>;
|
|
18
|
+
siblingDocKeys?: Set<string>;
|
|
18
19
|
};
|
|
19
|
-
export declare const traverseFields: <T>({ id, collection, context, data, doc, fields, global, operation, overrideAccess, req, siblingData, siblingDoc, }: Args<T>) => Promise<void>;
|
|
20
|
+
export declare const traverseFields: <T>({ id, collection, context, data, doc, fields, global, operation, overrideAccess, req, siblingData, siblingDoc, siblingDocKeys: incomingSiblingDocKeys, }: Args<T>) => Promise<void>;
|
|
20
21
|
export {};
|
|
21
22
|
//# sourceMappingURL=traverseFields.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI3D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../../src/fields/hooks/beforeValidate/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAA;AAC1E,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI3D,KAAK,IAAI,CAAC,CAAC,IAAI;IACb,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAA;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,IAAI,EAAE,CAAC,CAAA;IACP,GAAG,EAAE,CAAC,CAAA;IACN,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAAA;IACpC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,SAAS,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAC9B,cAAc,EAAE,OAAO,CAAA;IACvB,GAAG,EAAE,cAAc,CAAA;IACnB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,cAAc,4KAcd,QAAQ,IAAI,CAkCxB,CAAA"}
|
|
@@ -9,8 +9,9 @@ Object.defineProperty(exports, "traverseFields", {
|
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
11
|
const _promise = require("./promise");
|
|
12
|
-
const traverseFields = async ({ id, collection, context, data, doc, fields, global, operation, overrideAccess, req, siblingData, siblingDoc })=>{
|
|
12
|
+
const traverseFields = async ({ id, collection, context, data, doc, fields, global, operation, overrideAccess, req, siblingData, siblingDoc, siblingDocKeys: incomingSiblingDocKeys })=>{
|
|
13
13
|
const promises = [];
|
|
14
|
+
const siblingDocKeys = incomingSiblingDocKeys || new Set(Object.keys(siblingDoc));
|
|
14
15
|
fields.forEach((field)=>{
|
|
15
16
|
promises.push((0, _promise.promise)({
|
|
16
17
|
id,
|
|
@@ -24,10 +25,24 @@ const traverseFields = async ({ id, collection, context, data, doc, fields, glob
|
|
|
24
25
|
overrideAccess,
|
|
25
26
|
req,
|
|
26
27
|
siblingData,
|
|
27
|
-
siblingDoc
|
|
28
|
+
siblingDoc,
|
|
29
|
+
siblingDocKeys
|
|
28
30
|
}));
|
|
29
31
|
});
|
|
30
32
|
await Promise.all(promises);
|
|
33
|
+
// For any siblingDocKeys that have not been deleted,
|
|
34
|
+
// we will move the data to the siblingData object
|
|
35
|
+
// to preserve it
|
|
36
|
+
siblingDocKeys.forEach((key)=>{
|
|
37
|
+
if (![
|
|
38
|
+
'createdAt',
|
|
39
|
+
'globalType',
|
|
40
|
+
'id',
|
|
41
|
+
'updatedAt'
|
|
42
|
+
].includes(key)) {
|
|
43
|
+
siblingData[key] = siblingDoc[key];
|
|
44
|
+
}
|
|
45
|
+
});
|
|
31
46
|
};
|
|
32
47
|
|
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlVmFsaWRhdGUvdHJhdmVyc2VGaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCwgUmVxdWVzdENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmllbGQsIFRhYkFzRmllbGQgfSBmcm9tICcuLi8uLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCB7IHByb21pc2UgfSBmcm9tICcuL3Byb21pc2UnXG5cbnR5cGUgQXJnczxUPiA9IHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IG51bGxcbiAgY29udGV4dDogUmVxdWVzdENvbnRleHRcbiAgZGF0YTogVFxuICBkb2M6IFRcbiAgZmllbGRzOiAoRmllbGQgfCBUYWJBc0ZpZWxkKVtdXG4gIGdsb2JhbDogU2FuaXRpemVkR2xvYmFsQ29uZmlnIHwgbnVsbFxuICBpZD86IG51bWJlciB8IHN0cmluZ1xuICBvcGVyYXRpb246ICdjcmVhdGUnIHwgJ3VwZGF0ZSdcbiAgb3ZlcnJpZGVBY2Nlc3M6IGJvb2xlYW5cbiAgcmVxOiBQYXlsb2FkUmVxdWVzdFxuICBzaWJsaW5nRGF0YTogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvYzogUmVjb3JkPHN0cmluZywgdW5rbm93bj5cbiAgc2libGluZ0RvY0tleXM/OiBTZXQ8c3RyaW5nPlxufVxuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VGaWVsZHMgPSBhc3luYyA8VD4oe1xuICBpZCxcbiAgY29sbGVjdGlvbixcbiAgY29udGV4dCxcbiAgZGF0YSxcbiAgZG9jLFxuICBmaWVsZHMsXG4gIGdsb2JhbCxcbiAgb3BlcmF0aW9uLFxuICBvdmVycmlkZUFjY2VzcyxcbiAgcmVxLFxuICBzaWJsaW5nRGF0YSxcbiAgc2libGluZ0RvYyxcbiAgc2libGluZ0RvY0tleXM6IGluY29taW5nU2libGluZ0RvY0tleXMsXG59OiBBcmdzPFQ+KTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gIGNvbnN0IHByb21pc2VzID0gW11cbiAgY29uc3Qgc2libGluZ0RvY0tleXMgPSBpbmNvbWluZ1NpYmxpbmdEb2NLZXlzIHx8IG5ldyBTZXQoT2JqZWN0LmtleXMoc2libGluZ0RvYykpXG5cbiAgZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgcHJvbWlzZXMucHVzaChcbiAgICAgIHByb21pc2Uoe1xuICAgICAgICBpZCxcbiAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgZGF0YSxcbiAgICAgICAgZG9jLFxuICAgICAgICBmaWVsZCxcbiAgICAgICAgZ2xvYmFsLFxuICAgICAgICBvcGVyYXRpb24sXG4gICAgICAgIG92ZXJyaWRlQWNjZXNzLFxuICAgICAgICByZXEsXG4gICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICBzaWJsaW5nRG9jLFxuICAgICAgICBzaWJsaW5nRG9jS2V5cyxcbiAgICAgIH0pLFxuICAgIClcbiAgfSlcblxuICBhd2FpdCBQcm9taXNlLmFsbChwcm9taXNlcylcblxuICAvLyBGb3IgYW55IHNpYmxpbmdEb2NLZXlzIHRoYXQgaGF2ZSBub3QgYmVlbiBkZWxldGVkLFxuICAvLyB3ZSB3aWxsIG1vdmUgdGhlIGRhdGEgdG8gdGhlIHNpYmxpbmdEYXRhIG9iamVjdFxuICAvLyB0byBwcmVzZXJ2ZSBpdFxuICBzaWJsaW5nRG9jS2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBpZiAoIVsnY3JlYXRlZEF0JywgJ2dsb2JhbFR5cGUnLCAnaWQnLCAndXBkYXRlZEF0J10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgc2libGluZ0RhdGFba2V5XSA9IHNpYmxpbmdEb2Nba2V5XVxuICAgIH1cbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJ0cmF2ZXJzZUZpZWxkcyIsImlkIiwiY29sbGVjdGlvbiIsImNvbnRleHQiLCJkYXRhIiwiZG9jIiwiZmllbGRzIiwiZ2xvYmFsIiwib3BlcmF0aW9uIiwib3ZlcnJpZGVBY2Nlc3MiLCJyZXEiLCJzaWJsaW5nRGF0YSIsInNpYmxpbmdEb2MiLCJzaWJsaW5nRG9jS2V5cyIsImluY29taW5nU2libGluZ0RvY0tleXMiLCJwcm9taXNlcyIsIlNldCIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwiZmllbGQiLCJwdXNoIiwicHJvbWlzZSIsIlByb21pc2UiLCJhbGwiLCJrZXkiLCJpbmNsdWRlcyJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBdUJhQTs7O2VBQUFBOzs7eUJBbEJXO0FBa0JqQixNQUFNQSxpQkFBaUIsT0FBVSxFQUN0Q0MsRUFBRSxFQUNGQyxVQUFVLEVBQ1ZDLE9BQU8sRUFDUEMsSUFBSSxFQUNKQyxHQUFHLEVBQ0hDLE1BQU0sRUFDTkMsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLGNBQWMsRUFDZEMsR0FBRyxFQUNIQyxXQUFXLEVBQ1hDLFVBQVUsRUFDVkMsZ0JBQWdCQyxzQkFBc0IsRUFDOUI7SUFDUixNQUFNQyxXQUFXLEVBQUU7SUFDbkIsTUFBTUYsaUJBQWlCQywwQkFBMEIsSUFBSUUsSUFBSUMsT0FBT0MsSUFBSSxDQUFDTjtJQUVyRU4sT0FBT2EsT0FBTyxDQUFDLENBQUNDO1FBQ2RMLFNBQVNNLElBQUksQ0FDWEMsSUFBQUEsZ0JBQU8sRUFBQztZQUNOckI7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQWU7WUFDQWI7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUM7WUFDQUM7UUFDRjtJQUVKO0lBRUEsTUFBTVUsUUFBUUMsR0FBRyxDQUFDVDtJQUVsQixxREFBcUQ7SUFDckQsa0RBQWtEO0lBQ2xELGlCQUFpQjtJQUNqQkYsZUFBZU0sT0FBTyxDQUFDLENBQUNNO1FBQ3RCLElBQUksQ0FBQztZQUFDO1lBQWE7WUFBYztZQUFNO1NBQVksQ0FBQ0MsUUFBUSxDQUFDRCxNQUFNO1lBQ2pFZCxXQUFXLENBQUNjLElBQUksR0FBR2IsVUFBVSxDQUFDYSxJQUFJO1FBQ3BDO0lBQ0Y7QUFDRiJ9
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "قريب من"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addImage": "إضافة صورة",
|
|
286
287
|
"crop": "محصول",
|
|
287
288
|
"cropToolDescription": "اسحب الزوايا المحددة للمنطقة، رسم منطقة جديدة أو قم بضبط القيم أدناه.",
|
|
288
289
|
"dragAndDrop": "قم بسحب وإسقاط ملفّ",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "الطّول",
|
|
296
297
|
"lessInfo": "معلومات أقلّ",
|
|
297
298
|
"moreInfo": "معلومات أكثر",
|
|
299
|
+
"pasteURL": "لصق الرابط",
|
|
298
300
|
"previewSizes": "أحجام المعاينة",
|
|
299
301
|
"selectCollectionToBrowse": "حدّد مجموعة لاستعراضها",
|
|
300
302
|
"selectFile": "اختر ملفّ",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "يتمّ استعراض النُّسَخ ل {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "يتمّ استعراض النُّسَخ للاعداد العامّ {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "yaxın"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addImage": "Şəkil əlavə et",
|
|
286
287
|
"crop": "Məhsul",
|
|
287
288
|
"cropToolDescription": "Seçilmiş sahənin köşələrini sürükləyin, yeni bir sahə çəkin və ya aşağıdakı dəyərləri düzəltin.",
|
|
288
289
|
"dragAndDrop": "Faylı buraya sürükləyin və buraxın",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Hündürlük",
|
|
296
297
|
"lessInfo": "Daha az məlumat",
|
|
297
298
|
"moreInfo": "Daha çox məlumat",
|
|
299
|
+
"pasteURL": "URL yapışdır",
|
|
298
300
|
"previewSizes": "Öncədən baxış ölçüləri",
|
|
299
301
|
"selectCollectionToBrowse": "Gözdən keçirmək üçün bir Kolleksiya seçin",
|
|
300
302
|
"selectFile": "Fayl seçin",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "{{entityLabel}} {{documentTitle}} üçün versiyaları göstərir",
|
|
382
384
|
"viewingVersionsGlobal": "Qlobal {{entityLabel}} üçün versiyaları göstərir"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "близко"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addImage": "Добавяне на изображение",
|
|
286
287
|
"crop": "Изрязване",
|
|
287
288
|
"cropToolDescription": "Плъзни ъглите на избраната област, избери нова област или коригирай стойностите по-долу.",
|
|
288
289
|
"dragAndDrop": "Дръпни и пусни файл",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Височина",
|
|
296
297
|
"lessInfo": "По-малко информация",
|
|
297
298
|
"moreInfo": "Повече информация",
|
|
299
|
+
"pasteURL": "Поставяне на URL",
|
|
298
300
|
"previewSizes": "Преглед на размери",
|
|
299
301
|
"selectCollectionToBrowse": "Избери колекция, която да разгледаш",
|
|
300
302
|
"selectFile": "Избери файл",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Гледане на версии за {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "Гледане на версии за глобалния документ {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "blízko"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addImage": "Přidat obrázek",
|
|
286
287
|
"crop": "Ořez",
|
|
287
288
|
"cropToolDescription": "Přetáhněte rohy vybrané oblasti, nakreslete novou oblast nebo upravte níže uvedené hodnoty.",
|
|
288
289
|
"dragAndDrop": "Přetáhněte soubor",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Výška",
|
|
296
297
|
"lessInfo": "Méně informací",
|
|
297
298
|
"moreInfo": "Více informací",
|
|
299
|
+
"pasteURL": "Vložit URL",
|
|
298
300
|
"previewSizes": "Náhled velikostí",
|
|
299
301
|
"selectCollectionToBrowse": "Vyberte kolekci pro procházení",
|
|
300
302
|
"selectFile": "Vyberte soubor",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Zobrazuji verze pro {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "Zobrazuji verze pro globální {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "in der Nähe"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addImage": "Bild hinzufügen",
|
|
286
287
|
"crop": "Zuschneiden",
|
|
287
288
|
"cropToolDescription": "Ziehen Sie die Ecken des ausgewählten Bereichs, zeichnen Sie einen neuen Bereich oder passen Sie die Werte unten an.",
|
|
288
289
|
"dragAndDrop": "Ziehen Sie eine Datei per Drag-and-Drop",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Höhe",
|
|
296
297
|
"lessInfo": "Weniger Info",
|
|
297
298
|
"moreInfo": "Mehr Info",
|
|
299
|
+
"pasteURL": "URL einfügen",
|
|
298
300
|
"previewSizes": "Vorschaugrößen",
|
|
299
301
|
"selectCollectionToBrowse": "Wähle eine Sammlung zum Durchsuchen aus",
|
|
300
302
|
"selectFile": "Datei auswählen",
|
|
@@ -381,4 +383,4 @@
|
|
|
381
383
|
"viewingVersions": "Betrachte Versionen für {{entityLabel}} {{documentTitle}}",
|
|
382
384
|
"viewingVersionsGlobal": "`Betrachte Versionen für das Globale Dokument {{entityLabel}}"
|
|
383
385
|
}
|
|
384
|
-
}
|
|
386
|
+
}
|
|
@@ -283,6 +283,7 @@
|
|
|
283
283
|
"near": "near"
|
|
284
284
|
},
|
|
285
285
|
"upload": {
|
|
286
|
+
"addImage": "Add Image",
|
|
286
287
|
"crop": "Crop",
|
|
287
288
|
"cropToolDescription": "Drag the corners of the selected area, draw a new area or adjust the values below.",
|
|
288
289
|
"dragAndDrop": "Drag and drop a file",
|
|
@@ -295,6 +296,7 @@
|
|
|
295
296
|
"height": "Height",
|
|
296
297
|
"lessInfo": "Less info",
|
|
297
298
|
"moreInfo": "More info",
|
|
299
|
+
"pasteURL": "Paste URL",
|
|
298
300
|
"previewSizes": "Preview Sizes",
|
|
299
301
|
"selectCollectionToBrowse": "Select a Collection to Browse",
|
|
300
302
|
"selectFile": "Select a file",
|