payload 2.0.0-beta.24 → 2.0.0-beta.27
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/DocumentControls/index.d.ts +1 -1
- package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentControls/index.js +2 -2
- package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +3 -2
- package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +7 -3
- package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.d.ts.map +1 -1
- package/dist/admin/components/elements/DocumentHeader/Tabs/tabs.js +10 -2
- package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts +4 -0
- package/dist/admin/components/elements/DocumentHeader/Tabs/types.d.ts.map +1 -1
- package/dist/admin/components/elements/Drawer/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Drawer/index.js +4 -3
- package/dist/admin/components/elements/Drawer/types.d.ts +1 -0
- package/dist/admin/components/elements/Drawer/types.d.ts.map +1 -1
- package/dist/admin/components/elements/Dropzone/index.d.ts +10 -0
- package/dist/admin/components/elements/Dropzone/index.d.ts.map +1 -0
- package/dist/admin/components/elements/Dropzone/index.js +120 -0
- package/dist/admin/components/elements/Dropzone/index.scss +52 -0
- package/dist/admin/components/elements/EditUpload/index.d.ts +13 -0
- package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -0
- package/dist/admin/components/elements/EditUpload/index.js +378 -0
- package/dist/admin/components/elements/EditUpload/index.scss +218 -0
- package/dist/admin/components/elements/FileDetails/index.d.ts.map +1 -1
- package/dist/admin/components/elements/FileDetails/index.js +14 -99
- package/dist/admin/components/elements/FileDetails/index.scss +21 -0
- package/dist/admin/components/elements/FileDetails/types.d.ts +3 -0
- package/dist/admin/components/elements/FileDetails/types.d.ts.map +1 -1
- package/dist/admin/components/elements/Hamburger/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Hamburger/index.js +6 -4
- package/dist/admin/components/elements/PreviewSizes/index.d.ts +14 -0
- package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -0
- package/dist/admin/components/elements/PreviewSizes/index.js +146 -0
- package/dist/admin/components/elements/PreviewSizes/index.scss +146 -0
- package/dist/admin/components/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/admin/components/elements/Thumbnail/index.js +61 -7
- package/dist/admin/components/elements/Thumbnail/types.d.ts +4 -2
- package/dist/admin/components/elements/Thumbnail/types.d.ts.map +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts +2 -2
- package/dist/admin/components/forms/Form/buildStateFromSchema/index.d.ts.map +1 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema/index.js +1 -1
- package/dist/admin/components/utilities/FormQueryParams/index.d.ts +17 -0
- package/dist/admin/components/utilities/FormQueryParams/index.d.ts.map +1 -0
- package/dist/admin/components/utilities/FormQueryParams/index.js +23 -0
- package/dist/admin/components/utilities/Locale/index.d.ts +2 -2
- package/dist/admin/components/utilities/Locale/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/Locale/index.js +2 -2
- package/dist/admin/components/utilities/OperationProvider/index.d.ts +1 -1
- package/dist/admin/components/utilities/OperationProvider/index.d.ts.map +1 -1
- package/dist/admin/components/utilities/OperationProvider/index.js +2 -2
- package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts +1 -1
- package/dist/admin/components/utilities/RenderCustomComponent/types.d.ts.map +1 -1
- package/dist/admin/components/views/Account/Default.d.ts.map +1 -1
- package/dist/admin/components/views/Account/Default.js +4 -4
- package/dist/admin/components/views/Account/index.d.ts.map +1 -1
- package/dist/admin/components/views/Account/index.js +10 -6
- package/dist/admin/components/views/Dashboard/index.d.ts.map +1 -1
- package/dist/admin/components/views/Dashboard/index.js +1 -1
- package/dist/admin/components/views/Global/Routes/custom.d.ts +2 -2
- package/dist/admin/components/views/Global/Routes/custom.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Routes/custom.js +1 -1
- package/dist/admin/components/views/Global/Routes/index.d.ts.map +1 -1
- package/dist/admin/components/views/Global/Routes/index.js +4 -3
- package/dist/admin/components/views/Global/index.d.ts.map +1 -1
- package/dist/admin/components/views/Global/index.js +8 -4
- package/dist/admin/components/views/LivePreview/Context/context.d.ts +4 -4
- package/dist/admin/components/views/LivePreview/Context/context.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Context/context.js +1 -1
- package/dist/admin/components/views/LivePreview/Context/index.d.ts +2 -2
- package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Context/index.js +1 -1
- package/dist/admin/components/views/LivePreview/DeviceContainer/index.js +2 -2
- package/dist/admin/components/views/LivePreview/Preview/index.d.ts +2 -0
- package/dist/admin/components/views/LivePreview/Preview/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/Preview/index.js +4 -11
- package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
- package/dist/admin/components/views/LivePreview/index.js +22 -4
- package/dist/admin/components/views/Login/index.js +2 -2
- package/dist/admin/components/views/Routes/collections.d.ts.map +1 -1
- package/dist/admin/components/views/Routes/collections.js +1 -1
- package/dist/admin/components/views/Routes/custom.d.ts +3 -3
- package/dist/admin/components/views/Routes/custom.d.ts.map +1 -1
- package/dist/admin/components/views/Routes/custom.js +1 -1
- package/dist/admin/components/views/Routes/globals.d.ts.map +1 -1
- package/dist/admin/components/views/Routes/globals.js +1 -1
- package/dist/admin/components/views/Routes/index.js +5 -5
- package/dist/admin/components/views/Verify/index.js +1 -1
- package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Default/index.js +6 -6
- package/dist/admin/components/views/collections/Edit/Routes/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Routes/index.js +4 -3
- package/dist/admin/components/views/collections/Edit/Upload/index.d.ts +7 -2
- package/dist/admin/components/views/collections/Edit/Upload/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/Upload/index.js +116 -121
- package/dist/admin/components/views/collections/Edit/Upload/index.scss +68 -68
- package/dist/admin/components/views/collections/Edit/Upload/types.d.ts +2 -3
- package/dist/admin/components/views/collections/Edit/Upload/types.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/formatFields.d.ts +1 -1
- package/dist/admin/components/views/collections/Edit/formatFields.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/formatFields.js +1 -1
- package/dist/admin/components/views/collections/Edit/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/Edit/index.js +33 -6
- package/dist/admin/components/views/collections/Edit/types.d.ts +12 -0
- package/dist/admin/components/views/collections/Edit/types.d.ts.map +1 -1
- package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.d.ts +4 -1
- package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.js +7 -3
- package/dist/admin/components/views/collections/List/Cell/field-types/Code/index.scss +7 -2
- package/dist/admin/components/views/collections/List/Cell/field-types/index.d.ts +1 -1
- package/dist/admin/components/views/collections/List/Cell/index.d.ts.map +1 -1
- package/dist/admin/components/views/collections/List/Cell/index.js +11 -1
- package/dist/admin/components/views/types.d.ts +8 -8
- package/dist/admin/components/views/types.d.ts.map +1 -1
- package/dist/collections/config/schema.d.ts.map +1 -1
- package/dist/collections/config/schema.js +4 -10
- package/dist/collections/config/types.d.ts +2 -2
- package/dist/collections/config/types.d.ts.map +1 -1
- package/dist/collections/config/types.js +1 -1
- package/dist/collections/dataloader.js +2 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +7 -1
- package/dist/config/shared/componentSchema.d.ts +4 -0
- package/dist/config/shared/componentSchema.d.ts.map +1 -1
- package/dist/config/shared/componentSchema.js +13 -1
- package/dist/config/types.d.ts +20 -11
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +1 -1
- package/dist/database/migrations/migrateRefresh.d.ts +1 -1
- package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
- package/dist/database/migrations/migrateRefresh.js +59 -7
- package/dist/database/migrations/migrationTemplate.d.ts +1 -1
- package/dist/database/migrations/migrationTemplate.d.ts.map +1 -1
- package/dist/database/migrations/migrationTemplate.js +2 -2
- package/dist/exports/utilities.d.ts +2 -0
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +9 -1
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +4 -9
- package/dist/globals/config/schema.d.ts.map +1 -1
- package/dist/globals/config/schema.js +2 -10
- package/dist/globals/config/types.d.ts +3 -3
- package/dist/globals/config/types.d.ts.map +1 -1
- package/dist/translations/ar.json +14 -2
- package/dist/translations/az.json +14 -2
- package/dist/translations/bg.json +14 -2
- package/dist/translations/cs.json +14 -2
- package/dist/translations/de.json +14 -2
- package/dist/translations/en.json +12 -0
- package/dist/translations/es.json +14 -2
- package/dist/translations/fa.json +14 -2
- package/dist/translations/fr.json +14 -2
- package/dist/translations/hr.json +14 -2
- package/dist/translations/hu.json +14 -2
- package/dist/translations/index.d.ts +340 -26
- package/dist/translations/index.d.ts.map +1 -1
- package/dist/translations/it.json +16 -3
- package/dist/translations/ja.json +14 -2
- package/dist/translations/my.json +14 -2
- package/dist/translations/nb.json +14 -2
- package/dist/translations/nl.json +14 -2
- package/dist/translations/pl.json +15 -2
- package/dist/translations/pt.json +14 -2
- package/dist/translations/ro.json +14 -2
- package/dist/translations/ru.json +14 -2
- package/dist/translations/sv.json +14 -2
- package/dist/translations/th.json +14 -2
- package/dist/translations/tr.json +14 -2
- package/dist/translations/translation-schema.json +36 -0
- package/dist/translations/ua.json +14 -2
- package/dist/translations/vi.json +14 -2
- package/dist/translations/zh.json +14 -2
- package/dist/uploads/cropImage.d.ts +12 -0
- package/dist/uploads/cropImage.d.ts.map +1 -0
- package/dist/uploads/cropImage.js +47 -0
- package/dist/uploads/generateFileData.d.ts.map +1 -1
- package/dist/uploads/generateFileData.js +49 -14
- package/dist/uploads/imageResizer.d.ts +6 -1
- package/dist/uploads/imageResizer.d.ts.map +1 -1
- package/dist/uploads/imageResizer.js +48 -3
- package/dist/uploads/types.d.ts +5 -1
- package/dist/uploads/types.d.ts.map +1 -1
- package/dist/uploads/types.js +1 -1
- package/dist/utilities/getIDType.d.ts +2 -1
- package/dist/utilities/getIDType.d.ts.map +1 -1
- package/dist/utilities/getIDType.js +3 -3
- package/package.json +2 -5
- package/utilities.d.ts +2 -0
- package/utilities.js +9 -1
package/dist/config/types.js
CHANGED
|
@@ -23,4 +23,4 @@ function hasTransportOptions(emailConfig) {
|
|
|
23
23
|
return emailConfig.transportOptions !== undefined;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHByZXNzLCBOZXh0RnVuY3Rpb24sIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IEluaXRPcHRpb25zIGFzIGkxOG5Jbml0T3B0aW9ucyB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBSZXF1aXJlZCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICd3ZWJwYWNrJ1xuLy8gQHRzLWV4cGVjdC1lcnJvclxuaW1wb3J0IHR5cGUgeyBJbmxpbmVDb25maWcgfSBmcm9tICd2aXRlJ1xuXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50VGFiIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9lbGVtZW50cy9Eb2N1bWVudEhlYWRlci9UYWJzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uRWRpdFZpZXdQcm9wcywgR2xvYmFsRWRpdFZpZXdQcm9wcyB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdmlld3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuLi9hdXRoL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkQnVuZGxlciB9IGZyb20gJy4uL2J1bmRsZXJzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBZnRlckVycm9ySG9vayxcbiAgQ29sbGVjdGlvbkNvbmZpZyxcbiAgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyxcbn0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAnLi4vZGF0YWJhc2UvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgR2xvYmFsQ29uZmlnLCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgfSBmcm9tICcuLi9nbG9iYWxzL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZCB9IGZyb20gJy4uL3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IFdoZXJlIH0gZnJvbSAnLi4vdHlwZXMnXG5cbnR5cGUgUHJldHRpZnk8VD4gPSB7XG4gIFtLIGluIGtleW9mIFRdOiBUW0tdXG59ICYgTm9uTnVsbGFibGU8dW5rbm93bj5cblxudHlwZSBFbWFpbCA9IHtcbiAgZnJvbUFkZHJlc3M6IHN0cmluZ1xuICBmcm9tTmFtZTogc3RyaW5nXG4gIGxvZ01vY2tDcmVkZW50aWFscz86IGJvb2xlYW5cbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVzZS1iZWZvcmUtZGVmaW5lXG5leHBvcnQgdHlwZSBQbHVnaW4gPSAoY29uZmlnOiBDb25maWcpID0+IENvbmZpZyB8IFByb21pc2U8Q29uZmlnPlxuXG5leHBvcnQgdHlwZSBMaXZlUHJldmlldyA9IHtcbiAgLyoqXG4gICAgRGV2aWNlIGJyZWFrcG9pbnRzIHRvIHVzZSBmb3IgdGhlIGBpZnJhbWVgIG9mIHRoZSBMaXZlIFByZXZpZXcgd2luZG93LlxuICAgIE9wdGlvbnMgYXJlIGRpc3BsYXllZCBpbiB0aGUgTGl2ZSBQcmV2aWV3IHRvb2xiYXIuXG4gICAgVGhlIGByZXNwb25zaXZlYCBicmVha3BvaW50IGlzIGluY2x1ZGVkIGJ5IGRlZmF1bHQuXG4gICovXG4gIGJyZWFrcG9pbnRzPzoge1xuICAgIGhlaWdodDogbnVtYmVyIHwgc3RyaW5nXG4gICAgbGFiZWw6IHN0cmluZ1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIHdpZHRoOiBudW1iZXIgfCBzdHJpbmdcbiAgfVtdXG4gIC8qKlxuICAgIFRoZSBVUkwgb2YgdGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uLiBUaGlzIHdpbGwgYmUgcmVuZGVyZWQgd2l0aGluIGFuIGBpZnJhbWVgIGFzIGl0cyBgc3JjYC5cbiAgICBQYXlsb2FkIHdpbGwgc2VuZCBhIGB3aW5kb3cucG9zdE1lc3NhZ2UoKWAgdG8gdGhpcyBVUkwgd2l0aCB0aGUgZG9jdW1lbnQgZGF0YSBpbiByZWFsLXRpbWUuXG4gICAgVGhlIGZyb250ZW5kIGFwcGxpY2F0aW9uIGlzIHJlc3BvbnNpYmxlIGZvciByZWNlaXZpbmcgdGhlIG1lc3NhZ2UgYW5kIHVwZGF0aW5nIHRoZSBVSSBhY2NvcmRpbmdseS5cbiAgICBVc2UgdGhlIGB1c2VMaXZlUHJldmlld2AgaG9vayB0byBnZXQgc3RhcnRlZCBpbiBSZWFjdCBhcHBsaWNhdGlvbnMuXG4gICovXG4gIHVybD86IHN0cmluZ1xufVxuXG50eXBlIEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMgPSB7XG4gIGxvY2FsZTogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMID0gKFxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBvcHRpb25zOiBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zLFxuKSA9PiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydCA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ/OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zOiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsT3B0aW9ucyA9IEVtYWlsIHwgRW1haWxUcmFuc3BvcnQgfCBFbWFpbFRyYW5zcG9ydE9wdGlvbnNcblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0KGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMpOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydCB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnQpLnRyYW5zcG9ydCAhPT0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydE9wdGlvbnMoXG4gIGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMsXG4pOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucykudHJhbnNwb3J0T3B0aW9ucyAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxFeHRlbnNpb24gPSAoXG4gIGdyYXBoUUw6IHR5cGVvZiBHcmFwaFFMLFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG5leHBvcnQgdHlwZSBJbml0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2l0aCB0aGUgbG9jYWwgQVBJLCB5b3UgbWlnaHQgbmVlZCB0byBwYXNzIGEgY29uZmlnIGZpbGUgZGlyZWN0bHksIGZvciBleGFtcGxlLCBzZXJ2ZXJsZXNzIG9uIFZlcmNlbFxuICAgKiBUaGUgcGFzc2VkIGNvbmZpZyBzaG91bGQgbWF0Y2ggdGhlIGNvbmZpZyBmaWxlLCBhbmQgaWYgaXQgZG9lc24ndCwgdGhlcmUgY291bGQgYmUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBhZG1pbiBVSVxuICAgKiBhbmQgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgY29uZmlnPzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+XG5cbiAgLyoqXG4gICAqIERpc2FibGUgcnVubmluZyBvZiB0aGUgYG9uSW5pdGAgZnVuY3Rpb25cbiAgICovXG4gIGRpc2FibGVPbkluaXQ/OiBib29sZWFuXG5cbiAgLyoqXG4gICAqIERpc2FibGUgY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugb24gaW5pdFxuICAgKi9cbiAgZGlzYWJsZURCQ29ubmVjdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgUGF5bG9hZCdzIGVtYWlsIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG5cbiAgLyoqIEV4cHJlc3MgYXBwIGZvciBQYXlsb2FkIHRvIHVzZSAqL1xuICBleHByZXNzPzogRXhwcmVzc1xuXG4gIC8qKlxuICAgKiBNYWtlIFBheWxvYWQgc3RhcnQgaW4gbG9jYWwtb25seSBtb2RlLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYnlwYXNzIHNldHRpbmcgdXAgUkVTVCBhbmQgR3JhcGhRTCBBUEkgcm91dGVzLlxuICAgKiBFeHByZXNzIHdpbGwgbm90IGJlIHJlcXVpcmVkIGlmIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBsb2NhbD86IGJvb2xlYW5cblxuICBsb2dnZXJEZXN0aW5hdGlvbj86IERlc3RpbmF0aW9uU3RyZWFtXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIHRoZSBidWlsdC1pbiBQaW5vIGxvZ2dlciB0aGF0IFBheWxvYWQgdXNlcyBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cbiAgICpcbiAgICogU2VlIFBpbm8gRG9jcyBmb3Igb3B0aW9uczogaHR0cHM6Ly9nZXRwaW5vLmlvLyMvZG9jcy9hcGk/aWQ9b3B0aW9uc1xuICAgKi9cbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnNcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0J3Mgb25seSBhcmd1bWVudC5cbiAgICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxuXG4gIC8qKiBTZWN1cmUgc3RyaW5nIHRoYXQgUGF5bG9hZCB3aWxsIHVzZSBmb3IgYW55IGVuY3J5cHRpb24gd29ya2Zsb3dzICovXG4gIHNlY3JldDogc3RyaW5nXG59XG5cbi8qKlxuICogVGhpcyByZXN1bHQgaXMgY2FsY3VsYXRlZCBvbiB0aGUgc2VydmVyXG4gKiBhbmQgdGhlbiBzZW50IHRvIHRoZSBjbGllbnQgYWxsb3dpbmcgdGhlIGRhc2hib2FyZCB0byBzaG93IGFjY2Vzc2libGUgZGF0YSBhbmQgYWN0aW9ucy5cbiAqXG4gKiBJZiB0aGUgcmVzdWx0IGlzIGB0cnVlYCwgdGhlIHVzZXIgaGFzIGFjY2Vzcy5cbiAqIElmIHRoZSByZXN1bHQgaXMgYW4gb2JqZWN0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIE1vbmdvREIgcXVlcnkuXG4gKlxuICogQGV4YW1wbGUgYHsgY3JlYXRlZEJ5OiB7IGVxdWFsczogaWQgfSB9YFxuICpcbiAqIEBleGFtcGxlIGB7IHRlbmFudDogeyBpbjogdGVuYW50SWRzIH0gfWBcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBBY2Nlc3NSZXN1bHQgPSBXaGVyZSB8IGJvb2xlYW5cblxuZXhwb3J0IHR5cGUgQWNjZXNzQXJnczxUID0gYW55LCBVID0gYW55PiA9IHtcbiAgLyoqXG4gICAqIFRoZSByZWxldmFudCByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkLlxuICAgKlxuICAgKiBgZGF0YWAgaXMgbnVsbCB3aGVuIGEgbGlzdCBpcyByZXF1ZXN0ZWRcbiAgICovXG4gIGRhdGE/OiBUXG4gIC8qKiBJRCBvZiB0aGUgcmVzb3VyY2UgYmVpbmcgYWNjZXNzZWQgKi9cbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqIFRoZSBvcmlnaW5hbCByZXF1ZXN0IHRoYXQgcmVxdWlyZXMgYW4gYWNjZXNzIGNoZWNrICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbn1cblxuLyoqXG4gKiBBY2Nlc3MgZnVuY3Rpb24gcnVucyBvbiB0aGUgc2VydmVyXG4gKiBhbmQgaXMgc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzPFQgPSBhbnksIFUgPSBhbnk+ID0gKFxuICBhcmdzOiBBY2Nlc3NBcmdzPFQsIFU+LFxuKSA9PiBBY2Nlc3NSZXN1bHQgfCBQcm9taXNlPEFjY2Vzc1Jlc3VsdD5cblxuLyoqIEVxdWl2YWxlbnQgdG8gZXhwcmVzcyBtaWRkbGV3YXJlLCBidXQgd2l0aCBhbiBlbmhhbmNlZCByZXF1ZXN0IG9iamVjdCAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkSGFuZGxlciB7XG4gIChyZXE6IFBheWxvYWRSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkXG59XG5cbi8qKlxuICogRG9jczogaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3Jlc3QtYXBpL292ZXJ2aWV3I2N1c3RvbS1lbmRwb2ludHNcbiAqL1xuZXhwb3J0IHR5cGUgRW5kcG9pbnQgPSB7XG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgLyoqXG4gICAqIE1pZGRsZXdhcmUgdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBwYXRoL21ldGhvZCBtYXRjaGVzXG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCBFeHByZXNzIG1pZGRsZXdhcmVcbiAgICovXG4gIGhhbmRsZXI6IFBheWxvYWRIYW5kbGVyIHwgUGF5bG9hZEhhbmRsZXJbXVxuICAvKiogSFRUUCBtZXRob2QgKG9yIFwiYWxsXCIpICovXG4gIG1ldGhvZDogJ2Nvbm5lY3QnIHwgJ2RlbGV0ZScgfCAnZ2V0JyB8ICdoZWFkJyB8ICdvcHRpb25zJyB8ICdwYXRjaCcgfCAncG9zdCcgfCAncHV0J1xuICAvKipcbiAgICogUGF0dGVybiB0aGF0IHNob3VsZCBtYXRjaCB0aGUgcGF0aCBvZiB0aGUgaW5jb21pbmcgcmVxdWVzdFxuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggdGhlIEV4cHJlc3Mgcm91dGVyXG4gICAqL1xuICBwYXRoOiBzdHJpbmdcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgUGF5bG9hZCBtaWRkbGV3YXJlIGZvciB0aGlzIGVuZHBvaW50XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByb290PzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBDdXN0b21BZG1pblZpZXcgPSBSZWFjdC5Db21wb25lbnRUeXBlPHtcbiAgY2FuQWNjZXNzQWRtaW46IGJvb2xlYW5cbiAgY29sbGVjdGlvbj86IFNhbml0aXplZENvbGxlY3Rpb25Db25maWdcbiAgZ2xvYmFsPzogU2FuaXRpemVkR2xvYmFsQ29uZmlnXG4gIHVzZXI6IFVzZXJcbn0+XG5cbmV4cG9ydCB0eXBlIEVkaXRWaWV3Q29uZmlnID0ge1xuICAvKipcbiAgICogVGhlIGNvbXBvbmVudCB0byByZW5kZXIgZm9yIHRoaXMgdmlld1xuICAgKiArIFJlcGxhY2VzIHRoZSBkZWZhdWx0IGNvbXBvbmVudFxuICAgKi9cbiAgQ29tcG9uZW50OiBFZGl0Vmlld0NvbXBvbmVudFxuICBUYWI6IERvY3VtZW50VGFiXG4gIHBhdGg6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBFZGl0Vmlld0NvbXBvbmVudCA9IFJlYWN0LkNvbXBvbmVudFR5cGU8Q29sbGVjdGlvbkVkaXRWaWV3UHJvcHMgfCBHbG9iYWxFZGl0Vmlld1Byb3BzPlxuXG5leHBvcnQgdHlwZSBFZGl0VmlldyA9IEVkaXRWaWV3Q29tcG9uZW50IHwgRWRpdFZpZXdDb25maWdcblxuZXhwb3J0IHR5cGUgQWRtaW5Sb3V0ZSA9IHtcbiAgQ29tcG9uZW50OiBDdXN0b21BZG1pblZpZXdcbiAgLyoqIFdoZXRoZXIgdGhlIHBhdGggc2hvdWxkIGJlIG1hdGNoZWQgZXhhY3RseSBvciBhcyBhIHByZWZpeCAqL1xuICBleGFjdD86IGJvb2xlYW5cbiAgcGF0aDogc3RyaW5nXG4gIHNlbnNpdGl2ZT86IGJvb2xlYW5cbiAgc3RyaWN0PzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBMb2NhbGUgPSB7XG4gIC8qKlxuICAgKiB2YWx1ZSBvZiBzdXBwb3J0ZWQgbG9jYWxlXG4gICAqIEBleGFtcGxlIFwiZW5cIlxuICAgKi9cbiAgY29kZTogc3RyaW5nXG4gIC8qKlxuICAgKiBsYWJlbCBvZiBzdXBwb3J0ZWQgbG9jYWxlXG4gICAqIEBleGFtcGxlIFwiRW5nbGlzaFwiXG4gICAqL1xuICBsYWJlbDogc3RyaW5nXG4gIC8qKlxuICAgKiBpZiB0cnVlLCBkZWZhdWx0cyB0ZXh0QWxpZ21uZW50IG9uIHRleHQgZmllbGRzIHRvIFJUTFxuICAgKi9cbiAgcnRsPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBCYXNlTG9jYWxpemF0aW9uQ29uZmlnID0ge1xuICAvKipcbiAgICogTG9jYWxlIGZvciB1c2VycyB0aGF0IGhhdmUgbm90IGV4cHJlc3NlZCB0aGVpciBwcmVmZXJlbmNlIGZvciBhIHNwZWNpZmljIGxvY2FsZVxuICAgKiBAZXhhbXBsZSBgXCJlblwiYFxuICAgKi9cbiAgZGVmYXVsdExvY2FsZTogc3RyaW5nXG4gIC8qKiBTZXQgdG8gYHRydWVgIHRvIGxldCBtaXNzaW5nIHZhbHVlcyBpbiBsb2NhbGlzZWQgZmllbGRzIGZhbGwgYmFjayB0byB0aGUgdmFsdWVzIGluIGBkZWZhdWx0TG9jYWxlYCAqL1xuICBmYWxsYmFjaz86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlc1xuICAgICAqIEBleGFtcGxlIGBbXCJlblwiLCBcImVzXCIsIFwiZnJcIiwgXCJubFwiLCBcImRlXCIsIFwianBcIl1gXG4gICAgICovXG4gICAgbG9jYWxlczogc3RyaW5nW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzID0gUHJldHRpZnk8XG4gIEJhc2VMb2NhbGl6YXRpb25Db25maWcgJiB7XG4gICAgLyoqXG4gICAgICogTGlzdCBvZiBzdXBwb3J0ZWQgbG9jYWxlcyB3aXRoIGxhYmVsc1xuICAgICAqIEBleGFtcGxlIHtcbiAgICAgKiAgbGFiZWw6ICdFbmdsaXNoJyxcbiAgICAgKiAgdmFsdWU6ICdlbicsXG4gICAgICogIHJ0bDogZmFsc2VcbiAgICAgKiB9XG4gICAgICovXG4gICAgbG9jYWxlczogTG9jYWxlW11cbiAgfVxuPlxuXG5leHBvcnQgdHlwZSBTYW5pdGl6ZWRMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVDb2Rlczogc3RyaW5nW11cbiAgfVxuPlxuXG4vKipcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vbG9jYWxpemF0aW9uI2xvY2FsaXphdGlvblxuICovXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWcgPSBQcmV0dGlmeTxcbiAgTG9jYWxpemF0aW9uQ29uZmlnV2l0aExhYmVscyB8IExvY2FsaXphdGlvbkNvbmZpZ1dpdGhOb0xhYmVsc1xuPlxuXG4vKipcbiAqIFRoaXMgaXMgdGhlIGNlbnRyYWwgY29uZmlndXJhdGlvblxuICpcbiAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQ29uZmlnID0ge1xuICAvKiogQ29uZmlndXJlIGFkbWluIGRhc2hib2FyZCAqL1xuICBhZG1pbj86IHtcbiAgICAvKiogQXV0b21hdGljYWxseSBsb2cgaW4gYXMgYSB1c2VyIHdoZW4gdmlzaXRpbmcgdGhlIGFkbWluIGRhc2hib2FyZC4gKi9cbiAgICBhdXRvTG9naW4/OlxuICAgICAgfCB7XG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogVGhlIGVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgdG8gbG9naW4gYXNcbiAgICAgICAgICAgKlxuICAgICAgICAgICAqL1xuICAgICAgICAgIGVtYWlsOiBzdHJpbmdcbiAgICAgICAgICAvKiogVGhlIHBhc3N3b3JkIG9mIHRoZSB1c2VyIHRvIGxvZ2luIGFzICovXG4gICAgICAgICAgcGFzc3dvcmQ6IHN0cmluZ1xuICAgICAgICAgIC8qKlxuICAgICAgICAgICAqIElmIHNldCB0byB0cnVlLCB0aGUgbG9naW4gY3JlZGVudGlhbHMgd2lsbCBiZSBwcmVmaWxsZWQgYnV0IHRoZSB1c2VyIHdpbGwgc3RpbGwgbmVlZCB0byBjbGljayB0aGUgbG9naW4gYnV0dG9uLlxuICAgICAgICAgICAqXG4gICAgICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgICAgKi9cbiAgICAgICAgICBwcmVmaWxsT25seT86IGJvb2xlYW5cbiAgICAgICAgfVxuICAgICAgfCBmYWxzZVxuXG4gICAgLyoqIFNldCBhY2NvdW50IHByb2ZpbGUgcGljdHVyZS4gT3B0aW9uczogZ3JhdmF0YXIsIGRlZmF1bHQgb3IgYSBjdXN0b20gUmVhY3QgY29tcG9uZW50LiAqL1xuICAgIGF2YXRhcj86ICdkZWZhdWx0JyB8ICdncmF2YXRhcicgfCBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAvKipcbiAgICAgKiBTcGVjaWZ5IGFuIGFic29sdXRlIHBhdGggZm9yIHdoZXJlIHRvIHN0b3JlIHRoZSBidWlsdCBBZG1pbiBwYW5lbCBidW5kbGUgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgXCIvYnVpbGRcIlxuICAgICAqICovXG4gICAgYnVpbGRQYXRoPzogc3RyaW5nXG4gICAgLyoqIEN1c3RvbWl6ZSB0aGUgYnVuZGxlciB1c2VkIHRvIHJ1biB5b3VyIGFkbWluIHBhbmVsLiAqL1xuICAgIGJ1bmRsZXI/OiBQYXlsb2FkQnVuZGxlclxuICAgIC8qKlxuICAgICAqIEFkZCBleHRyYSBhbmQvb3IgcmVwbGFjZSBidWlsdC1pbiBjb21wb25lbnRzIHdpdGggY3VzdG9tIGNvbXBvbmVudHNcbiAgICAgKlxuICAgICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FkbWluL2NvbXBvbmVudHNcbiAgICAgKi9cbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBSZXBsYWNlIHRoZSBuYXZpZ2F0aW9uIHdpdGggYSBjdXN0b20gY29tcG9uZW50XG4gICAgICAgKi9cbiAgICAgIE5hdj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYWZ0ZXIgdGhlIGNvbGxlY3Rpb24gb3ZlcnZpZXdcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJEYXNoYm9hcmQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYWZ0ZXIgdGhlIGVtYWlsL3Bhc3N3b3JkIGZpZWxkXG4gICAgICAgKi9cbiAgICAgIGFmdGVyTG9naW4/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYWZ0ZXIgdGhlIG5hdmlnYXRpb24gbGlua3NcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJOYXZMaW5rcz86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIGNvbGxlY3Rpb24gb3ZlcnZpZXdcbiAgICAgICAqL1xuICAgICAgYmVmb3JlRGFzaGJvYXJkPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgZW1haWwvcGFzc3dvcmQgZmllbGRcbiAgICAgICAqL1xuICAgICAgYmVmb3JlTG9naW4/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBuYXZpZ2F0aW9uIGxpbmtzXG4gICAgICAgKi9cbiAgICAgIGJlZm9yZU5hdkxpbmtzPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKiBSZXBsYWNlIGdyYXBoaWNhbCBjb21wb25lbnRzICovXG4gICAgICBncmFwaGljcz86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGljb24gaW4gdGhlIG5hdmlnYXRpb24gKi9cbiAgICAgICAgSWNvbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgICAvKiogUmVwbGFjZSB0aGUgbG9nbyBvbiB0aGUgbG9naW4gcGFnZSAqL1xuICAgICAgICBMb2dvPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICB9XG4gICAgICAvKiogUmVwbGFjZSBsb2dvdXQgcmVsYXRlZCBjb21wb25lbnRzICovXG4gICAgICBsb2dvdXQ/OiB7XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBsb2dvdXQgYnV0dG9uICAqL1xuICAgICAgICBCdXR0b24/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIH1cbiAgICAgIC8qKlxuICAgICAgICogV3JhcCB0aGUgYWRtaW4gZGFzaGJvYXJkIGluIGN1c3RvbSBjb250ZXh0IHByb3ZpZGVyc1xuICAgICAgICovXG4gICAgICBwcm92aWRlcnM/OiBSZWFjdC5Db21wb25lbnRUeXBlPHsgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZSB9PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gcm91dGVzIGluIHRoZSBhZG1pbiBkYXNoYm9hcmRcbiAgICAgICAqL1xuICAgICAgcm91dGVzPzogQWRtaW5Sb3V0ZVtdXG4gICAgICAvKiBSZXBsYWNlIGNvbXBsZXRlIHBhZ2VzICovXG4gICAgICB2aWV3cz86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFjY291bnQgc2NyZWVuICovXG4gICAgICAgIEFjY291bnQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGFkbWluIGhvbWVwYWdlICovXG4gICAgICAgIERhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgIH1cbiAgICAvKiogQWJzb2x1dGUgcGF0aCB0byBhIHN0eWxlc2hlZXQgdGhhdCB5b3UgY2FuIHVzZSB0byBvdmVycmlkZSAvIGN1c3RvbWl6ZSB0aGUgQWRtaW4gcGFuZWwgc3R5bGluZy4gKi9cbiAgICBjc3M/OiBzdHJpbmdcbiAgICAvKiogR2xvYmFsIGRhdGUgZm9ybWF0IHRoYXQgd2lsbCBiZSB1c2VkIGZvciBhbGwgZGF0ZXMgaW4gdGhlIEFkbWluIHBhbmVsLiBBbnkgdmFsaWQgZGF0ZS1mbnMgZm9ybWF0IHBhdHRlcm4gY2FuIGJlIHVzZWQuICovXG4gICAgZGF0ZUZvcm1hdD86IHN0cmluZ1xuICAgIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGVudGlyZSBBZG1pbiBwYW5lbCB3aWxsIGJlIGRpc2FibGVkLiAqL1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgLyoqIFRoZSByb3V0ZSB0aGUgdXNlciB3aWxsIGJlIHJlZGlyZWN0ZWQgdG8gYWZ0ZXIgYmVpbmcgaW5hY3RpdmUgZm9yIHRvbyBsb25nLiAqL1xuICAgIGluYWN0aXZpdHlSb3V0ZT86IHN0cmluZ1xuICAgIC8qKiBSZXBsYWNlIHRoZSBlbnRpcmV0eSBvZiB0aGUgaW5kZXguaHRtbCBmaWxlIHVzZWQgYnkgdGhlIEFkbWluIHBhbmVsLiBSZWZlcmVuY2UgdGhlIGJhc2UgaW5kZXguaHRtbCBmaWxlIHRvIGVuc3VyZSB5b3VyIHJlcGxhY2VtZW50IGhhcyB0aGUgYXBwcm9wcmlhdGUgSFRNTCBlbGVtZW50cy4gKi9cbiAgICBpbmRleEhUTUw/OiBzdHJpbmdcbiAgICAvKiogVGhlIHJvdXRlIGZvciB0aGUgbG9nb3V0IHBhZ2UuICovXG4gICAgbG9nb3V0Um91dGU/OiBzdHJpbmdcbiAgICAvKiogQmFzZSBtZXRhIGRhdGEgdG8gdXNlIGZvciB0aGUgQWRtaW4gcGFuZWwuIEluY2x1ZGVkIHByb3BlcnRpZXMgYXJlIHRpdGxlU3VmZml4LCBvZ0ltYWdlLCBhbmQgZmF2aWNvbi4gKi9cbiAgICBtZXRhPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBQdWJsaWMgcGF0aCB0byBhbiBpY29uXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGluIHRoZSBicm93c2VyIG5leHQgdG8gdGhlIHRpdGxlIG9mIHRoZSBwYWdlXG4gICAgICAgKi9cbiAgICAgIGZhdmljb24/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaW1hZ2VcbiAgICAgICAqXG4gICAgICAgKiBUaGlzIGltYWdlIG1heSBiZSBkaXNwbGF5ZWQgYXMgcHJldmlldyB3aGVuIHRoZSBsaW5rIGlzIHNoYXJlZCBvbiBzb2NpYWwgbWVkaWFcbiAgICAgICAqL1xuICAgICAgb2dJbWFnZT86IHN0cmluZ1xuICAgICAgLyoqXG4gICAgICAgKiBTdHJpbmcgdG8gYXBwZW5kIHRvIHRoZSA8dGl0bGU+IG9mIGFkbWluIHBhZ2VzXG4gICAgICAgKiBAZXhhbXBsZSBgXCIgLSBNeSBCcmFuZFwiYFxuICAgICAgICovXG4gICAgICB0aXRsZVN1ZmZpeD86IHN0cmluZ1xuICAgIH1cbiAgICAvKiogVGhlIHNsdWcgb2YgYSBDb2xsZWN0aW9uIHRoYXQgeW91IHdhbnQgYmUgdXNlZCB0byBsb2cgaW4gdG8gdGhlIEFkbWluIGRhc2hib2FyZC4gKi9cbiAgICB1c2VyPzogc3RyaW5nXG4gICAgLyoqIEN1c3RvbWl6ZSB0aGUgV2VicGFjayBjb25maWcgdGhhdCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIEFkbWluIHBhbmVsLiAqL1xuICAgIHdlYnBhY2s/OiAoY29uZmlnOiBDb25maWd1cmF0aW9uKSA9PiBDb25maWd1cmF0aW9uXG4gICAgLyoqIEN1c3RvbWl6ZSB0aGUgVml0ZSBjb25maWcgdGhhdCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIEFkbWluIHBhbmVsLiAqL1xuICAgIHZpdGU/OiAoY29uZmlnOiBJbmxpbmVDb25maWcpID0+IElubGluZUNvbmZpZ1xuICB9XG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIGRhdGFtb2RlbCBvZiB5b3VyIGFwcGxpY2F0aW9uXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vY29sbGVjdGlvbnMjY29sbGVjdGlvbi1jb25maWdzXG4gICAqL1xuICBjb2xsZWN0aW9ucz86IENvbGxlY3Rpb25Db25maWdbXVxuICAvKipcbiAgICogUmVwbGFjZSB0aGUgYnVpbHQtaW4gY29tcG9uZW50cyB3aXRoIGN1c3RvbSBvbmVzXG4gICAqL1xuICBjb21wb25lbnRzPzogeyBba2V5OiBzdHJpbmddOiAoKCkgPT4gSlNYLkVsZW1lbnQpIHwgSlNYLkVsZW1lbnQgfVxuICAvKipcbiAgICogUHJlZml4IGEgc3RyaW5nIHRvIGFsbCBjb29raWVzIHRoYXQgUGF5bG9hZCBzZXRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBheWxvYWRcIlxuICAgKi9cbiAgY29va2llUHJlZml4Pzogc3RyaW5nXG4gIC8qKiBFaXRoZXIgYSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMUyB0byBhbGxvdyBDT1JTIHJlcXVlc3RzIGZyb20sIG9yIGEgd2lsZGNhcmQgc3RyaW5nICgnKicpIHRvIGFjY2VwdCBpbmNvbWluZyByZXF1ZXN0cyBmcm9tIGFueSBkb21haW4uICovXG4gIGNvcnM/OiAnKicgfCBzdHJpbmdbXVxuXG4gIC8qKiBBIHdoaXRlbGlzdCBhcnJheSBvZiBVUkxzIHRvIGFsbG93IFBheWxvYWQgY29va2llcyB0byBiZSBhY2NlcHRlZCBmcm9tIGFzIGEgZm9ybSBvZiBDU1JGIHByb3RlY3Rpb24uICovXG4gIGNzcmY/OiBzdHJpbmdbXVxuXG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgLyoqIFBhc3MgaW4gYSBkYXRhYmFzZSBhZGFwdGVyIGZvciB1c2Ugb24gdGhpcyBwcm9qZWN0LiAqL1xuICBkYjogKGFyZ3M6IHsgcGF5bG9hZDogUGF5bG9hZCB9KSA9PiBCYXNlRGF0YWJhc2VBZGFwdGVyXG4gIC8qKiBFbmFibGUgdG8gZXhwb3NlIG1vcmUgZGV0YWlsZWQgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gIGRlYnVnPzogYm9vbGVhblxuICAvKipcbiAgICogSWYgYSB1c2VyIGRvZXMgbm90IHNwZWNpZnkgYGRlcHRoYCB3aGlsZSByZXF1ZXN0aW5nIGEgcmVzb3VyY2UsIHRoaXMgZGVwdGggd2lsbCBiZSB1c2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgZGVmYXVsdERlcHRoPzogbnVtYmVyXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCA0MDAwMFxuICAgKi9cbiAgZGVmYXVsdE1heFRleHRMZW5ndGg/OiBudW1iZXJcbiAgLyoqIERlZmF1bHQgcmljaHRleHQgZWRpdG9yIHRvIHVzZSBmb3IgcmljaFRleHQgZmllbGRzICovXG4gIGVkaXRvcjogUmljaFRleHRBZGFwdGVyXG4gIC8qKlxuICAgKiBFbWFpbCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIFRoaXMgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSBgZW1haWxgIGluIFBheWxvYWQuaW5pdCBpZiBwYXNzZWQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2VtYWlsL292ZXJ2aWV3XG4gICAqL1xuICBlbWFpbD86IEVtYWlsT3B0aW9uc1xuICAvKiogQ3VzdG9tIFJFU1QgZW5kcG9pbnRzICovXG4gIGVuZHBvaW50cz86IEVuZHBvaW50W11cbiAgLyoqXG4gICAqIEV4cHJlc3Mtc3BlY2lmaWMgbWlkZGxld2FyZSBvcHRpb25zIHN1Y2ggYXMgY29tcHJlc3Npb24gYW5kIEpTT04gcGFyc2luZy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9leHByZXNzXG4gICAqL1xuICBleHByZXNzPzoge1xuICAgIC8qKiBDb250cm9sIHRoZSB3YXkgcmVzcG9uc2VzIGFyZSBjb21wcmVzc2VkICovXG4gICAgY29tcHJlc3Npb24/OiB7XG4gICAgICBba2V5OiBzdHJpbmddOiB1bmtub3duXG4gICAgfVxuICAgIC8qKiBDb250cm9sIHRoZSB3YXkgSlNPTiBpcyBwYXJzZWQgKi9cbiAgICBqc29uPzoge1xuICAgICAgLyoqIERlZmF1bHRzIHRvIDJNQiAgKi9cbiAgICAgIGxpbWl0PzogbnVtYmVyXG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIGV4cHJlc3MubWlkZGxld2FyZSB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgdmVyc2lvbi4gUGxlYXNlIG1pZ3JhdGUgdG8gZXhwcmVzcy5wb3N0TWlkZGxld2FyZS5cbiAgICAgKi9cbiAgICBtaWRkbGV3YXJlPzogYW55W11cbiAgICBwb3N0TWlkZGxld2FyZT86IGFueVtdXG4gICAgcHJlTWlkZGxld2FyZT86IGFueVtdXG4gIH1cbiAgLyoqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZ2xvYmFscyNnbG9iYWwtY29uZmlnc1xuICAgKi9cbiAgZ2xvYmFscz86IEdsb2JhbENvbmZpZ1tdXG4gIC8qKlxuICAgKiBNYW5hZ2UgdGhlIEdyYXBoUUwgQVBJXG4gICAqXG4gICAqIFlvdSBjYW4gYWRkIHlvdXIgb3duIEdyYXBoUUwgcXVlcmllcyBhbmQgbXV0YXRpb25zIHRvIFBheWxvYWQsIG1ha2luZyB1c2Ugb2YgYWxsIHRoZSB0eXBlcyB0aGF0IFBheWxvYWQgaGFzIGRlZmluZWQgZm9yIHlvdS5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAgICovXG4gIGdyYXBoUUw/OiB7XG4gICAgZGlzYWJsZT86IGJvb2xlYW5cbiAgICBkaXNhYmxlUGxheWdyb3VuZEluUHJvZHVjdGlvbj86IGJvb2xlYW5cbiAgICBtYXhDb21wbGV4aXR5PzogbnVtYmVyXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIGtleXMgdG8gY3VzdG9tIEdyYXBoUUwgbXV0YXRpb25zXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICAgICAqL1xuICAgIG11dGF0aW9ucz86IEdyYXBoUUxFeHRlbnNpb25cbiAgICAvKipcbiAgICAgKiBGdW5jdGlvbiB0aGF0IHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcga2V5cyB0byBjdXN0b20gR3JhcGhRTCBxdWVyaWVzXG4gICAgICpcbiAgICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICAgICAqL1xuICAgIHF1ZXJpZXM/OiBHcmFwaFFMRXh0ZW5zaW9uXG4gICAgc2NoZW1hT3V0cHV0RmlsZT86IHN0cmluZ1xuICB9XG4gIC8qKlxuICAgKiBUYXAgaW50byBQYXlsb2FkLXdpZGUgaG9va3MuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2hvb2tzL292ZXJ2aWV3XG4gICAqL1xuICBob29rcz86IHtcbiAgICBhZnRlckVycm9yPzogQWZ0ZXJFcnJvckhvb2tcbiAgfVxuICAvKipcbiAgICogQ29udHJvbCB0aGUgYmVoYXZpb3VyIG9mIHRoZSBhZG1pbiBpbnRlcm5hdGlvbmFsaXNhdGlvbi5cbiAgICpcbiAgICogU2VlIGkxOG5leHQgb3B0aW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHRcbiAgICoge1xuICAgKiAgIGZhbGxiYWNrTG5nOiAnZW4nLFxuICAgKiAgIGRlYnVnOiBmYWxzZSxcbiAgICogICBzdXBwb3J0ZWRMbmdzOiBPYmplY3Qua2V5cyh0cmFuc2xhdGlvbnMpLFxuICAgKiAgIHJlc291cmNlczogdHJhbnNsYXRpb25zLFxuICAgKiB9XG4gICAqL1xuICBpMThuPzogaTE4bkluaXRPcHRpb25zXG4gIC8qKiBBdXRvbWF0aWNhbGx5IGluZGV4IGFsbCBzb3J0YWJsZSB0b3AtbGV2ZWwgZmllbGRzIGluIHRoZSBkYXRhYmFzZSB0byBpbXByb3ZlIHNvcnQgcGVyZm9ybWFuY2UgYW5kIGFkZCBkYXRhYmFzZSBjb21wYXRpYmlsaXR5IGZvciBBenVyZSBDb3Ntb3MgYW5kIHNpbWlsYXIuICovXG4gIGluZGV4U29ydGFibGVGaWVsZHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBUcmFuc2xhdGUgeW91ciBjb250ZW50IHRvIGRpZmZlcmVudCBsYW5ndWFnZXMvbG9jYWxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2UgLy8gZGlzYWJsZSBsb2NhbGl6YXRpb25cbiAgICovXG4gIGxvY2FsaXphdGlvbj86IExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBhbGxvd2VkIGRlcHRoIHRvIGJlIHBlcm1pdHRlZCBhcHBsaWNhdGlvbi13aWRlLiBUaGlzIHNldHRpbmcgaGVscHMgcHJldmVudCBhZ2FpbnN0IG1hbGljaW91cyBxdWVyaWVzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9nZXR0aW5nLXN0YXJ0ZWQvY29uY2VwdHMjZGVwdGhcbiAgICpcbiAgICogQGRlZmF1bHQgMTBcbiAgICovXG4gIG1heERlcHRoPzogbnVtYmVyXG4gIC8qKiBBIGZ1bmN0aW9uIHRoYXQgaXMgY2FsbGVkIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBzdGFydHVwIHRoYXQgcmVjZWl2ZXMgdGhlIFBheWxvYWQgaW5zdGFuY2UgYXMgaXRzIG9ubHkgYXJndW1lbnQuICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgUGF5bG9hZCBwbHVnaW5zLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9wbHVnaW5zL292ZXJ2aWV3XG4gICAqL1xuICBwbHVnaW5zPzogUGx1Z2luW11cbiAgLyoqXG4gICAqIExpbWl0IGhlYXZ5IHVzYWdlXG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqIHtcbiAgICogICB3aW5kb3c6IDE1ICogNjAgKiAxMDAsIC8vIDEuNSBtaW51dGVzLFxuICAgKiAgIG1heDogNTAwLFxuICAgKiB9XG4gICAqL1xuICByYXRlTGltaXQ/OiB7XG4gICAgbWF4PzogbnVtYmVyXG4gICAgc2tpcD86IChyZXE6IFBheWxvYWRSZXF1ZXN0KSA9PiBib29sZWFuXG4gICAgdHJ1c3RQcm94eT86IGJvb2xlYW5cbiAgICB3aW5kb3c/OiBudW1iZXJcbiAgfVxuICAvKiogQ29udHJvbCB0aGUgcm91dGluZyBzdHJ1Y3R1cmUgdGhhdCBQYXlsb2FkIGJpbmRzIGl0c2VsZiB0by4gKi9cbiAgcm91dGVzPzoge1xuICAgIC8qKiBAZGVmYXVsdCBcIi9hZG1pblwiICovXG4gICAgYWRtaW4/OiBzdHJpbmdcbiAgICAvKiogQGRlZmF1bHQgXCIvYXBpXCIgICovXG4gICAgYXBpPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2dyYXBocWxcIiAgKi9cbiAgICBncmFwaFFMPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL3BsYXlncm91bmRcIiAqL1xuICAgIGdyYXBoUUxQbGF5Z3JvdW5kPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIERlZmluZSB0aGUgYWJzb2x1dGUgVVJMIG9mIHlvdXIgYXBwIGluY2x1ZGluZyB0aGUgcHJvdG9jb2wsIGZvciBleGFtcGxlIGBodHRwczovL2V4YW1wbGUub3JnYC5cbiAgICogTm8gcGF0aHMgYWxsb3dlZCwgb25seSBwcm90b2NvbCwgZG9tYWluIGFuZCAob3B0aW9uYWxseSkgcG9ydC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9vdmVydmlldyNvcHRpb25zXG4gICAqL1xuICBzZXJ2ZXJVUkw/OiBzdHJpbmdcbiAgLyoqIFNlbmQgYW5vbnltb3VzIHRlbGVtZXRyeSBkYXRhIGFib3V0IGdlbmVyYWwgdXNhZ2UuICovXG4gIHRlbGVtZXRyeT86IGJvb2xlYW5cbiAgLyoqIENvbnRyb2wgaG93IHR5cGVzY3JpcHQgaW50ZXJmYWNlcyBhcmUgZ2VuZXJhdGVkIGZyb20geW91ciBjb2xsZWN0aW9ucy4gKi9cbiAgdHlwZXNjcmlwdD86IHtcbiAgICAvKiogRmlsZW5hbWUgdG8gd3JpdGUgdGhlIGdlbmVyYXRlZCB0eXBlcyB0byAqL1xuICAgIG91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogQ3VzdG9taXplIHRoZSBoYW5kbGluZyBvZiBpbmNvbWluZyBmaWxlIHVwbG9hZHMgZm9yIGNvbGxlY3Rpb25zIHRoYXQgaGF2ZSB1cGxvYWRzIGVuYWJsZWQuXG4gICAqL1xuICB1cGxvYWQ/OiBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnNcbn1cblxuZXhwb3J0IHR5cGUgU2FuaXRpemVkQ29uZmlnID0gT21pdDxcbiAgRGVlcFJlcXVpcmVkPENvbmZpZz4sXG4gICdjb2xsZWN0aW9ucycgfCAnZW5kcG9pbnQnIHwgJ2dsb2JhbHMnIHwgJ2xvY2FsaXphdGlvbidcbj4gJiB7XG4gIGNvbGxlY3Rpb25zOiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnW11cbiAgZW5kcG9pbnRzOiBFbmRwb2ludFtdXG4gIGdsb2JhbHM6IFNhbml0aXplZEdsb2JhbENvbmZpZ1tdXG4gIGxvY2FsaXphdGlvbjogU2FuaXRpemVkTG9jYWxpemF0aW9uQ29uZmlnIHwgZmFsc2VcbiAgcGF0aHM6IHtcbiAgICBjb25maWc6IHN0cmluZ1xuICAgIGNvbmZpZ0Rpcjogc3RyaW5nXG4gICAgcmF3Q29uZmlnOiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlEZXNjcmlwdGlvbiA9XG4gIHwgKCgpID0+IHN0cmluZylcbiAgfCBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgfCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIHwgc3RyaW5nXG4iXSwibmFtZXMiOlsiaGFzVHJhbnNwb3J0IiwiaGFzVHJhbnNwb3J0T3B0aW9ucyIsImVtYWlsQ29uZmlnIiwidHJhbnNwb3J0IiwidW5kZWZpbmVkIiwidHJhbnNwb3J0T3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUF5RmdCQSxZQUFZO2VBQVpBOztJQVFBQyxtQkFBbUI7ZUFBbkJBOzs7QUFSVCxTQUFTRCxhQUFhRSxXQUF5QjtJQUNwRCxPQUFPLEFBQUNBLFlBQStCQyxTQUFTLEtBQUtDO0FBQ3ZEO0FBTU8sU0FBU0gsb0JBQ2RDLFdBQXlCO0lBRXpCLE9BQU8sQUFBQ0EsWUFBc0NHLGdCQUFnQixLQUFLRDtBQUNyRSJ9
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvdHlwZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFeHByZXNzLCBOZXh0RnVuY3Rpb24sIFJlc3BvbnNlIH0gZnJvbSAnZXhwcmVzcydcbmltcG9ydCB0eXBlIHsgT3B0aW9ucyBhcyBFeHByZXNzRmlsZVVwbG9hZE9wdGlvbnMgfSBmcm9tICdleHByZXNzLWZpbGV1cGxvYWQnXG5pbXBvcnQgdHlwZSBHcmFwaFFMIGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgdHlwZSB7IEluaXRPcHRpb25zIGFzIGkxOG5Jbml0T3B0aW9ucyB9IGZyb20gJ2kxOG5leHQnXG5pbXBvcnQgdHlwZSB7IFRyYW5zcG9ydGVyIH0gZnJvbSAnbm9kZW1haWxlcidcbmltcG9ydCB0eXBlIFNNVFBDb25uZWN0aW9uIGZyb20gJ25vZGVtYWlsZXIvbGliL3NtdHAtY29ubmVjdGlvbidcbmltcG9ydCB0eXBlIHsgRGVzdGluYXRpb25TdHJlYW0sIExvZ2dlck9wdGlvbnMgfSBmcm9tICdwaW5vJ1xuaW1wb3J0IHR5cGUgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IERlZXBSZXF1aXJlZCB9IGZyb20gJ3RzLWVzc2VudGlhbHMnXG4vLyBAdHMtZXhwZWN0LWVycm9yXG5pbXBvcnQgdHlwZSB7IElubGluZUNvbmZpZyB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgdHlwZSB7IENvbmZpZ3VyYXRpb24gfSBmcm9tICd3ZWJwYWNrJ1xuXG5pbXBvcnQgdHlwZSB7IERvY3VtZW50VGFiIH0gZnJvbSAnLi4vYWRtaW4vY29tcG9uZW50cy9lbGVtZW50cy9Eb2N1bWVudEhlYWRlci9UYWJzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL1JpY2hUZXh0L3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0VHlwZSB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdXRpbGl0aWVzL0RvY3VtZW50SW5mby90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkVkaXRWaWV3UHJvcHMsIEdsb2JhbEVkaXRWaWV3UHJvcHMgfSBmcm9tICcuLi9hZG1pbi9jb21wb25lbnRzL3ZpZXdzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyIH0gZnJvbSAnLi4vYXV0aC90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZEJ1bmRsZXIgfSBmcm9tICcuLi9idW5kbGVycy90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQWZ0ZXJFcnJvckhvb2ssXG4gIENvbGxlY3Rpb25Db25maWcsXG4gIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG59IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgQmFzZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJy4uL2RhdGFiYXNlL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL2V4cHJlc3MvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEdsb2JhbENvbmZpZywgU2FuaXRpemVkR2xvYmFsQ29uZmlnIH0gZnJvbSAnLi4vZ2xvYmFscy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi9wYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uL3R5cGVzJ1xuXG50eXBlIFByZXR0aWZ5PFQ+ID0ge1xuICBbSyBpbiBrZXlvZiBUXTogVFtLXVxufSAmIE5vbk51bGxhYmxlPHVua25vd24+XG5cbnR5cGUgRW1haWwgPSB7XG4gIGZyb21BZGRyZXNzOiBzdHJpbmdcbiAgZnJvbU5hbWU6IHN0cmluZ1xuICBsb2dNb2NrQ3JlZGVudGlhbHM/OiBib29sZWFuXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11c2UtYmVmb3JlLWRlZmluZVxuZXhwb3J0IHR5cGUgUGx1Z2luID0gKGNvbmZpZzogQ29uZmlnKSA9PiBDb25maWcgfCBQcm9taXNlPENvbmZpZz5cblxuZXhwb3J0IHR5cGUgTGl2ZVByZXZpZXdDb25maWcgPSB7XG4gIC8qKlxuICAgIERldmljZSBicmVha3BvaW50cyB0byB1c2UgZm9yIHRoZSBgaWZyYW1lYCBvZiB0aGUgTGl2ZSBQcmV2aWV3IHdpbmRvdy5cbiAgICBPcHRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlIExpdmUgUHJldmlldyB0b29sYmFyLlxuICAgIFRoZSBgcmVzcG9uc2l2ZWAgYnJlYWtwb2ludCBpcyBpbmNsdWRlZCBieSBkZWZhdWx0LlxuICAqL1xuICBicmVha3BvaW50cz86IHtcbiAgICBoZWlnaHQ6IG51bWJlciB8IHN0cmluZ1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICBuYW1lOiBzdHJpbmdcbiAgICB3aWR0aDogbnVtYmVyIHwgc3RyaW5nXG4gIH1bXVxuICAvKipcbiAgICBUaGUgVVJMIG9mIHRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbi4gVGhpcyB3aWxsIGJlIHJlbmRlcmVkIHdpdGhpbiBhbiBgaWZyYW1lYCBhcyBpdHMgYHNyY2AuXG4gICAgUGF5bG9hZCB3aWxsIHNlbmQgYSBgd2luZG93LnBvc3RNZXNzYWdlKClgIHRvIHRoaXMgVVJMIHdpdGggdGhlIGRvY3VtZW50IGRhdGEgaW4gcmVhbC10aW1lLlxuICAgIFRoZSBmcm9udGVuZCBhcHBsaWNhdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgcmVjZWl2aW5nIHRoZSBtZXNzYWdlIGFuZCB1cGRhdGluZyB0aGUgVUkgYWNjb3JkaW5nbHkuXG4gICAgVXNlIHRoZSBgdXNlTGl2ZVByZXZpZXdgIGhvb2sgdG8gZ2V0IHN0YXJ0ZWQgaW4gUmVhY3QgYXBwbGljYXRpb25zLlxuICAqL1xuICB1cmw/OlxuICAgIHwgKChhcmdzOiB7IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT47IGRvY3VtZW50SW5mbzogQ29udGV4dFR5cGU7IGxvY2FsZTogTG9jYWxlIH0pID0+IHN0cmluZylcbiAgICB8IHN0cmluZ1xufVxuXG50eXBlIEdlbmVyYXRlUHJldmlld1VSTE9wdGlvbnMgPSB7XG4gIGxvY2FsZTogc3RyaW5nXG4gIHRva2VuOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgR2VuZXJhdGVQcmV2aWV3VVJMID0gKFxuICBkb2M6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBvcHRpb25zOiBHZW5lcmF0ZVByZXZpZXdVUkxPcHRpb25zLFxuKSA9PiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHwgbnVsbCB8IHN0cmluZ1xuXG5leHBvcnQgdHlwZSBFbWFpbFRyYW5zcG9ydCA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ6IFRyYW5zcG9ydGVyXG4gIHRyYW5zcG9ydE9wdGlvbnM/OiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsVHJhbnNwb3J0T3B0aW9ucyA9IEVtYWlsICYge1xuICB0cmFuc3BvcnQ/OiBUcmFuc3BvcnRlclxuICB0cmFuc3BvcnRPcHRpb25zOiBTTVRQQ29ubmVjdGlvbi5PcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIEVtYWlsT3B0aW9ucyA9IEVtYWlsIHwgRW1haWxUcmFuc3BvcnQgfCBFbWFpbFRyYW5zcG9ydE9wdGlvbnNcblxuLyoqXG4gKiB0eXBlIGd1YXJkIGZvciBFbWFpbE9wdGlvbnNcbiAqIEBwYXJhbSBlbWFpbENvbmZpZ1xuICovXG5leHBvcnQgZnVuY3Rpb24gaGFzVHJhbnNwb3J0KGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMpOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydCB7XG4gIHJldHVybiAoZW1haWxDb25maWcgYXMgRW1haWxUcmFuc3BvcnQpLnRyYW5zcG9ydCAhPT0gdW5kZWZpbmVkXG59XG5cbi8qKlxuICogdHlwZSBndWFyZCBmb3IgRW1haWxPcHRpb25zXG4gKiBAcGFyYW0gZW1haWxDb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc1RyYW5zcG9ydE9wdGlvbnMoXG4gIGVtYWlsQ29uZmlnOiBFbWFpbE9wdGlvbnMsXG4pOiBlbWFpbENvbmZpZyBpcyBFbWFpbFRyYW5zcG9ydE9wdGlvbnMge1xuICByZXR1cm4gKGVtYWlsQ29uZmlnIGFzIEVtYWlsVHJhbnNwb3J0T3B0aW9ucykudHJhbnNwb3J0T3B0aW9ucyAhPT0gdW5kZWZpbmVkXG59XG5cbmV4cG9ydCB0eXBlIEdyYXBoUUxFeHRlbnNpb24gPSAoXG4gIGdyYXBoUUw6IHR5cGVvZiBHcmFwaFFMLFxuICBwYXlsb2FkOiBQYXlsb2FkLFxuKSA9PiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPlxuXG5leHBvcnQgdHlwZSBJbml0T3B0aW9ucyA9IHtcbiAgLyoqXG4gICAqIFNvbWV0aW1lcywgd2l0aCB0aGUgbG9jYWwgQVBJLCB5b3UgbWlnaHQgbmVlZCB0byBwYXNzIGEgY29uZmlnIGZpbGUgZGlyZWN0bHksIGZvciBleGFtcGxlLCBzZXJ2ZXJsZXNzIG9uIFZlcmNlbFxuICAgKiBUaGUgcGFzc2VkIGNvbmZpZyBzaG91bGQgbWF0Y2ggdGhlIGNvbmZpZyBmaWxlLCBhbmQgaWYgaXQgZG9lc24ndCwgdGhlcmUgY291bGQgYmUgbWlzbWF0Y2hlcyBiZXR3ZWVuIHRoZSBhZG1pbiBVSVxuICAgKiBhbmQgdGhlIGJhY2tlbmQgZnVuY3Rpb25hbGl0eVxuICAgKi9cbiAgY29uZmlnPzogUHJvbWlzZTxTYW5pdGl6ZWRDb25maWc+XG5cbiAgLyoqXG4gICAqIERpc2FibGUgY29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugb24gaW5pdFxuICAgKi9cbiAgZGlzYWJsZURCQ29ubmVjdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogRGlzYWJsZSBydW5uaW5nIG9mIHRoZSBgb25Jbml0YCBmdW5jdGlvblxuICAgKi9cbiAgZGlzYWJsZU9uSW5pdD86IGJvb2xlYW5cblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgUGF5bG9hZCdzIGVtYWlsIGZ1bmN0aW9uYWxpdHlcbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZW1haWwvb3ZlcnZpZXdcbiAgICovXG4gIGVtYWlsPzogRW1haWxPcHRpb25zXG5cbiAgLyoqIEV4cHJlc3MgYXBwIGZvciBQYXlsb2FkIHRvIHVzZSAqL1xuICBleHByZXNzPzogRXhwcmVzc1xuXG4gIC8qKlxuICAgKiBNYWtlIFBheWxvYWQgc3RhcnQgaW4gbG9jYWwtb25seSBtb2RlLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgYnlwYXNzIHNldHRpbmcgdXAgUkVTVCBhbmQgR3JhcGhRTCBBUEkgcm91dGVzLlxuICAgKiBFeHByZXNzIHdpbGwgbm90IGJlIHJlcXVpcmVkIGlmIHNldCB0byBgdHJ1ZWAuXG4gICAqL1xuICBsb2NhbD86IGJvb2xlYW5cblxuICBsb2dnZXJEZXN0aW5hdGlvbj86IERlc3RpbmF0aW9uU3RyZWFtXG4gIC8qKlxuICAgKiBTcGVjaWZ5IG9wdGlvbnMgZm9yIHRoZSBidWlsdC1pbiBQaW5vIGxvZ2dlciB0aGF0IFBheWxvYWQgdXNlcyBmb3IgaW50ZXJuYWwgbG9nZ2luZy5cbiAgICpcbiAgICogU2VlIFBpbm8gRG9jcyBmb3Igb3B0aW9uczogaHR0cHM6Ly9nZXRwaW5vLmlvLyMvZG9jcy9hcGk/aWQ9b3B0aW9uc1xuICAgKi9cbiAgbG9nZ2VyT3B0aW9ucz86IExvZ2dlck9wdGlvbnNcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0J3Mgb25seSBhcmd1bWVudC5cbiAgICovXG4gIG9uSW5pdD86IChwYXlsb2FkOiBQYXlsb2FkKSA9PiBQcm9taXNlPHZvaWQ+IHwgdm9pZFxuXG4gIC8qKiBTZWN1cmUgc3RyaW5nIHRoYXQgUGF5bG9hZCB3aWxsIHVzZSBmb3IgYW55IGVuY3J5cHRpb24gd29ya2Zsb3dzICovXG4gIHNlY3JldDogc3RyaW5nXG59XG5cbi8qKlxuICogVGhpcyByZXN1bHQgaXMgY2FsY3VsYXRlZCBvbiB0aGUgc2VydmVyXG4gKiBhbmQgdGhlbiBzZW50IHRvIHRoZSBjbGllbnQgYWxsb3dpbmcgdGhlIGRhc2hib2FyZCB0byBzaG93IGFjY2Vzc2libGUgZGF0YSBhbmQgYWN0aW9ucy5cbiAqXG4gKiBJZiB0aGUgcmVzdWx0IGlzIGB0cnVlYCwgdGhlIHVzZXIgaGFzIGFjY2Vzcy5cbiAqIElmIHRoZSByZXN1bHQgaXMgYW4gb2JqZWN0LCBpdCBpcyBpbnRlcnByZXRlZCBhcyBhIE1vbmdvREIgcXVlcnkuXG4gKlxuICogQGV4YW1wbGUgYHsgY3JlYXRlZEJ5OiB7IGVxdWFsczogaWQgfSB9YFxuICpcbiAqIEBleGFtcGxlIGB7IHRlbmFudDogeyBpbjogdGVuYW50SWRzIH0gfWBcbiAqXG4gKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9hY2Nlc3MtY29udHJvbC9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBBY2Nlc3NSZXN1bHQgPSBXaGVyZSB8IGJvb2xlYW5cblxuZXhwb3J0IHR5cGUgQWNjZXNzQXJnczxUID0gYW55LCBVID0gYW55PiA9IHtcbiAgLyoqXG4gICAqIFRoZSByZWxldmFudCByZXNvdXJjZSB0aGF0IGlzIGJlaW5nIGFjY2Vzc2VkLlxuICAgKlxuICAgKiBgZGF0YWAgaXMgbnVsbCB3aGVuIGEgbGlzdCBpcyByZXF1ZXN0ZWRcbiAgICovXG4gIGRhdGE/OiBUXG4gIC8qKiBJRCBvZiB0aGUgcmVzb3VyY2UgYmVpbmcgYWNjZXNzZWQgKi9cbiAgaWQ/OiBudW1iZXIgfCBzdHJpbmdcbiAgLyoqIFRoZSBvcmlnaW5hbCByZXF1ZXN0IHRoYXQgcmVxdWlyZXMgYW4gYWNjZXNzIGNoZWNrICovXG4gIHJlcTogUGF5bG9hZFJlcXVlc3Q8VT5cbn1cblxuLyoqXG4gKiBBY2Nlc3MgZnVuY3Rpb24gcnVucyBvbiB0aGUgc2VydmVyXG4gKiBhbmQgaXMgc2VudCB0byB0aGUgY2xpZW50IGFsbG93aW5nIHRoZSBkYXNoYm9hcmQgdG8gc2hvdyBhY2Nlc3NpYmxlIGRhdGEgYW5kIGFjdGlvbnMuXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAqL1xuZXhwb3J0IHR5cGUgQWNjZXNzPFQgPSBhbnksIFUgPSBhbnk+ID0gKFxuICBhcmdzOiBBY2Nlc3NBcmdzPFQsIFU+LFxuKSA9PiBBY2Nlc3NSZXN1bHQgfCBQcm9taXNlPEFjY2Vzc1Jlc3VsdD5cblxuLyoqIEVxdWl2YWxlbnQgdG8gZXhwcmVzcyBtaWRkbGV3YXJlLCBidXQgd2l0aCBhbiBlbmhhbmNlZCByZXF1ZXN0IG9iamVjdCAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkSGFuZGxlciB7XG4gIChyZXE6IFBheWxvYWRSZXF1ZXN0LCByZXM6IFJlc3BvbnNlLCBuZXh0OiBOZXh0RnVuY3Rpb24pOiB2b2lkXG59XG5cbi8qKlxuICogRG9jczogaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL3Jlc3QtYXBpL292ZXJ2aWV3I2N1c3RvbS1lbmRwb2ludHNcbiAqL1xuZXhwb3J0IHR5cGUgRW5kcG9pbnQgPSB7XG4gIC8qKiBFeHRlbnNpb24gcG9pbnQgdG8gYWRkIHlvdXIgY3VzdG9tIGRhdGEuICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIGFueT5cbiAgLyoqXG4gICAqIE1pZGRsZXdhcmUgdGhhdCB3aWxsIGJlIGNhbGxlZCB3aGVuIHRoZSBwYXRoL21ldGhvZCBtYXRjaGVzXG4gICAqXG4gICAqIENvbXBhdGlibGUgd2l0aCBFeHByZXNzIG1pZGRsZXdhcmVcbiAgICovXG4gIGhhbmRsZXI6IFBheWxvYWRIYW5kbGVyIHwgUGF5bG9hZEhhbmRsZXJbXVxuICAvKiogSFRUUCBtZXRob2QgKG9yIFwiYWxsXCIpICovXG4gIG1ldGhvZDogJ2Nvbm5lY3QnIHwgJ2RlbGV0ZScgfCAnZ2V0JyB8ICdoZWFkJyB8ICdvcHRpb25zJyB8ICdwYXRjaCcgfCAncG9zdCcgfCAncHV0J1xuICAvKipcbiAgICogUGF0dGVybiB0aGF0IHNob3VsZCBtYXRjaCB0aGUgcGF0aCBvZiB0aGUgaW5jb21pbmcgcmVxdWVzdFxuICAgKlxuICAgKiBDb21wYXRpYmxlIHdpdGggdGhlIEV4cHJlc3Mgcm91dGVyXG4gICAqL1xuICBwYXRoOiBzdHJpbmdcbiAgLyoqXG4gICAqIFNldCB0byBgdHJ1ZWAgdG8gZGlzYWJsZSB0aGUgUGF5bG9hZCBtaWRkbGV3YXJlIGZvciB0aGlzIGVuZHBvaW50XG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByb290PzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBDdXN0b21BZG1pblZpZXcgPSBSZWFjdC5Db21wb25lbnRUeXBlPHtcbiAgY2FuQWNjZXNzQWRtaW4/OiBib29sZWFuXG4gIGNvbGxlY3Rpb24/OiBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnXG4gIGdsb2JhbD86IFNhbml0aXplZEdsb2JhbENvbmZpZ1xuICB1c2VyOiBVc2VyIHwgbnVsbCB8IHVuZGVmaW5lZFxufT5cblxuZXhwb3J0IHR5cGUgRWRpdFZpZXdDb25maWcgPSB7XG4gIC8qKlxuICAgKiBUaGUgY29tcG9uZW50IHRvIHJlbmRlciBmb3IgdGhpcyB2aWV3XG4gICAqICsgUmVwbGFjZXMgdGhlIGRlZmF1bHQgY29tcG9uZW50XG4gICAqL1xuICBDb21wb25lbnQ6IEVkaXRWaWV3Q29tcG9uZW50XG4gIFRhYjogRG9jdW1lbnRUYWJcbiAgcGF0aDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEVkaXRWaWV3Q29tcG9uZW50ID0gUmVhY3QuQ29tcG9uZW50VHlwZTxDb2xsZWN0aW9uRWRpdFZpZXdQcm9wcyB8IEdsb2JhbEVkaXRWaWV3UHJvcHM+XG5cbmV4cG9ydCB0eXBlIEVkaXRWaWV3ID0gRWRpdFZpZXdDb21wb25lbnQgfCBFZGl0Vmlld0NvbmZpZ1xuXG5leHBvcnQgdHlwZSBBZG1pblJvdXRlID0ge1xuICBDb21wb25lbnQ6IEN1c3RvbUFkbWluVmlld1xuICAvKiogV2hldGhlciB0aGUgcGF0aCBzaG91bGQgYmUgbWF0Y2hlZCBleGFjdGx5IG9yIGFzIGEgcHJlZml4ICovXG4gIGV4YWN0PzogYm9vbGVhblxuICBwYXRoOiBzdHJpbmdcbiAgc2Vuc2l0aXZlPzogYm9vbGVhblxuICBzdHJpY3Q/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIExvY2FsZSA9IHtcbiAgLyoqXG4gICAqIHZhbHVlIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJlblwiXG4gICAqL1xuICBjb2RlOiBzdHJpbmdcbiAgLyoqXG4gICAqIGxhYmVsIG9mIHN1cHBvcnRlZCBsb2NhbGVcbiAgICogQGV4YW1wbGUgXCJFbmdsaXNoXCJcbiAgICovXG4gIGxhYmVsOiBzdHJpbmdcbiAgLyoqXG4gICAqIGlmIHRydWUsIGRlZmF1bHRzIHRleHRBbGlnbW5lbnQgb24gdGV4dCBmaWVsZHMgdG8gUlRMXG4gICAqL1xuICBydGw/OiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEJhc2VMb2NhbGl6YXRpb25Db25maWcgPSB7XG4gIC8qKlxuICAgKiBMb2NhbGUgZm9yIHVzZXJzIHRoYXQgaGF2ZSBub3QgZXhwcmVzc2VkIHRoZWlyIHByZWZlcmVuY2UgZm9yIGEgc3BlY2lmaWMgbG9jYWxlXG4gICAqIEBleGFtcGxlIGBcImVuXCJgXG4gICAqL1xuICBkZWZhdWx0TG9jYWxlOiBzdHJpbmdcbiAgLyoqIFNldCB0byBgdHJ1ZWAgdG8gbGV0IG1pc3NpbmcgdmFsdWVzIGluIGxvY2FsaXNlZCBmaWVsZHMgZmFsbCBiYWNrIHRvIHRoZSB2YWx1ZXMgaW4gYGRlZmF1bHRMb2NhbGVgICovXG4gIGZhbGxiYWNrPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBMb2NhbGl6YXRpb25Db25maWdXaXRoTm9MYWJlbHMgPSBQcmV0dGlmeTxcbiAgQmFzZUxvY2FsaXphdGlvbkNvbmZpZyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzXG4gICAgICogQGV4YW1wbGUgYFtcImVuXCIsIFwiZXNcIiwgXCJmclwiLCBcIm5sXCIsIFwiZGVcIiwgXCJqcFwiXWBcbiAgICAgKi9cbiAgICBsb2NhbGVzOiBzdHJpbmdbXVxuICB9XG4+XG5cbmV4cG9ydCB0eXBlIExvY2FsaXphdGlvbkNvbmZpZ1dpdGhMYWJlbHMgPSBQcmV0dGlmeTxcbiAgQmFzZUxvY2FsaXphdGlvbkNvbmZpZyAmIHtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIHN1cHBvcnRlZCBsb2NhbGVzIHdpdGggbGFiZWxzXG4gICAgICogQGV4YW1wbGUge1xuICAgICAqICBsYWJlbDogJ0VuZ2xpc2gnLFxuICAgICAqICB2YWx1ZTogJ2VuJyxcbiAgICAgKiAgcnRsOiBmYWxzZVxuICAgICAqIH1cbiAgICAgKi9cbiAgICBsb2NhbGVzOiBMb2NhbGVbXVxuICB9XG4+XG5cbmV4cG9ydCB0eXBlIFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyA9IFByZXR0aWZ5PFxuICBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzICYge1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2Ygc3VwcG9ydGVkIGxvY2FsZXNcbiAgICAgKiBAZXhhbXBsZSBgW1wiZW5cIiwgXCJlc1wiLCBcImZyXCIsIFwibmxcIiwgXCJkZVwiLCBcImpwXCJdYFxuICAgICAqL1xuICAgIGxvY2FsZUNvZGVzOiBzdHJpbmdbXVxuICB9XG4+XG5cbi8qKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9sb2NhbGl6YXRpb24jbG9jYWxpemF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIExvY2FsaXphdGlvbkNvbmZpZyA9IFByZXR0aWZ5PFxuICBMb2NhbGl6YXRpb25Db25maWdXaXRoTGFiZWxzIHwgTG9jYWxpemF0aW9uQ29uZmlnV2l0aE5vTGFiZWxzXG4+XG5cbi8qKlxuICogVGhpcyBpcyB0aGUgY2VudHJhbCBjb25maWd1cmF0aW9uXG4gKlxuICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvY29uZmlndXJhdGlvbi9vdmVydmlld1xuICovXG5leHBvcnQgdHlwZSBDb25maWcgPSB7XG4gIC8qKiBDb25maWd1cmUgYWRtaW4gZGFzaGJvYXJkICovXG4gIGFkbWluPzoge1xuICAgIC8qKiBBdXRvbWF0aWNhbGx5IGxvZyBpbiBhcyBhIHVzZXIgd2hlbiB2aXNpdGluZyB0aGUgYWRtaW4gZGFzaGJvYXJkLiAqL1xuICAgIGF1dG9Mb2dpbj86XG4gICAgICB8IHtcbiAgICAgICAgICAvKipcbiAgICAgICAgICAgKiBUaGUgZW1haWwgYWRkcmVzcyBvZiB0aGUgdXNlciB0byBsb2dpbiBhc1xuICAgICAgICAgICAqXG4gICAgICAgICAgICovXG4gICAgICAgICAgZW1haWw6IHN0cmluZ1xuICAgICAgICAgIC8qKiBUaGUgcGFzc3dvcmQgb2YgdGhlIHVzZXIgdG8gbG9naW4gYXMgKi9cbiAgICAgICAgICBwYXNzd29yZDogc3RyaW5nXG4gICAgICAgICAgLyoqXG4gICAgICAgICAgICogSWYgc2V0IHRvIHRydWUsIHRoZSBsb2dpbiBjcmVkZW50aWFscyB3aWxsIGJlIHByZWZpbGxlZCBidXQgdGhlIHVzZXIgd2lsbCBzdGlsbCBuZWVkIHRvIGNsaWNrIHRoZSBsb2dpbiBidXR0b24uXG4gICAgICAgICAgICpcbiAgICAgICAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAgICAgICAqL1xuICAgICAgICAgIHByZWZpbGxPbmx5PzogYm9vbGVhblxuICAgICAgICB9XG4gICAgICB8IGZhbHNlXG5cbiAgICAvKiogU2V0IGFjY291bnQgcHJvZmlsZSBwaWN0dXJlLiBPcHRpb25zOiBncmF2YXRhciwgZGVmYXVsdCBvciBhIGN1c3RvbSBSZWFjdCBjb21wb25lbnQuICovXG4gICAgYXZhdGFyPzogJ2RlZmF1bHQnIHwgJ2dyYXZhdGFyJyB8IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgIC8qKlxuICAgICAqIFNwZWNpZnkgYW4gYWJzb2x1dGUgcGF0aCBmb3Igd2hlcmUgdG8gc3RvcmUgdGhlIGJ1aWx0IEFkbWluIHBhbmVsIGJ1bmRsZSB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBcIi9idWlsZFwiXG4gICAgICogKi9cbiAgICBidWlsZFBhdGg/OiBzdHJpbmdcbiAgICAvKiogQ3VzdG9taXplIHRoZSBidW5kbGVyIHVzZWQgdG8gcnVuIHlvdXIgYWRtaW4gcGFuZWwuICovXG4gICAgYnVuZGxlcj86IFBheWxvYWRCdW5kbGVyXG4gICAgLyoqXG4gICAgICogQWRkIGV4dHJhIGFuZC9vciByZXBsYWNlIGJ1aWx0LWluIGNvbXBvbmVudHMgd2l0aCBjdXN0b20gY29tcG9uZW50c1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWRtaW4vY29tcG9uZW50c1xuICAgICAqL1xuICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICAvKipcbiAgICAgICAqIFJlcGxhY2UgdGhlIG5hdmlnYXRpb24gd2l0aCBhIGN1c3RvbSBjb21wb25lbnRcbiAgICAgICAqL1xuICAgICAgTmF2PzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBhZnRlckRhc2hib2FyZD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgZW1haWwvcGFzc3dvcmQgZmllbGRcbiAgICAgICAqL1xuICAgICAgYWZ0ZXJMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBhZnRlciB0aGUgbmF2aWdhdGlvbiBsaW5rc1xuICAgICAgICovXG4gICAgICBhZnRlck5hdkxpbmtzPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSBjb21wb25lbnRzIGJlZm9yZSB0aGUgY29sbGVjdGlvbiBvdmVydmlld1xuICAgICAgICovXG4gICAgICBiZWZvcmVEYXNoYm9hcmQ/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqXG4gICAgICAgKiBBZGQgY3VzdG9tIGNvbXBvbmVudHMgYmVmb3JlIHRoZSBlbWFpbC9wYXNzd29yZCBmaWVsZFxuICAgICAgICovXG4gICAgICBiZWZvcmVMb2dpbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PltdXG4gICAgICAvKipcbiAgICAgICAqIEFkZCBjdXN0b20gY29tcG9uZW50cyBiZWZvcmUgdGhlIG5hdmlnYXRpb24gbGlua3NcbiAgICAgICAqL1xuICAgICAgYmVmb3JlTmF2TGlua3M/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5bXVxuICAgICAgLyoqIFJlcGxhY2UgZ3JhcGhpY2FsIGNvbXBvbmVudHMgKi9cbiAgICAgIGdyYXBoaWNzPzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgaWNvbiBpbiB0aGUgbmF2aWdhdGlvbiAqL1xuICAgICAgICBJY29uPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICAgIC8qKiBSZXBsYWNlIHRoZSBsb2dvIG9uIHRoZSBsb2dpbiBwYWdlICovXG4gICAgICAgIExvZ28/OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgICAgIH1cbiAgICAgIC8qKiBSZXBsYWNlIGxvZ291dCByZWxhdGVkIGNvbXBvbmVudHMgKi9cbiAgICAgIGxvZ291dD86IHtcbiAgICAgICAgLyoqIFJlcGxhY2UgdGhlIGxvZ291dCBidXR0b24gICovXG4gICAgICAgIEJ1dHRvbj86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgfVxuICAgICAgLyoqXG4gICAgICAgKiBXcmFwIHRoZSBhZG1pbiBkYXNoYm9hcmQgaW4gY3VzdG9tIGNvbnRleHQgcHJvdmlkZXJzXG4gICAgICAgKi9cbiAgICAgIHByb3ZpZGVycz86IFJlYWN0LkNvbXBvbmVudFR5cGU8eyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0+W11cbiAgICAgIC8qKlxuICAgICAgICogQWRkIGN1c3RvbSByb3V0ZXMgaW4gdGhlIGFkbWluIGRhc2hib2FyZFxuICAgICAgICovXG4gICAgICByb3V0ZXM/OiBBZG1pblJvdXRlW11cbiAgICAgIC8qIFJlcGxhY2UgY29tcGxldGUgcGFnZXMgKi9cbiAgICAgIHZpZXdzPzoge1xuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWNjb3VudCBzY3JlZW4gKi9cbiAgICAgICAgQWNjb3VudD86IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PlxuICAgICAgICAvKiogUmVwbGFjZSB0aGUgYWRtaW4gaG9tZXBhZ2UgKi9cbiAgICAgICAgRGFzaGJvYXJkPzogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gICAgICB9XG4gICAgfVxuICAgIC8qKiBBYnNvbHV0ZSBwYXRoIHRvIGEgc3R5bGVzaGVldCB0aGF0IHlvdSBjYW4gdXNlIHRvIG92ZXJyaWRlIC8gY3VzdG9taXplIHRoZSBBZG1pbiBwYW5lbCBzdHlsaW5nLiAqL1xuICAgIGNzcz86IHN0cmluZ1xuICAgIC8qKiBHbG9iYWwgZGF0ZSBmb3JtYXQgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIGFsbCBkYXRlcyBpbiB0aGUgQWRtaW4gcGFuZWwuIEFueSB2YWxpZCBkYXRlLWZucyBmb3JtYXQgcGF0dGVybiBjYW4gYmUgdXNlZC4gKi9cbiAgICBkYXRlRm9ybWF0Pzogc3RyaW5nXG4gICAgLyoqIElmIHNldCB0byB0cnVlLCB0aGUgZW50aXJlIEFkbWluIHBhbmVsIHdpbGwgYmUgZGlzYWJsZWQuICovXG4gICAgZGlzYWJsZT86IGJvb2xlYW5cbiAgICAvKiogVGhlIHJvdXRlIHRoZSB1c2VyIHdpbGwgYmUgcmVkaXJlY3RlZCB0byBhZnRlciBiZWluZyBpbmFjdGl2ZSBmb3IgdG9vIGxvbmcuICovXG4gICAgaW5hY3Rpdml0eVJvdXRlPzogc3RyaW5nXG4gICAgLyoqIFJlcGxhY2UgdGhlIGVudGlyZXR5IG9mIHRoZSBpbmRleC5odG1sIGZpbGUgdXNlZCBieSB0aGUgQWRtaW4gcGFuZWwuIFJlZmVyZW5jZSB0aGUgYmFzZSBpbmRleC5odG1sIGZpbGUgdG8gZW5zdXJlIHlvdXIgcmVwbGFjZW1lbnQgaGFzIHRoZSBhcHByb3ByaWF0ZSBIVE1MIGVsZW1lbnRzLiAqL1xuICAgIGluZGV4SFRNTD86IHN0cmluZ1xuICAgIGxpdmVQcmV2aWV3PzogTGl2ZVByZXZpZXdDb25maWcgJiB7XG4gICAgICBjb2xsZWN0aW9ucz86IHN0cmluZ1tdXG4gICAgICBnbG9iYWxzPzogc3RyaW5nW11cbiAgICB9XG4gICAgLyoqIFRoZSByb3V0ZSBmb3IgdGhlIGxvZ291dCBwYWdlLiAqL1xuICAgIGxvZ291dFJvdXRlPzogc3RyaW5nXG4gICAgLyoqIEJhc2UgbWV0YSBkYXRhIHRvIHVzZSBmb3IgdGhlIEFkbWluIHBhbmVsLiBJbmNsdWRlZCBwcm9wZXJ0aWVzIGFyZSB0aXRsZVN1ZmZpeCwgb2dJbWFnZSwgYW5kIGZhdmljb24uICovXG4gICAgbWV0YT86IHtcbiAgICAgIC8qKlxuICAgICAgICogUHVibGljIHBhdGggdG8gYW4gaWNvblxuICAgICAgICpcbiAgICAgICAqIFRoaXMgaW1hZ2UgbWF5IGJlIGRpc3BsYXllZCBpbiB0aGUgYnJvd3NlciBuZXh0IHRvIHRoZSB0aXRsZSBvZiB0aGUgcGFnZVxuICAgICAgICovXG4gICAgICBmYXZpY29uPzogc3RyaW5nXG4gICAgICAvKipcbiAgICAgICAqIFB1YmxpYyBwYXRoIHRvIGFuIGltYWdlXG4gICAgICAgKlxuICAgICAgICogVGhpcyBpbWFnZSBtYXkgYmUgZGlzcGxheWVkIGFzIHByZXZpZXcgd2hlbiB0aGUgbGluayBpcyBzaGFyZWQgb24gc29jaWFsIG1lZGlhXG4gICAgICAgKi9cbiAgICAgIG9nSW1hZ2U/OiBzdHJpbmdcbiAgICAgIC8qKlxuICAgICAgICogU3RyaW5nIHRvIGFwcGVuZCB0byB0aGUgPHRpdGxlPiBvZiBhZG1pbiBwYWdlc1xuICAgICAgICogQGV4YW1wbGUgYFwiIC0gTXkgQnJhbmRcImBcbiAgICAgICAqL1xuICAgICAgdGl0bGVTdWZmaXg/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqIFRoZSBzbHVnIG9mIGEgQ29sbGVjdGlvbiB0aGF0IHlvdSB3YW50IGJlIHVzZWQgdG8gbG9nIGluIHRvIHRoZSBBZG1pbiBkYXNoYm9hcmQuICovXG4gICAgdXNlcj86IHN0cmluZ1xuICAgIC8qKiBDdXN0b21pemUgdGhlIFZpdGUgY29uZmlnIHRoYXQncyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBBZG1pbiBwYW5lbC4gKi9cbiAgICB2aXRlPzogKGNvbmZpZzogSW5saW5lQ29uZmlnKSA9PiBJbmxpbmVDb25maWdcbiAgICAvKiogQ3VzdG9taXplIHRoZSBXZWJwYWNrIGNvbmZpZyB0aGF0J3MgdXNlZCB0byBnZW5lcmF0ZSB0aGUgQWRtaW4gcGFuZWwuICovXG4gICAgd2VicGFjaz86IChjb25maWc6IENvbmZpZ3VyYXRpb24pID0+IENvbmZpZ3VyYXRpb25cbiAgfVxuICAvKipcbiAgICogTWFuYWdlIHRoZSBkYXRhbW9kZWwgb2YgeW91ciBhcHBsaWNhdGlvblxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL2NvbGxlY3Rpb25zI2NvbGxlY3Rpb24tY29uZmlnc1xuICAgKi9cbiAgY29sbGVjdGlvbnM/OiBDb2xsZWN0aW9uQ29uZmlnW11cbiAgLyoqXG4gICAqIFJlcGxhY2UgdGhlIGJ1aWx0LWluIGNvbXBvbmVudHMgd2l0aCBjdXN0b20gb25lc1xuICAgKi9cbiAgY29tcG9uZW50cz86IHsgW2tleTogc3RyaW5nXTogKCgpID0+IEpTWC5FbGVtZW50KSB8IEpTWC5FbGVtZW50IH1cbiAgLyoqXG4gICAqIFByZWZpeCBhIHN0cmluZyB0byBhbGwgY29va2llcyB0aGF0IFBheWxvYWQgc2V0cy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJwYXlsb2FkXCJcbiAgICovXG4gIGNvb2tpZVByZWZpeD86IHN0cmluZ1xuICAvKiogRWl0aGVyIGEgd2hpdGVsaXN0IGFycmF5IG9mIFVSTFMgdG8gYWxsb3cgQ09SUyByZXF1ZXN0cyBmcm9tLCBvciBhIHdpbGRjYXJkIHN0cmluZyAoJyonKSB0byBhY2NlcHQgaW5jb21pbmcgcmVxdWVzdHMgZnJvbSBhbnkgZG9tYWluLiAqL1xuICBjb3JzPzogJyonIHwgc3RyaW5nW11cblxuICAvKiogQSB3aGl0ZWxpc3QgYXJyYXkgb2YgVVJMcyB0byBhbGxvdyBQYXlsb2FkIGNvb2tpZXMgdG8gYmUgYWNjZXB0ZWQgZnJvbSBhcyBhIGZvcm0gb2YgQ1NSRiBwcm90ZWN0aW9uLiAqL1xuICBjc3JmPzogc3RyaW5nW11cblxuICAvKiogRXh0ZW5zaW9uIHBvaW50IHRvIGFkZCB5b3VyIGN1c3RvbSBkYXRhLiAqL1xuICBjdXN0b20/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gIC8qKiBQYXNzIGluIGEgZGF0YWJhc2UgYWRhcHRlciBmb3IgdXNlIG9uIHRoaXMgcHJvamVjdC4gKi9cbiAgZGI6IChhcmdzOiB7IHBheWxvYWQ6IFBheWxvYWQgfSkgPT4gQmFzZURhdGFiYXNlQWRhcHRlclxuICAvKiogRW5hYmxlIHRvIGV4cG9zZSBtb3JlIGRldGFpbGVkIGVycm9yIGluZm9ybWF0aW9uLiAqL1xuICBkZWJ1Zz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIElmIGEgdXNlciBkb2VzIG5vdCBzcGVjaWZ5IGBkZXB0aGAgd2hpbGUgcmVxdWVzdGluZyBhIHJlc291cmNlLCB0aGlzIGRlcHRoIHdpbGwgYmUgdXNlZC5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkL2NvbmNlcHRzI2RlcHRoXG4gICAqXG4gICAqIEBkZWZhdWx0IDJcbiAgICovXG4gIGRlZmF1bHREZXB0aD86IG51bWJlclxuICAvKipcbiAgICogVGhlIG1heGltdW0gYWxsb3dlZCBkZXB0aCB0byBiZSBwZXJtaXR0ZWQgYXBwbGljYXRpb24td2lkZS4gVGhpcyBzZXR0aW5nIGhlbHBzIHByZXZlbnQgYWdhaW5zdCBtYWxpY2lvdXMgcXVlcmllcy5cbiAgICpcbiAgICogQGRlZmF1bHQgNDAwMDBcbiAgICovXG4gIGRlZmF1bHRNYXhUZXh0TGVuZ3RoPzogbnVtYmVyXG4gIC8qKiBEZWZhdWx0IHJpY2h0ZXh0IGVkaXRvciB0byB1c2UgZm9yIHJpY2hUZXh0IGZpZWxkcyAqL1xuICBlZGl0b3I6IFJpY2hUZXh0QWRhcHRlclxuICAvKipcbiAgICogRW1haWwgY29uZmlndXJhdGlvbiBvcHRpb25zLiBUaGlzIHZhbHVlIGlzIG92ZXJyaWRkZW4gYnkgYGVtYWlsYCBpbiBQYXlsb2FkLmluaXQgaWYgcGFzc2VkLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9lbWFpbC9vdmVydmlld1xuICAgKi9cbiAgZW1haWw/OiBFbWFpbE9wdGlvbnNcbiAgLyoqIEN1c3RvbSBSRVNUIGVuZHBvaW50cyAqL1xuICBlbmRwb2ludHM/OiBFbmRwb2ludFtdXG4gIC8qKlxuICAgKiBFeHByZXNzLXNwZWNpZmljIG1pZGRsZXdhcmUgb3B0aW9ucyBzdWNoIGFzIGNvbXByZXNzaW9uIGFuZCBKU09OIHBhcnNpbmcuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vZXhwcmVzc1xuICAgKi9cbiAgZXhwcmVzcz86IHtcbiAgICAvKiogQ29udHJvbCB0aGUgd2F5IHJlc3BvbnNlcyBhcmUgY29tcHJlc3NlZCAqL1xuICAgIGNvbXByZXNzaW9uPzoge1xuICAgICAgW2tleTogc3RyaW5nXTogdW5rbm93blxuICAgIH1cbiAgICAvKiogQ29udHJvbCB0aGUgd2F5IEpTT04gaXMgcGFyc2VkICovXG4gICAganNvbj86IHtcbiAgICAgIC8qKiBEZWZhdWx0cyB0byAyTUIgICovXG4gICAgICBsaW1pdD86IG51bWJlclxuICAgIH1cbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBleHByZXNzLm1pZGRsZXdhcmUgd2lsbCBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHZlcnNpb24uIFBsZWFzZSBtaWdyYXRlIHRvIGV4cHJlc3MucG9zdE1pZGRsZXdhcmUuXG4gICAgICovXG4gICAgbWlkZGxld2FyZT86IGFueVtdXG4gICAgcG9zdE1pZGRsZXdhcmU/OiBhbnlbXVxuICAgIHByZU1pZGRsZXdhcmU/OiBhbnlbXVxuICB9XG4gIC8qKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9jb25maWd1cmF0aW9uL2dsb2JhbHMjZ2xvYmFsLWNvbmZpZ3NcbiAgICovXG4gIGdsb2JhbHM/OiBHbG9iYWxDb25maWdbXVxuICAvKipcbiAgICogTWFuYWdlIHRoZSBHcmFwaFFMIEFQSVxuICAgKlxuICAgKiBZb3UgY2FuIGFkZCB5b3VyIG93biBHcmFwaFFMIHF1ZXJpZXMgYW5kIG11dGF0aW9ucyB0byBQYXlsb2FkLCBtYWtpbmcgdXNlIG9mIGFsbCB0aGUgdHlwZXMgdGhhdCBQYXlsb2FkIGhhcyBkZWZpbmVkIGZvciB5b3UuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2FjY2Vzcy1jb250cm9sL292ZXJ2aWV3XG4gICAqL1xuICBncmFwaFFMPzoge1xuICAgIGRpc2FibGU/OiBib29sZWFuXG4gICAgZGlzYWJsZVBsYXlncm91bmRJblByb2R1Y3Rpb24/OiBib29sZWFuXG4gICAgbWF4Q29tcGxleGl0eT86IG51bWJlclxuICAgIC8qKlxuICAgICAqIEZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBvYmplY3QgY29udGFpbmluZyBrZXlzIHRvIGN1c3RvbSBHcmFwaFFMIG11dGF0aW9uc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAgICAgKi9cbiAgICBtdXRhdGlvbnM/OiBHcmFwaFFMRXh0ZW5zaW9uXG4gICAgLyoqXG4gICAgICogRnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIG9iamVjdCBjb250YWluaW5nIGtleXMgdG8gY3VzdG9tIEdyYXBoUUwgcXVlcmllc1xuICAgICAqXG4gICAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvYWNjZXNzLWNvbnRyb2wvb3ZlcnZpZXdcbiAgICAgKi9cbiAgICBxdWVyaWVzPzogR3JhcGhRTEV4dGVuc2lvblxuICAgIHNjaGVtYU91dHB1dEZpbGU/OiBzdHJpbmdcbiAgfVxuICAvKipcbiAgICogVGFwIGludG8gUGF5bG9hZC13aWRlIGhvb2tzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vcGF5bG9hZGNtcy5jb20vZG9jcy9ob29rcy9vdmVydmlld1xuICAgKi9cbiAgaG9va3M/OiB7XG4gICAgYWZ0ZXJFcnJvcj86IEFmdGVyRXJyb3JIb29rXG4gIH1cbiAgLyoqXG4gICAqIENvbnRyb2wgdGhlIGJlaGF2aW91ciBvZiB0aGUgYWRtaW4gaW50ZXJuYXRpb25hbGlzYXRpb24uXG4gICAqXG4gICAqIFNlZSBpMThuZXh0IG9wdGlvbnMuXG4gICAqXG4gICAqIEBkZWZhdWx0XG4gICAqIHtcbiAgICogICBmYWxsYmFja0xuZzogJ2VuJyxcbiAgICogICBkZWJ1ZzogZmFsc2UsXG4gICAqICAgc3VwcG9ydGVkTG5nczogT2JqZWN0LmtleXModHJhbnNsYXRpb25zKSxcbiAgICogICByZXNvdXJjZXM6IHRyYW5zbGF0aW9ucyxcbiAgICogfVxuICAgKi9cbiAgaTE4bj86IGkxOG5Jbml0T3B0aW9uc1xuICAvKiogQXV0b21hdGljYWxseSBpbmRleCBhbGwgc29ydGFibGUgdG9wLWxldmVsIGZpZWxkcyBpbiB0aGUgZGF0YWJhc2UgdG8gaW1wcm92ZSBzb3J0IHBlcmZvcm1hbmNlIGFuZCBhZGQgZGF0YWJhc2UgY29tcGF0aWJpbGl0eSBmb3IgQXp1cmUgQ29zbW9zIGFuZCBzaW1pbGFyLiAqL1xuICBpbmRleFNvcnRhYmxlRmllbGRzPzogYm9vbGVhblxuICAvKipcbiAgICogVHJhbnNsYXRlIHlvdXIgY29udGVudCB0byBkaWZmZXJlbnQgbGFuZ3VhZ2VzL2xvY2FsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlIC8vIGRpc2FibGUgbG9jYWxpemF0aW9uXG4gICAqL1xuICBsb2NhbGl6YXRpb24/OiBMb2NhbGl6YXRpb25Db25maWcgfCBmYWxzZVxuICAvKipcbiAgICogVGhlIG1heGltdW0gYWxsb3dlZCBkZXB0aCB0byBiZSBwZXJtaXR0ZWQgYXBwbGljYXRpb24td2lkZS4gVGhpcyBzZXR0aW5nIGhlbHBzIHByZXZlbnQgYWdhaW5zdCBtYWxpY2lvdXMgcXVlcmllcy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvZ2V0dGluZy1zdGFydGVkL2NvbmNlcHRzI2RlcHRoXG4gICAqXG4gICAqIEBkZWZhdWx0IDEwXG4gICAqL1xuICBtYXhEZXB0aD86IG51bWJlclxuICAvKiogQSBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbW1lZGlhdGVseSBmb2xsb3dpbmcgc3RhcnR1cCB0aGF0IHJlY2VpdmVzIHRoZSBQYXlsb2FkIGluc3RhbmNlIGFzIGl0cyBvbmx5IGFyZ3VtZW50LiAqL1xuICBvbkluaXQ/OiAocGF5bG9hZDogUGF5bG9hZCkgPT4gUHJvbWlzZTx2b2lkPiB8IHZvaWRcbiAgLyoqXG4gICAqIEFuIGFycmF5IG9mIFBheWxvYWQgcGx1Z2lucy5cbiAgICpcbiAgICogQHNlZSBodHRwczovL3BheWxvYWRjbXMuY29tL2RvY3MvcGx1Z2lucy9vdmVydmlld1xuICAgKi9cbiAgcGx1Z2lucz86IFBsdWdpbltdXG4gIC8qKlxuICAgKiBMaW1pdCBoZWF2eSB1c2FnZVxuICAgKlxuICAgKiBAZGVmYXVsdFxuICAgKiB7XG4gICAqICAgd2luZG93OiAxNSAqIDYwICogMTAwLCAvLyAxLjUgbWludXRlcyxcbiAgICogICBtYXg6IDUwMCxcbiAgICogfVxuICAgKi9cbiAgcmF0ZUxpbWl0Pzoge1xuICAgIG1heD86IG51bWJlclxuICAgIHNraXA/OiAocmVxOiBQYXlsb2FkUmVxdWVzdCkgPT4gYm9vbGVhblxuICAgIHRydXN0UHJveHk/OiBib29sZWFuXG4gICAgd2luZG93PzogbnVtYmVyXG4gIH1cbiAgLyoqIENvbnRyb2wgdGhlIHJvdXRpbmcgc3RydWN0dXJlIHRoYXQgUGF5bG9hZCBiaW5kcyBpdHNlbGYgdG8uICovXG4gIHJvdXRlcz86IHtcbiAgICAvKiogQGRlZmF1bHQgXCIvYWRtaW5cIiAqL1xuICAgIGFkbWluPzogc3RyaW5nXG4gICAgLyoqIEBkZWZhdWx0IFwiL2FwaVwiICAqL1xuICAgIGFwaT86IHN0cmluZ1xuICAgIC8qKiBAZGVmYXVsdCBcIi9ncmFwaHFsXCIgICovXG4gICAgZ3JhcGhRTD86IHN0cmluZ1xuICAgIC8qKiBAZGVmYXVsdCBcIi9wbGF5Z3JvdW5kXCIgKi9cbiAgICBncmFwaFFMUGxheWdyb3VuZD86IHN0cmluZ1xuICB9XG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIGFic29sdXRlIFVSTCBvZiB5b3VyIGFwcCBpbmNsdWRpbmcgdGhlIHByb3RvY29sLCBmb3IgZXhhbXBsZSBgaHR0cHM6Ly9leGFtcGxlLm9yZ2AuXG4gICAqIE5vIHBhdGhzIGFsbG93ZWQsIG9ubHkgcHJvdG9jb2wsIGRvbWFpbiBhbmQgKG9wdGlvbmFsbHkpIHBvcnQuXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9wYXlsb2FkY21zLmNvbS9kb2NzL2NvbmZpZ3VyYXRpb24vb3ZlcnZpZXcjb3B0aW9uc1xuICAgKi9cbiAgc2VydmVyVVJMPzogc3RyaW5nXG4gIC8qKiBTZW5kIGFub255bW91cyB0ZWxlbWV0cnkgZGF0YSBhYm91dCBnZW5lcmFsIHVzYWdlLiAqL1xuICB0ZWxlbWV0cnk/OiBib29sZWFuXG4gIC8qKiBDb250cm9sIGhvdyB0eXBlc2NyaXB0IGludGVyZmFjZXMgYXJlIGdlbmVyYXRlZCBmcm9tIHlvdXIgY29sbGVjdGlvbnMuICovXG4gIHR5cGVzY3JpcHQ/OiB7XG4gICAgLyoqIEZpbGVuYW1lIHRvIHdyaXRlIHRoZSBnZW5lcmF0ZWQgdHlwZXMgdG8gKi9cbiAgICBvdXRwdXRGaWxlPzogc3RyaW5nXG4gIH1cbiAgLyoqXG4gICAqIEN1c3RvbWl6ZSB0aGUgaGFuZGxpbmcgb2YgaW5jb21pbmcgZmlsZSB1cGxvYWRzIGZvciBjb2xsZWN0aW9ucyB0aGF0IGhhdmUgdXBsb2FkcyBlbmFibGVkLlxuICAgKi9cbiAgdXBsb2FkPzogRXhwcmVzc0ZpbGVVcGxvYWRPcHRpb25zXG59XG5cbmV4cG9ydCB0eXBlIFNhbml0aXplZENvbmZpZyA9IE9taXQ8XG4gIERlZXBSZXF1aXJlZDxDb25maWc+LFxuICAnY29sbGVjdGlvbnMnIHwgJ2VuZHBvaW50JyB8ICdnbG9iYWxzJyB8ICdsb2NhbGl6YXRpb24nXG4+ICYge1xuICBjb2xsZWN0aW9uczogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1tdXG4gIGVuZHBvaW50czogRW5kcG9pbnRbXVxuICBnbG9iYWxzOiBTYW5pdGl6ZWRHbG9iYWxDb25maWdbXVxuICBsb2NhbGl6YXRpb246IFNhbml0aXplZExvY2FsaXphdGlvbkNvbmZpZyB8IGZhbHNlXG4gIHBhdGhzOiB7XG4gICAgY29uZmlnOiBzdHJpbmdcbiAgICBjb25maWdEaXI6IHN0cmluZ1xuICAgIHJhd0NvbmZpZzogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5RGVzY3JpcHRpb24gPVxuICB8ICgoKSA9PiBzdHJpbmcpXG4gIHwgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHwgUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICB8IHN0cmluZ1xuIl0sIm5hbWVzIjpbImhhc1RyYW5zcG9ydCIsImhhc1RyYW5zcG9ydE9wdGlvbnMiLCJlbWFpbENvbmZpZyIsInRyYW5zcG9ydCIsInVuZGVmaW5lZCIsInRyYW5zcG9ydE9wdGlvbnMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBNEZnQkEsWUFBWTtlQUFaQTs7SUFRQUMsbUJBQW1CO2VBQW5CQTs7O0FBUlQsU0FBU0QsYUFBYUUsV0FBeUI7SUFDcEQsT0FBTyxBQUFDQSxZQUErQkMsU0FBUyxLQUFLQztBQUN2RDtBQU1PLFNBQVNILG9CQUNkQyxXQUF5QjtJQUV6QixPQUFPLEFBQUNBLFlBQXNDRyxnQkFBZ0IsS0FBS0Q7QUFDckUifQ==
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { BaseDatabaseAdapter } from '../types';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Run all migration down functions before running up
|
|
4
4
|
*/
|
|
5
5
|
export declare function migrateRefresh(this: BaseDatabaseAdapter): Promise<void>;
|
|
6
6
|
//# sourceMappingURL=migrateRefresh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateRefresh.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/migrateRefresh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"migrateRefresh.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/migrateRefresh.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AAKnD;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,mBAAmB,iBA8F7D"}
|
|
@@ -8,19 +8,71 @@ Object.defineProperty(exports, "migrateRefresh", {
|
|
|
8
8
|
return migrateRefresh;
|
|
9
9
|
}
|
|
10
10
|
});
|
|
11
|
+
const _getMigrations = require("./getMigrations");
|
|
11
12
|
const _readMigrationFiles = require("./readMigrationFiles");
|
|
12
13
|
async function migrateRefresh() {
|
|
13
14
|
const { payload } = this;
|
|
14
15
|
const migrationFiles = await (0, _readMigrationFiles.readMigrationFiles)({
|
|
15
16
|
payload
|
|
16
17
|
});
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
const { existingMigrations, latestBatch } = await (0, _getMigrations.getMigrations)({
|
|
19
|
+
payload
|
|
20
|
+
});
|
|
21
|
+
const migrationsToRollback = existingMigrations.filter((migration)=>migration.batch === latestBatch && migration.batch !== -1);
|
|
22
|
+
if (!migrationsToRollback?.length) {
|
|
23
|
+
payload.logger.info({
|
|
24
|
+
msg: 'No migrations to rollback.'
|
|
25
|
+
});
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
payload.logger.info({
|
|
29
|
+
msg: `Rolling back batch ${latestBatch} consisting of ${migrationsToRollback.length} migration(s).`
|
|
21
30
|
});
|
|
22
31
|
let transactionID;
|
|
23
|
-
//
|
|
32
|
+
// Reverse order of migrations to rollback
|
|
33
|
+
migrationsToRollback.reverse();
|
|
34
|
+
for (const migration of migrationsToRollback){
|
|
35
|
+
try {
|
|
36
|
+
const migrationFile = migrationFiles.find((m)=>m.name === migration.name);
|
|
37
|
+
if (!migrationFile) {
|
|
38
|
+
throw new Error(`Migration ${migration.name} not found locally.`);
|
|
39
|
+
}
|
|
40
|
+
payload.logger.info({
|
|
41
|
+
msg: `Migrating down: ${migration.name}`
|
|
42
|
+
});
|
|
43
|
+
const start = Date.now();
|
|
44
|
+
transactionID = await this.beginTransaction();
|
|
45
|
+
await migrationFile.down({
|
|
46
|
+
payload
|
|
47
|
+
});
|
|
48
|
+
payload.logger.info({
|
|
49
|
+
msg: `Migrated down: ${migration.name} (${Date.now() - start}ms)`
|
|
50
|
+
});
|
|
51
|
+
await payload.delete({
|
|
52
|
+
collection: 'payload-migrations',
|
|
53
|
+
req: {
|
|
54
|
+
transactionID
|
|
55
|
+
},
|
|
56
|
+
where: {
|
|
57
|
+
name: {
|
|
58
|
+
equals: migration.name
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
} catch (err) {
|
|
63
|
+
await this.rollbackTransaction(transactionID);
|
|
64
|
+
let msg = `Error running migration ${migration.name}. Rolling back.`;
|
|
65
|
+
if (err instanceof Error) {
|
|
66
|
+
msg += ` ${err.message}`;
|
|
67
|
+
}
|
|
68
|
+
payload.logger.error({
|
|
69
|
+
err,
|
|
70
|
+
msg
|
|
71
|
+
});
|
|
72
|
+
throw err;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
// Run all migrate up
|
|
24
76
|
for (const migration of migrationFiles){
|
|
25
77
|
payload.logger.info({
|
|
26
78
|
msg: `Migrating: ${migration.name}`
|
|
@@ -49,11 +101,11 @@ async function migrateRefresh() {
|
|
|
49
101
|
await this.rollbackTransaction(transactionID);
|
|
50
102
|
payload.logger.error({
|
|
51
103
|
err,
|
|
52
|
-
msg: `Error running migration ${migration.name}
|
|
104
|
+
msg: `Error running migration ${migration.name}. Rolling back.`
|
|
53
105
|
});
|
|
54
106
|
throw err;
|
|
55
107
|
}
|
|
56
108
|
}
|
|
57
109
|
}
|
|
58
110
|
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9taWdyYXRpb25zL21pZ3JhdGVSZWZyZXNoLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXJlc3RyaWN0ZWQtc3ludGF4LCBuby1hd2FpdC1pbi1sb29wICovXG5pbXBvcnQgdHlwZSB7IFBheWxvYWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZXhwcmVzcy90eXBlcydcbmltcG9ydCB0eXBlIHsgQmFzZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBnZXRNaWdyYXRpb25zIH0gZnJvbSAnLi9nZXRNaWdyYXRpb25zJ1xuaW1wb3J0IHsgcmVhZE1pZ3JhdGlvbkZpbGVzIH0gZnJvbSAnLi9yZWFkTWlncmF0aW9uRmlsZXMnXG5cbi8qKlxuICogUnVuIGFsbCBtaWdyYXRpb24gZG93biBmdW5jdGlvbnMgYmVmb3JlIHJ1bm5pbmcgdXBcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIG1pZ3JhdGVSZWZyZXNoKHRoaXM6IEJhc2VEYXRhYmFzZUFkYXB0ZXIpIHtcbiAgY29uc3QgeyBwYXlsb2FkIH0gPSB0aGlzXG4gIGNvbnN0IG1pZ3JhdGlvbkZpbGVzID0gYXdhaXQgcmVhZE1pZ3JhdGlvbkZpbGVzKHsgcGF5bG9hZCB9KVxuXG4gIGNvbnN0IHsgZXhpc3RpbmdNaWdyYXRpb25zLCBsYXRlc3RCYXRjaCB9ID0gYXdhaXQgZ2V0TWlncmF0aW9ucyh7XG4gICAgcGF5bG9hZCxcbiAgfSlcblxuICBjb25zdCBtaWdyYXRpb25zVG9Sb2xsYmFjayA9IGV4aXN0aW5nTWlncmF0aW9ucy5maWx0ZXIoXG4gICAgKG1pZ3JhdGlvbikgPT4gbWlncmF0aW9uLmJhdGNoID09PSBsYXRlc3RCYXRjaCAmJiBtaWdyYXRpb24uYmF0Y2ggIT09IC0xLFxuICApXG5cbiAgaWYgKCFtaWdyYXRpb25zVG9Sb2xsYmFjaz8ubGVuZ3RoKSB7XG4gICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogJ05vIG1pZ3JhdGlvbnMgdG8gcm9sbGJhY2suJyB9KVxuICAgIHJldHVyblxuICB9XG5cbiAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7XG4gICAgbXNnOiBgUm9sbGluZyBiYWNrIGJhdGNoICR7bGF0ZXN0QmF0Y2h9IGNvbnNpc3Rpbmcgb2YgJHttaWdyYXRpb25zVG9Sb2xsYmFjay5sZW5ndGh9IG1pZ3JhdGlvbihzKS5gLFxuICB9KVxuXG4gIGxldCB0cmFuc2FjdGlvbklEXG5cbiAgLy8gUmV2ZXJzZSBvcmRlciBvZiBtaWdyYXRpb25zIHRvIHJvbGxiYWNrXG4gIG1pZ3JhdGlvbnNUb1JvbGxiYWNrLnJldmVyc2UoKVxuXG4gIGZvciAoY29uc3QgbWlncmF0aW9uIG9mIG1pZ3JhdGlvbnNUb1JvbGxiYWNrKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1pZ3JhdGlvbkZpbGUgPSBtaWdyYXRpb25GaWxlcy5maW5kKChtKSA9PiBtLm5hbWUgPT09IG1pZ3JhdGlvbi5uYW1lKVxuICAgICAgaWYgKCFtaWdyYXRpb25GaWxlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTWlncmF0aW9uICR7bWlncmF0aW9uLm5hbWV9IG5vdCBmb3VuZCBsb2NhbGx5LmApXG4gICAgICB9XG5cbiAgICAgIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRpbmcgZG93bjogJHttaWdyYXRpb24ubmFtZX1gIH0pXG4gICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KClcbiAgICAgIHRyYW5zYWN0aW9uSUQgPSBhd2FpdCB0aGlzLmJlZ2luVHJhbnNhY3Rpb24oKVxuICAgICAgYXdhaXQgbWlncmF0aW9uRmlsZS5kb3duKHsgcGF5bG9hZCB9KVxuICAgICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7XG4gICAgICAgIG1zZzogYE1pZ3JhdGVkIGRvd246ICAke21pZ3JhdGlvbi5uYW1lfSAoJHtEYXRlLm5vdygpIC0gc3RhcnR9bXMpYCxcbiAgICAgIH0pXG4gICAgICBhd2FpdCBwYXlsb2FkLmRlbGV0ZSh7XG4gICAgICAgIGNvbGxlY3Rpb246ICdwYXlsb2FkLW1pZ3JhdGlvbnMnLFxuICAgICAgICByZXE6IHtcbiAgICAgICAgICB0cmFuc2FjdGlvbklELFxuICAgICAgICB9IGFzIFBheWxvYWRSZXF1ZXN0LFxuICAgICAgICB3aGVyZToge1xuICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgIGVxdWFsczogbWlncmF0aW9uLm5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICBhd2FpdCB0aGlzLnJvbGxiYWNrVHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JRClcbiAgICAgIGxldCBtc2cgPSBgRXJyb3IgcnVubmluZyBtaWdyYXRpb24gJHttaWdyYXRpb24ubmFtZX0uIFJvbGxpbmcgYmFjay5gXG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgICAgbXNnICs9IGAgJHtlcnIubWVzc2FnZX1gXG4gICAgICB9XG4gICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcih7XG4gICAgICAgIGVycixcbiAgICAgICAgbXNnLFxuICAgICAgfSlcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIC8vIFJ1biBhbGwgbWlncmF0ZSB1cFxuICBmb3IgKGNvbnN0IG1pZ3JhdGlvbiBvZiBtaWdyYXRpb25GaWxlcykge1xuICAgIHBheWxvYWQubG9nZ2VyLmluZm8oeyBtc2c6IGBNaWdyYXRpbmc6ICR7bWlncmF0aW9uLm5hbWV9YCB9KVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KClcbiAgICAgIHRyYW5zYWN0aW9uSUQgPSBhd2FpdCB0aGlzLmJlZ2luVHJhbnNhY3Rpb24oKVxuICAgICAgYXdhaXQgbWlncmF0aW9uLnVwKHsgcGF5bG9hZCB9KVxuICAgICAgYXdhaXQgcGF5bG9hZC5jcmVhdGUoe1xuICAgICAgICBjb2xsZWN0aW9uOiAncGF5bG9hZC1taWdyYXRpb25zJyxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIG5hbWU6IG1pZ3JhdGlvbi5uYW1lLFxuICAgICAgICAgIGV4ZWN1dGVkOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZXE6IHtcbiAgICAgICAgICB0cmFuc2FjdGlvbklELFxuICAgICAgICB9IGFzIFBheWxvYWRSZXF1ZXN0LFxuICAgICAgfSlcbiAgICAgIGF3YWl0IHRoaXMuY29tbWl0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JRClcblxuICAgICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogYE1pZ3JhdGVkOiAgJHttaWdyYXRpb24ubmFtZX0gKCR7RGF0ZS5ub3coKSAtIHN0YXJ0fW1zKWAgfSlcbiAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgIGF3YWl0IHRoaXMucm9sbGJhY2tUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklEKVxuICAgICAgcGF5bG9hZC5sb2dnZXIuZXJyb3Ioe1xuICAgICAgICBlcnIsXG4gICAgICAgIG1zZzogYEVycm9yIHJ1bm5pbmcgbWlncmF0aW9uICR7bWlncmF0aW9uLm5hbWV9LiBSb2xsaW5nIGJhY2suYCxcbiAgICAgIH0pXG4gICAgICB0aHJvdyBlcnJcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJtaWdyYXRlUmVmcmVzaCIsInBheWxvYWQiLCJtaWdyYXRpb25GaWxlcyIsInJlYWRNaWdyYXRpb25GaWxlcyIsImV4aXN0aW5nTWlncmF0aW9ucyIsImxhdGVzdEJhdGNoIiwiZ2V0TWlncmF0aW9ucyIsIm1pZ3JhdGlvbnNUb1JvbGxiYWNrIiwiZmlsdGVyIiwibWlncmF0aW9uIiwiYmF0Y2giLCJsZW5ndGgiLCJsb2dnZXIiLCJpbmZvIiwibXNnIiwidHJhbnNhY3Rpb25JRCIsInJldmVyc2UiLCJtaWdyYXRpb25GaWxlIiwiZmluZCIsIm0iLCJuYW1lIiwiRXJyb3IiLCJzdGFydCIsIkRhdGUiLCJub3ciLCJiZWdpblRyYW5zYWN0aW9uIiwiZG93biIsImRlbGV0ZSIsImNvbGxlY3Rpb24iLCJyZXEiLCJ3aGVyZSIsImVxdWFscyIsImVyciIsInJvbGxiYWNrVHJhbnNhY3Rpb24iLCJtZXNzYWdlIiwiZXJyb3IiLCJ1cCIsImNyZWF0ZSIsImRhdGEiLCJleGVjdXRlZCIsImNvbW1pdFRyYW5zYWN0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQSx5REFBeUQ7Ozs7K0JBVW5DQTs7O2VBQUFBOzs7K0JBTlE7b0NBQ0s7QUFLNUIsZUFBZUE7SUFDcEIsTUFBTSxFQUFFQyxPQUFPLEVBQUUsR0FBRyxJQUFJO0lBQ3hCLE1BQU1DLGlCQUFpQixNQUFNQyxJQUFBQSxzQ0FBa0IsRUFBQztRQUFFRjtJQUFRO0lBRTFELE1BQU0sRUFBRUcsa0JBQWtCLEVBQUVDLFdBQVcsRUFBRSxHQUFHLE1BQU1DLElBQUFBLDRCQUFhLEVBQUM7UUFDOURMO0lBQ0Y7SUFFQSxNQUFNTSx1QkFBdUJILG1CQUFtQkksTUFBTSxDQUNwRCxDQUFDQyxZQUFjQSxVQUFVQyxLQUFLLEtBQUtMLGVBQWVJLFVBQVVDLEtBQUssS0FBSyxDQUFDO0lBR3pFLElBQUksQ0FBQ0gsc0JBQXNCSSxRQUFRO1FBQ2pDVixRQUFRVyxNQUFNLENBQUNDLElBQUksQ0FBQztZQUFFQyxLQUFLO1FBQTZCO1FBQ3hEO0lBQ0Y7SUFFQWIsUUFBUVcsTUFBTSxDQUFDQyxJQUFJLENBQUM7UUFDbEJDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRVQsWUFBWSxlQUFlLEVBQUVFLHFCQUFxQkksTUFBTSxDQUFDLGNBQWMsQ0FBQztJQUNyRztJQUVBLElBQUlJO0lBRUosMENBQTBDO0lBQzFDUixxQkFBcUJTLE9BQU87SUFFNUIsS0FBSyxNQUFNUCxhQUFhRixxQkFBc0I7UUFDNUMsSUFBSTtZQUNGLE1BQU1VLGdCQUFnQmYsZUFBZWdCLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxJQUFJLEtBQUtYLFVBQVVXLElBQUk7WUFDMUUsSUFBSSxDQUFDSCxlQUFlO2dCQUNsQixNQUFNLElBQUlJLE1BQU0s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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const migrationTemplate = "\nimport {\n MigrateUpArgs,\n MigrateDownArgs,\n} from \"@payloadcms/db-mongodb\";\n\nexport async function up({ payload }: MigrateUpArgs): Promise<void> {\n // Migration code\n};\n\nexport async function down({ payload }:
|
|
1
|
+
export declare const migrationTemplate = "\nimport {\n MigrateUpArgs,\n MigrateDownArgs,\n} from \"@payloadcms/db-mongodb\";\n\nexport async function up({ payload }: MigrateUpArgs): Promise<void> {\n // Migration code\n};\n\nexport async function down({ payload }: MigrateDownArgs): Promise<void> {\n // Migration code\n};\n";
|
|
2
2
|
//# sourceMappingURL=migrationTemplate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrationTemplate.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/migrationTemplate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"migrationTemplate.d.ts","sourceRoot":"","sources":["../../../src/database/migrations/migrationTemplate.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,mSAa7B,CAAA"}
|
|
@@ -18,9 +18,9 @@ export async function up({ payload }: MigrateUpArgs): Promise<void> {
|
|
|
18
18
|
// Migration code
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
export async function down({ payload }:
|
|
21
|
+
export async function down({ payload }: MigrateDownArgs): Promise<void> {
|
|
22
22
|
// Migration code
|
|
23
23
|
};
|
|
24
24
|
`;
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kYXRhYmFzZS9taWdyYXRpb25zL21pZ3JhdGlvblRlbXBsYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBtaWdyYXRpb25UZW1wbGF0ZSA9IGBcbmltcG9ydCB7XG4gIE1pZ3JhdGVVcEFyZ3MsXG4gIE1pZ3JhdGVEb3duQXJncyxcbn0gZnJvbSBcIkBwYXlsb2FkY21zL2RiLW1vbmdvZGJcIjtcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHVwKHsgcGF5bG9hZCB9OiBNaWdyYXRlVXBBcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIE1pZ3JhdGlvbiBjb2RlXG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bih7IHBheWxvYWQgfTogTWlncmF0ZURvd25BcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4gIC8vIE1pZ3JhdGlvbiBjb2RlXG59O1xuYFxuIl0sIm5hbWVzIjpbIm1pZ3JhdGlvblRlbXBsYXRlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUFhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSxvQkFBb0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWFsQyxDQUFDIn0=
|
|
@@ -7,5 +7,7 @@ export { deepCopyObject } from '../utilities/deepCopyObject';
|
|
|
7
7
|
export { deepMerge } from '../utilities/deepMerge';
|
|
8
8
|
export { default as flattenTopLevelFields } from '../utilities/flattenTopLevelFields';
|
|
9
9
|
export { formatLabels, formatNames, toWords } from '../utilities/formatLabels';
|
|
10
|
+
export { getIDType } from '../utilities/getIDType';
|
|
10
11
|
export { getTranslation } from '../utilities/getTranslation';
|
|
12
|
+
export { isValidID } from '../utilities/isValidID';
|
|
11
13
|
//# sourceMappingURL=utilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/exports/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAA;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"utilities.d.ts","sourceRoot":"","sources":["../../src/exports/utilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACxF,OAAO,EAAE,8BAA8B,EAAE,MAAM,6CAA6C,CAAA;AAE5F,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAC9E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA"}
|
|
@@ -45,8 +45,14 @@ _export(exports, {
|
|
|
45
45
|
toWords: function() {
|
|
46
46
|
return _formatLabels.toWords;
|
|
47
47
|
},
|
|
48
|
+
getIDType: function() {
|
|
49
|
+
return _getIDType.getIDType;
|
|
50
|
+
},
|
|
48
51
|
getTranslation: function() {
|
|
49
52
|
return _getTranslation.getTranslation;
|
|
53
|
+
},
|
|
54
|
+
isValidID: function() {
|
|
55
|
+
return _isValidID.isValidID;
|
|
50
56
|
}
|
|
51
57
|
});
|
|
52
58
|
const _extractTranslations = require("../translations/extractTranslations");
|
|
@@ -58,11 +64,13 @@ const _deepCopyObject = require("../utilities/deepCopyObject");
|
|
|
58
64
|
const _deepMerge = require("../utilities/deepMerge");
|
|
59
65
|
const _flattenTopLevelFields = /*#__PURE__*/ _interop_require_default(require("../utilities/flattenTopLevelFields"));
|
|
60
66
|
const _formatLabels = require("../utilities/formatLabels");
|
|
67
|
+
const _getIDType = require("../utilities/getIDType");
|
|
61
68
|
const _getTranslation = require("../utilities/getTranslation");
|
|
69
|
+
const _isValidID = require("../utilities/isValidID");
|
|
62
70
|
function _interop_require_default(obj) {
|
|
63
71
|
return obj && obj.__esModule ? obj : {
|
|
64
72
|
default: obj
|
|
65
73
|
};
|
|
66
74
|
}
|
|
67
75
|
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHBvcnRzL3V0aWxpdGllcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBleHRyYWN0VHJhbnNsYXRpb25zIH0gZnJvbSAnLi4vdHJhbnNsYXRpb25zL2V4dHJhY3RUcmFuc2xhdGlvbnMnXG5leHBvcnQgeyBpMThuSW5pdCB9IGZyb20gJy4uL3RyYW5zbGF0aW9ucy9pbml0J1xuXG5leHBvcnQgeyBjb21iaW5lTWVyZ2UgfSBmcm9tICcuLi91dGlsaXRpZXMvY29tYmluZU1lcmdlJ1xuZXhwb3J0IHsgY29uZmlnVG9KU09OU2NoZW1hLCBlbnRpdHlUb0pTT05TY2hlbWEgfSBmcm9tICcuLi91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hJ1xuZXhwb3J0IHsgY3JlYXRlQXJyYXlGcm9tQ29tbWFEZWxpbmVhdGVkIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCdcblxuZXhwb3J0IHsgZGVlcENvcHlPYmplY3QgfSBmcm9tICcuLi91dGlsaXRpZXMvZGVlcENvcHlPYmplY3QnXG5leHBvcnQgeyBkZWVwTWVyZ2UgfSBmcm9tICcuLi91dGlsaXRpZXMvZGVlcE1lcmdlJ1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBmbGF0dGVuVG9wTGV2ZWxGaWVsZHMgfSBmcm9tICcuLi91dGlsaXRpZXMvZmxhdHRlblRvcExldmVsRmllbGRzJ1xuZXhwb3J0IHsgZm9ybWF0TGFiZWxzLCBmb3JtYXROYW1lcywgdG9Xb3JkcyB9IGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXRMYWJlbHMnXG5leHBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuZXhwb3J0IHsgZ2V0VHJhbnNsYXRpb24gfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0VHJhbnNsYXRpb24nXG5leHBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuIl0sIm5hbWVzIjpbImV4dHJhY3RUcmFuc2xhdGlvbnMiLCJpMThuSW5pdCIsImNvbWJpbmVNZXJnZSIsImNvbmZpZ1RvSlNPTlNjaGVtYSIsImVudGl0eVRvSlNPTlNjaGVtYSIsImNyZWF0ZUFycmF5RnJvbUNvbW1hRGVsaW5lYXRlZCIsImRlZXBDb3B5T2JqZWN0IiwiZGVlcE1lcmdlIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwiZm9ybWF0TGFiZWxzIiwiZm9ybWF0TmFtZXMiLCJ0b1dvcmRzIiwiZ2V0SURUeXBlIiwiZ2V0VHJhbnNsYXRpb24iLCJpc1ZhbGlkSUQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBQVNBLG1CQUFtQjtlQUFuQkEsd0NBQW1COztJQUNuQkMsUUFBUTtlQUFSQSxjQUFROztJQUVSQyxZQUFZO2VBQVpBLDBCQUFZOztJQUNaQyxrQkFBa0I7ZUFBbEJBLHNDQUFrQjs7SUFBRUMsa0JBQWtCO2VBQWxCQSxzQ0FBa0I7O0lBQ3RDQyw4QkFBOEI7ZUFBOUJBLDhEQUE4Qjs7SUFFOUJDLGNBQWM7ZUFBZEEsOEJBQWM7O0lBQ2RDLFNBQVM7ZUFBVEEsb0JBQVM7O0lBQ0VDLHFCQUFxQjtlQUFyQkEsOEJBQXFCOztJQUNoQ0MsWUFBWTtlQUFaQSwwQkFBWTs7SUFBRUMsV0FBVztlQUFYQSx5QkFBVzs7SUFBRUMsT0FBTztlQUFQQSxxQkFBTzs7SUFDbENDLFNBQVM7ZUFBVEEsb0JBQVM7O0lBQ1RDLGNBQWM7ZUFBZEEsOEJBQWM7O0lBQ2RDLFNBQVM7ZUFBVEEsb0JBQVM7OztxQ0Fia0I7c0JBQ1g7OEJBRUk7b0NBQzBCO2dEQUNSO2dDQUVoQjsyQkFDTDs4RUFDdUI7OEJBQ0U7MkJBQ3pCO2dDQUNLOzJCQUNMIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAOvB,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAqD1D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAwBtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAsB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO7E,CAAA;AAuFD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAiB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAOvB,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAqD1D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAwBtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAsB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO7E,CAAA;AAuFD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAiB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CA8DtE,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAmBxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAmC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CASxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAmBzD,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAqBxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
|
|
@@ -299,8 +299,8 @@ const upload = (value, options)=>{
|
|
|
299
299
|
return options.t('validation:required');
|
|
300
300
|
}
|
|
301
301
|
if (!_canUseDOM.default && typeof value !== 'undefined' && value !== null) {
|
|
302
|
-
const idField = options
|
|
303
|
-
const type = (0, _getIDType.getIDType)(idField);
|
|
302
|
+
const idField = options?.payload?.collections[options.relationTo]?.config?.fields?.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
|
|
303
|
+
const type = (0, _getIDType.getIDType)(idField, options?.payload?.db?.defaultIDType);
|
|
304
304
|
if (!(0, _isValidID.isValidID)(value, type)) {
|
|
305
305
|
return options.t('validation:validUploadID');
|
|
306
306
|
}
|
|
@@ -348,12 +348,7 @@ const relationship = async (value, options)=>{
|
|
|
348
348
|
}
|
|
349
349
|
if (requestedID === null) return false;
|
|
350
350
|
const idField = payload.collections[collection]?.config?.fields?.find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
|
|
351
|
-
|
|
352
|
-
if (idField) {
|
|
353
|
-
type = idField.type === 'number' ? 'number' : 'text';
|
|
354
|
-
} else {
|
|
355
|
-
type = 'ObjectID';
|
|
356
|
-
}
|
|
351
|
+
const type = (0, _getIDType.getIDType)(idField, options?.payload?.db?.defaultIDType);
|
|
357
352
|
return !(0, _isValidID.isValidID)(requestedID, type);
|
|
358
353
|
});
|
|
359
354
|
if (invalidRelationships.length > 0) {
|
|
@@ -461,4 +456,4 @@ const _default = {
|
|
|
461
456
|
upload
|
|
462
457
|
};
|
|
463
458
|
|
|
464
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNWYWxpZElEIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzVmFsaWRJRCdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IGNvbnN0IG51bWJlcjogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgTnVtYmVyRmllbGQ+ID0gKFxuICB2YWx1ZTogbnVtYmVyIHwgbnVtYmVyW10sXG4gIHsgaGFzTWFueSwgbWF4LCBtYXhSb3dzLCBtaW4sIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgY29uc3QgdG9WYWxpZGF0ZTogbnVtYmVyW10gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICBmb3IgKGNvbnN0IHZhbHVlVG9WYWxpZGF0ZSBvZiB0b1ZhbGlkYXRlKSB7XG4gICAgY29uc3QgZmxvYXRWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWVUb1ZhbGlkYXRlIGFzIHVua25vd24gYXMgc3RyaW5nKVxuICAgIGlmIChcbiAgICAgICh2YWx1ZSAmJiB0eXBlb2YgZmxvYXRWYWx1ZSAhPT0gJ251bWJlcicpIHx8XG4gICAgICAocmVxdWlyZWQgJiYgTnVtYmVyLmlzTmFOKGZsb2F0VmFsdWUpKSB8fFxuICAgICAgKHZhbHVlICYmIE51bWJlci5pc05hTihmbG9hdFZhbHVlKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgJiYgZmxvYXRWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIGZsb2F0VmFsdWUgPCBtaW4pIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWluLCB2YWx1ZSB9KVxuICAgIH1cblxuICAgIGlmIChyZXF1aXJlZCAmJiB0eXBlb2YgZmxvYXRWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9XG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgdG9WYWxpZGF0ZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgIGlmIChtaW5Sb3dzICYmIHRvVmFsaWRhdGUubGVuZ3RoIDwgbWluUm93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7XG4gICAgICAgIGxhYmVsOiB0KCdyb3dzJyksXG4gICAgICAgIG1pbjogbWluUm93cyxcbiAgICAgICAgdmFsdWU6IHRvVmFsaWRhdGUubGVuZ3RoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAobWF4Um93cyAmJiB0b1ZhbGlkYXRlLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4Jywge1xuICAgICAgICBsYWJlbDogdCgncm93cycpLFxuICAgICAgICBtYXg6IG1heFJvd3MsXG4gICAgICAgIHZhbHVlOiB0b1ZhbGlkYXRlLmxlbmd0aCxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHRleHQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgcGF5bG9hZD8uY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpXG4gICAgbWF4TGVuZ3RoID0gcGF5bG9hZC5jb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZT8ubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhc3N3b3JkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0RmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIHBheWxvYWQ/LmNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKVxuICAgIG1heExlbmd0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZW1haWw6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEVtYWlsRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAoKHZhbHVlICYmICEvXFxTW15cXHNAXSpAXFxTK1xcLlxcUysvLnRlc3QodmFsdWUpKSB8fCAoIXZhbHVlICYmIHJlcXVpcmVkKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVtYWlsQWRkcmVzcycpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdGV4dGFyZWE6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRhcmVhRmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIHBheWxvYWQ/LmNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKVxuICAgIG1heExlbmd0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuICBpZiAodmFsdWUgJiYgbWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBtYXhMZW5ndGggfSlcbiAgfVxuXG4gIGlmICh2YWx1ZSAmJiBtaW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGNvZGU6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENvZGVGaWVsZD4gPSAodmFsdWU6IHN0cmluZywgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmIChyZXF1aXJlZCAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGpzb246IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEpTT05GaWVsZCAmIHsganNvbkVycm9yPzogc3RyaW5nIH0+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGpzb25FcnJvciwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKGpzb25FcnJvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBjaGVja2JveDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQ2hlY2tib3hGaWVsZD4gPSAoXG4gIHZhbHVlOiBib29sZWFuLFxuICB7IHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKCh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykgfHwgKHJlcXVpcmVkICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnRydWVPckZhbHNlJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBkYXRlOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBEYXRlRmllbGQ+ID0gKHZhbHVlLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHZhbHVlICYmICFpc05hTihEYXRlLnBhcnNlKHZhbHVlLnRvU3RyaW5nKCkpKSkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKHZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bm90VmFsaWREYXRlJywgeyB2YWx1ZSB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHJpY2hUZXh0OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUZpbHRlck9wdGlvbnM6IFZhbGlkYXRlID0gYXN5bmMgKFxuICB2YWx1ZSxcbiAgeyBpZCwgZGF0YSwgZmlsdGVyT3B0aW9ucywgcGF5bG9hZCwgcmVsYXRpb25Ubywgc2libGluZ0RhdGEsIHQsIHVzZXIgfSxcbikgPT4ge1xuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgZmlsdGVyT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUpIHtcbiAgICBjb25zdCBvcHRpb25zOiB7XG4gICAgICBbY29sbGVjdGlvbjogc3RyaW5nXTogKG51bWJlciB8IHN0cmluZylbXVxuICAgIH0gPSB7fVxuXG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSB0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycgPyBbcmVsYXRpb25Ub10gOiByZWxhdGlvblRvXG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY29sbGVjdGlvbnMubWFwKGFzeW5jIChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbkZpbHRlciA9XG4gICAgICAgICAgdHlwZW9mIGZpbHRlck9wdGlvbnMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IGZpbHRlck9wdGlvbnNcblxuICAgICAgICBjb25zdCB2YWx1ZUlEczogKG51bWJlciB8IHN0cmluZylbXSA9IFtdXG5cbiAgICAgICAgdmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnZhbHVlKSB7XG4gICAgICAgICAgICB2YWx1ZUlEcy5wdXNoKHZhbC52YWx1ZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgIGFuZDogW3sgaWQ6IHsgaW46IHZhbHVlSURzIH0gfSwgb3B0aW9uRmlsdGVyXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuXG4gICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRDogbnVtYmVyIHwgc3RyaW5nXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHJlbGF0aW9uVG9cblxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9wdGlvbnNbY29sbGVjdGlvbl0uaW5kZXhPZihyZXF1ZXN0ZWRJRCkgPT09IC0xXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFJlbGF0aW9uc2hpcHMucmVkdWNlKChlcnIsIGludmFsaWQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX0ke1xuICAgICAgICAgIGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA9PT0gaSArIDEgPyAnLCcgOiAnJ1xuICAgICAgICB9IGBcbiAgICAgIH0sIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbnMnKSkgYXMgc3RyaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCB1cGxvYWQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFVwbG9hZEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gIGlmICghdmFsdWUgJiYgb3B0aW9ucy5yZXF1aXJlZCkge1xuICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBvcHRpb25zLnBheWxvYWQuY29sbGVjdGlvbnNbb3B0aW9ucy5yZWxhdGlvblRvXS5jb25maWcuZmllbGRzLmZpbmQoXG4gICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgKVxuICAgIGNvbnN0IHR5cGUgPSBnZXRJRFR5cGUoaWRGaWVsZClcblxuICAgIGlmICghaXNWYWxpZElEKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjp2YWxpZFVwbG9hZElEJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSZWxhdGlvbnNoaXBGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlOiBSZWxhdGlvbnNoaXBWYWx1ZSxcbiAgb3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHBheWxvYWQsIHJlbGF0aW9uVG8sIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgaWYgKCghdmFsdWUgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkpICYmIHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBpZiAobWluUm93cyAmJiB2YWx1ZS5sZW5ndGggPCBtaW5Sb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWluOiBtaW5Sb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuXG4gICAgaWYgKG1heFJvd3MgJiYgdmFsdWUubGVuZ3RoID4gbWF4Um93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1heDogbWF4Um93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRFxuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSByZWxhdGlvblRvXG5cbiAgICAgICAgLy8gY3VzdG9tIGlkXG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcXVlc3RlZElEID09PSBudWxsKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgaWRGaWVsZCA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0/LmNvbmZpZz8uZmllbGRzPy5maW5kKFxuICAgICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICApXG4gICAgICBsZXQgdHlwZVxuXG4gICAgICBpZiAoaWRGaWVsZCkge1xuICAgICAgICB0eXBlID0gaWRGaWVsZC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogJ3RleHQnXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlID0gJ09iamVjdElEJ1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gIWlzVmFsaWRJRChyZXF1ZXN0ZWRJRCwgdHlwZSlcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBgVGhpcyBmaWVsZCBoYXMgdGhlIGZvbGxvd2luZyBpbnZhbGlkIHNlbGVjdGlvbnM6ICR7aW52YWxpZFJlbGF0aW9uc2hpcHNcbiAgICAgICAgLm1hcCgoZXJyLCBpbnZhbGlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX1gXG4gICAgICAgIH0pXG4gICAgICAgIC5qb2luKCcsICcpfWBcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggOiAwXG5cbiAgaWYgKG1pblJvd3MgJiYgYXJyYXlMZW5ndGggPCBtaW5Sb3dzKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNBdExlYXN0JywgeyBjb3VudDogbWluUm93cywgbGFiZWw6IHQoJ3Jvd3MnKSB9KVxuICB9XG5cbiAgaWYgKG1heFJvd3MgJiYgYXJyYXlMZW5ndGggPiBtYXhSb3dzKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNOb01vcmVUaGFuJywgeyBjb3VudDogbWF4Um93cywgbGFiZWw6IHQoJ3Jvd3MnKSB9KVxuICB9XG5cbiAgaWYgKCFhcnJheUxlbmd0aCAmJiByZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IDEsIGxhYmVsOiB0KCdyb3cnKSB9KVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgU2VsZWN0RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBoYXNNYW55LCBvcHRpb25zLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlLnNvbWUoXG4gICAgICAoaW5wdXQpID0+XG4gICAgICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSBpbnB1dCB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uPy52YWx1ZSA9PT0gaW5wdXQpLFxuICAgICAgICApLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAoaGFzTWFueSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAodmFsdWUgYXMgW10pPy5sZW5ndGggPT09IDApKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmFkaW86IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJhZGlvRmllbGQ+ID0gKHZhbHVlLCB7IG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgdmFsdWVNYXRjaGVzT3B0aW9uID0gb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICAgIHJldHVybiB2YWx1ZU1hdGNoZXNPcHRpb24gfHwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZCA/IHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKSA6IHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGJsb2NrczogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQmxvY2tGaWVsZD4gPSAoXG4gIHZhbHVlLFxuICB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAobWluUm93cyAmJiBhcnJheUxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiBtaW5Sb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAobWF4Um93cyAmJiBhcnJheUxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nLCB7IGNvdW50OiBtYXhSb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAoIWFycmF5TGVuZ3RoICYmIHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNBdExlYXN0JywgeyBjb3VudDogMSwgbGFiZWw6IHQoJ3JvdycpIH0pXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcG9pbnQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFBvaW50RmllbGQ+ID0gKFxuICB2YWx1ZTogW251bWJlciB8IHN0cmluZywgbnVtYmVyIHwgc3RyaW5nXSA9IFsnJywgJyddLFxuICB7IHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgY29uc3QgbG5nID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWVbMF0pKVxuICBjb25zdCBsYXQgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVsxXSkpXG4gIGlmIChcbiAgICByZXF1aXJlZCAmJlxuICAgICgodmFsdWVbMF0gJiYgdmFsdWVbMV0gJiYgdHlwZW9mIGxuZyAhPT0gJ251bWJlcicgJiYgdHlwZW9mIGxhdCAhPT0gJ251bWJlcicpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obG5nKSB8fFxuICAgICAgTnVtYmVyLmlzTmFOKGxhdCkgfHxcbiAgICAgIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggIT09IDIpKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc1R3b051bWJlcnMnKVxuICB9XG5cbiAgaWYgKCh2YWx1ZVsxXSAmJiBOdW1iZXIuaXNOYU4obG5nKSkgfHwgKHZhbHVlWzBdICYmIE51bWJlci5pc05hTihsYXQpKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRJbnB1dCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgZGVmYXVsdCB7XG4gIGFycmF5LFxuICBibG9ja3MsXG4gIGNoZWNrYm94LFxuICBjb2RlLFxuICBkYXRlLFxuICBlbWFpbCxcbiAganNvbixcbiAgbnVtYmVyLFxuICBwYXNzd29yZCxcbiAgcG9pbnQsXG4gIHJhZGlvLFxuICByZWxhdGlvbnNoaXAsXG4gIHJpY2hUZXh0LFxuICBzZWxlY3QsXG4gIHRleHQsXG4gIHRleHRhcmVhLFxuICB1cGxvYWQsXG59XG4iXSwibmFtZXMiOlsibnVtYmVyIiwidGV4dCIsInBhc3N3b3JkIiwiZW1haWwiLCJ0ZXh0YXJlYSIsImNvZGUiLCJqc29uIiwiY2hlY2tib3giLCJkYXRlIiwicmljaFRleHQiLCJ1cGxvYWQiLCJyZWxhdGlvbnNoaXAiLCJhcnJheSIsInNlbGVjdCIsInJhZGlvIiwiYmxvY2tzIiwicG9pbnQiLCJ2YWx1ZSIsImhhc01hbnkiLCJtYXgiLCJtYXhSb3dzIiwibWluIiwibWluUm93cyIsInJlcXVpcmVkIiwidCIsInRvVmFsaWRhdGUiLCJBcnJheSIsImlzQXJyYXkiLCJ2YWx1ZVRvVmFsaWRhdGUiLCJmbG9hdFZhbHVlIiwicGFyc2VGbG9hdCIsIk51bWJlciIsImlzTmFOIiwibGFiZWwiLCJsZW5ndGgiLCJtYXhMZW5ndGgiLCJmaWVsZE1heExlbmd0aCIsIm1pbkxlbmd0aCIsInBheWxvYWQiLCJjb25maWciLCJkZWZhdWx0TWF4VGV4dExlbmd0aCIsInRlc3QiLCJ1bmRlZmluZWQiLCJqc29uRXJyb3IiLCJEYXRlIiwicGFyc2UiLCJ0b1N0cmluZyIsIm9wdGlvbnMiLCJlZGl0b3IiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlRmlsdGVyT3B0aW9ucyIsImlkIiwiZGF0YSIsImZpbHRlck9wdGlvbnMiLCJyZWxhdGlvblRvIiwic2libGluZ0RhdGEiLCJ1c2VyIiwiY2FuVXNlRE9NIiwiY29sbGVjdGlvbnMiLCJ2YWx1ZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiY29sbGVjdGlvbiIsIm9wdGlvbkZpbHRlciIsInZhbHVlSURzIiwiZm9yRWFjaCIsInZhbCIsInB1c2giLCJyZXN1bHQiLCJmaW5kIiwiZGVwdGgiLCJsaW1pdCIsInBhZ2luYXRpb24iLCJ3aGVyZSIsImFuZCIsImluIiwiZG9jcyIsImRvYyIsImludmFsaWRSZWxhdGlvbnNoaXBzIiwiZmlsdGVyIiwicmVxdWVzdGVkSUQiLCJpbmRleE9mIiwicmVkdWNlIiwiZXJyIiwiaW52YWxpZCIsImkiLCJKU09OIiwic3RyaW5naWZ5IiwiaWRGaWVsZCIsImZpZWxkcyIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJ0eXBlIiwiZ2V0SURUeXBlIiwiaXNWYWxpZElEIiwiam9pbiIsImFycmF5TGVuZ3RoIiwiY291bnQiLCJzb21lIiwiaW5wdXQiLCJvcHRpb24iLCJ2YWx1ZU1hdGNoZXNPcHRpb24iLCJsbmciLCJTdHJpbmciLCJsYXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBMkJhQSxNQUFNO2VBQU5BOztJQXVEQUMsSUFBSTtlQUFKQTs7SUEwQkFDLFFBQVE7ZUFBUkE7O0lBeUJBQyxLQUFLO2VBQUxBOztJQVFBQyxRQUFRO2VBQVJBOztJQXdCQUMsSUFBSTtlQUFKQTs7SUFRQUMsSUFBSTtlQUFKQTs7SUFlQUMsUUFBUTtlQUFSQTs7SUFXQUMsSUFBSTtlQUFKQTs7SUFpQkFDLFFBQVE7ZUFBUkE7O0lBOEZBQyxNQUFNO2VBQU5BOztJQW1CQUMsWUFBWTtlQUFaQTs7SUFxRUFDLEtBQUs7ZUFBTEE7O0lBcUJBQyxNQUFNO2VBQU5BOztJQXFDQUMsS0FBSztlQUFMQTs7SUFXQUMsTUFBTTtlQUFOQTs7SUFxQkFDLEtBQUs7ZUFBTEE7O0lBdUJiLE9Ba0JDO2VBbEJEOzs7a0VBemVzQjsyQkFDSTsyQkFDQTt1QkFDTzs7Ozs7O0FBRTFCLE1BQU1oQixTQUFrRCxDQUM3RGlCLE9BQ0EsRUFBRUMsT0FBTyxFQUFFQyxHQUFHLEVBQUVDLE9BQU8sRUFBRUMsR0FBRyxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsQ0FBQyxFQUFFO0lBRXBELE1BQU1DLGFBQXVCQyxNQUFNQyxPQUFPLENBQUNWLFNBQVNBLFFBQVE7UUFBQ0E7S0FBTTtJQUVuRSxnREFBZ0Q7SUFDaEQsS0FBSyxNQUFNVyxtQkFBbUJILFdBQVk7UUFDeEMsTUFBTUksYUFBYUMsV0FBV0Y7UUFDOUIsSUFDRSxBQUFDWCxTQUFTLE9BQU9ZLGVBQWUsWUFDL0JOLFlBQVlRLE9BQU9DLEtBQUssQ0FBQ0gsZUFDekJaLFNBQVNjLE9BQU9DLEtBQUssQ0FBQ0gsYUFDdkI7WUFDQSxPQUFPTCxFQUFFO1FBQ1g7UUFFQSxJQUFJLE9B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
|
|
459
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNWYWxpZElEIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzVmFsaWRJRCdcbmltcG9ydCB7IGZpZWxkQWZmZWN0c0RhdGEgfSBmcm9tICcuL2NvbmZpZy90eXBlcydcblxuZXhwb3J0IGNvbnN0IG51bWJlcjogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgTnVtYmVyRmllbGQ+ID0gKFxuICB2YWx1ZTogbnVtYmVyIHwgbnVtYmVyW10sXG4gIHsgaGFzTWFueSwgbWF4LCBtYXhSb3dzLCBtaW4sIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgY29uc3QgdG9WYWxpZGF0ZTogbnVtYmVyW10gPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICBmb3IgKGNvbnN0IHZhbHVlVG9WYWxpZGF0ZSBvZiB0b1ZhbGlkYXRlKSB7XG4gICAgY29uc3QgZmxvYXRWYWx1ZSA9IHBhcnNlRmxvYXQodmFsdWVUb1ZhbGlkYXRlIGFzIHVua25vd24gYXMgc3RyaW5nKVxuICAgIGlmIChcbiAgICAgICh2YWx1ZSAmJiB0eXBlb2YgZmxvYXRWYWx1ZSAhPT0gJ251bWJlcicpIHx8XG4gICAgICAocmVxdWlyZWQgJiYgTnVtYmVyLmlzTmFOKGZsb2F0VmFsdWUpKSB8fFxuICAgICAgKHZhbHVlICYmIE51bWJlci5pc05hTihmbG9hdFZhbHVlKSlcbiAgICApIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgJiYgZmxvYXRWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIGZsb2F0VmFsdWUgPCBtaW4pIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWluLCB2YWx1ZSB9KVxuICAgIH1cblxuICAgIGlmIChyZXF1aXJlZCAmJiB0eXBlb2YgZmxvYXRWYWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgICB9XG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgdG9WYWxpZGF0ZS5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgIGlmIChtaW5Sb3dzICYmIHRvVmFsaWRhdGUubGVuZ3RoIDwgbWluUm93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7XG4gICAgICAgIGxhYmVsOiB0KCdyb3dzJyksXG4gICAgICAgIG1pbjogbWluUm93cyxcbiAgICAgICAgdmFsdWU6IHRvVmFsaWRhdGUubGVuZ3RoLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAobWF4Um93cyAmJiB0b1ZhbGlkYXRlLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4Jywge1xuICAgICAgICBsYWJlbDogdCgncm93cycpLFxuICAgICAgICBtYXg6IG1heFJvd3MsXG4gICAgICAgIHZhbHVlOiB0b1ZhbGlkYXRlLmxlbmd0aCxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHRleHQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRGaWVsZD4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgcGF5bG9hZD8uY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpXG4gICAgbWF4TGVuZ3RoID0gcGF5bG9hZC5jb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZT8ubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhc3N3b3JkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0RmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIHBheWxvYWQ/LmNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKVxuICAgIG1heExlbmd0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgZW1haWw6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEVtYWlsRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAoKHZhbHVlICYmICEvXFxTW15cXHNAXSpAXFxTK1xcLlxcUysvLnRlc3QodmFsdWUpKSB8fCAoIXZhbHVlICYmIHJlcXVpcmVkKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmVtYWlsQWRkcmVzcycpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgdGV4dGFyZWE6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFRleHRhcmVhRmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIHBheWxvYWQ/LmNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKVxuICAgIG1heExlbmd0aCA9IHBheWxvYWQuY29uZmlnLmRlZmF1bHRNYXhUZXh0TGVuZ3RoXG4gIGlmICh0eXBlb2YgZmllbGRNYXhMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBmaWVsZE1heExlbmd0aFxuICBpZiAodmFsdWUgJiYgbWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBtYXhMZW5ndGggfSlcbiAgfVxuXG4gIGlmICh2YWx1ZSAmJiBtaW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGNvZGU6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIENvZGVGaWVsZD4gPSAodmFsdWU6IHN0cmluZywgeyByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmIChyZXF1aXJlZCAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGpzb246IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEpTT05GaWVsZCAmIHsganNvbkVycm9yPzogc3RyaW5nIH0+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGpzb25FcnJvciwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKGpzb25FcnJvciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBjaGVja2JveDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQ2hlY2tib3hGaWVsZD4gPSAoXG4gIHZhbHVlOiBib29sZWFuLFxuICB7IHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKCh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgIT09ICdib29sZWFuJykgfHwgKHJlcXVpcmVkICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnRydWVPckZhbHNlJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBkYXRlOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBEYXRlRmllbGQ+ID0gKHZhbHVlLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHZhbHVlICYmICFpc05hTihEYXRlLnBhcnNlKHZhbHVlLnRvU3RyaW5nKCkpKSkge1xuICAgIC8qIGVzbGludC1kaXNhYmxlLWxpbmUgKi9cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgaWYgKHZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bm90VmFsaWREYXRlJywgeyB2YWx1ZSB9KVxuICB9XG5cbiAgaWYgKHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHJpY2hUZXh0OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSaWNoVGV4dEZpZWxkLCBSaWNoVGV4dEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWUsXG4gIG9wdGlvbnMsXG4pID0+IHtcbiAgY29uc3QgZWRpdG9yOiBSaWNoVGV4dEFkYXB0ZXIgPSBvcHRpb25zPy5lZGl0b3JcblxuICByZXR1cm4gYXdhaXQgZWRpdG9yLnZhbGlkYXRlKHZhbHVlLCBvcHRpb25zKVxufVxuXG5jb25zdCB2YWxpZGF0ZUZpbHRlck9wdGlvbnM6IFZhbGlkYXRlID0gYXN5bmMgKFxuICB2YWx1ZSxcbiAgeyBpZCwgZGF0YSwgZmlsdGVyT3B0aW9ucywgcGF5bG9hZCwgcmVsYXRpb25Ubywgc2libGluZ0RhdGEsIHQsIHVzZXIgfSxcbikgPT4ge1xuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgZmlsdGVyT3B0aW9ucyAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUpIHtcbiAgICBjb25zdCBvcHRpb25zOiB7XG4gICAgICBbY29sbGVjdGlvbjogc3RyaW5nXTogKG51bWJlciB8IHN0cmluZylbXVxuICAgIH0gPSB7fVxuXG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSB0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycgPyBbcmVsYXRpb25Ub10gOiByZWxhdGlvblRvXG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgY29sbGVjdGlvbnMubWFwKGFzeW5jIChjb2xsZWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbkZpbHRlciA9XG4gICAgICAgICAgdHlwZW9mIGZpbHRlck9wdGlvbnMgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gYXdhaXQgZmlsdGVyT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgaWQsXG4gICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLFxuICAgICAgICAgICAgICAgIHNpYmxpbmdEYXRhLFxuICAgICAgICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICA6IGZpbHRlck9wdGlvbnNcblxuICAgICAgICBjb25zdCB2YWx1ZUlEczogKG51bWJlciB8IHN0cmluZylbXSA9IFtdXG5cbiAgICAgICAgdmFsdWVzLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnZhbHVlKSB7XG4gICAgICAgICAgICB2YWx1ZUlEcy5wdXNoKHZhbC52YWx1ZSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsKVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgIGFuZDogW3sgaWQ6IHsgaW46IHZhbHVlSURzIH0gfSwgb3B0aW9uRmlsdGVyXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KVxuXG4gICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRDogbnVtYmVyIHwgc3RyaW5nXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHJlbGF0aW9uVG9cblxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9wdGlvbnNbY29sbGVjdGlvbl0uaW5kZXhPZihyZXF1ZXN0ZWRJRCkgPT09IC0xXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFJlbGF0aW9uc2hpcHMucmVkdWNlKChlcnIsIGludmFsaWQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX0ke1xuICAgICAgICAgIGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA9PT0gaSArIDEgPyAnLCcgOiAnJ1xuICAgICAgICB9IGBcbiAgICAgIH0sIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbnMnKSkgYXMgc3RyaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCB1cGxvYWQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFVwbG9hZEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gIGlmICghdmFsdWUgJiYgb3B0aW9ucy5yZXF1aXJlZCkge1xuICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBvcHRpb25zPy5wYXlsb2FkPy5jb2xsZWN0aW9uc1tvcHRpb25zLnJlbGF0aW9uVG9dPy5jb25maWc/LmZpZWxkcz8uZmluZChcbiAgICAgIChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJyxcbiAgICApXG4gICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBvcHRpb25zPy5wYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgIGlmICghaXNWYWxpZElEKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjp2YWxpZFVwbG9hZElEJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSZWxhdGlvbnNoaXBGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlOiBSZWxhdGlvbnNoaXBWYWx1ZSxcbiAgb3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCB7IG1heFJvd3MsIG1pblJvd3MsIHBheWxvYWQsIHJlbGF0aW9uVG8sIHJlcXVpcmVkLCB0IH0gPSBvcHRpb25zXG5cbiAgaWYgKCghdmFsdWUgfHwgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCA9PT0gMCkpICYmIHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBpZiAobWluUm93cyAmJiB2YWx1ZS5sZW5ndGggPCBtaW5Sb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWluOiBtaW5Sb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuXG4gICAgaWYgKG1heFJvd3MgJiYgdmFsdWUubGVuZ3RoID4gbWF4Um93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1heDogbWF4Um93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cbiAgfVxuXG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRFxuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSByZWxhdGlvblRvXG5cbiAgICAgICAgLy8gY3VzdG9tIGlkXG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcXVlc3RlZElEID09PSBudWxsKSByZXR1cm4gZmFsc2VcblxuICAgICAgY29uc3QgaWRGaWVsZCA9IHBheWxvYWQuY29sbGVjdGlvbnNbY29sbGVjdGlvbl0/LmNvbmZpZz8uZmllbGRzPy5maW5kKFxuICAgICAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRJRFR5cGUoaWRGaWVsZCwgb3B0aW9ucz8ucGF5bG9hZD8uZGI/LmRlZmF1bHRJRFR5cGUpXG5cbiAgICAgIHJldHVybiAhaXNWYWxpZElEKHJlcXVlc3RlZElELCB0eXBlKVxuICAgIH0pXG5cbiAgICBpZiAoaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIGBUaGlzIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGludmFsaWQgc2VsZWN0aW9uczogJHtpbnZhbGlkUmVsYXRpb25zaGlwc1xuICAgICAgICAubWFwKChlcnIsIGludmFsaWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfWBcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJywgJyl9YFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCBhcnJheTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQXJyYXlGaWVsZD4gPSAoXG4gIHZhbHVlLFxuICB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgY29uc3QgYXJyYXlMZW5ndGggPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlLmxlbmd0aCA6IDBcblxuICBpZiAobWluUm93cyAmJiBhcnJheUxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiBtaW5Sb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAobWF4Um93cyAmJiBhcnJheUxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nLCB7IGNvdW50OiBtYXhSb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAoIWFycmF5TGVuZ3RoICYmIHJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNBdExlYXN0JywgeyBjb3VudDogMSwgbGFiZWw6IHQoJ3JvdycpIH0pXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3Qgc2VsZWN0OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBTZWxlY3RGaWVsZD4gPSAoXG4gIHZhbHVlLFxuICB7IGhhc01hbnksIG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0sXG4pID0+IHtcbiAgaWYgKFxuICAgIEFycmF5LmlzQXJyYXkodmFsdWUpICYmXG4gICAgdmFsdWUuc29tZShcbiAgICAgIChpbnB1dCkgPT5cbiAgICAgICAgIW9wdGlvbnMuc29tZShcbiAgICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IGlucHV0IHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24/LnZhbHVlID09PSBpbnB1dCksXG4gICAgICAgICksXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIGlmIChcbiAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmXG4gICAgIW9wdGlvbnMuc29tZShcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gdmFsdWUgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgcmVxdWlyZWQgJiZcbiAgICAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyB8fFxuICAgICAgdmFsdWUgPT09IG51bGwgfHxcbiAgICAgIChoYXNNYW55ICYmIEFycmF5LmlzQXJyYXkodmFsdWUpICYmICh2YWx1ZSBhcyBbXSk/Lmxlbmd0aCA9PT0gMCkpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCByYWRpbzogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUmFkaW9GaWVsZD4gPSAodmFsdWUsIHsgb3B0aW9ucywgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAodmFsdWUpIHtcbiAgICBjb25zdCB2YWx1ZU1hdGNoZXNPcHRpb24gPSBvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICAgcmV0dXJuIHZhbHVlTWF0Y2hlc09wdGlvbiB8fCB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgcmV0dXJuIHJlcXVpcmVkID8gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpIDogdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYmxvY2tzOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBCbG9ja0ZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBjb25zdCBhcnJheUxlbmd0aCA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUubGVuZ3RoIDogMFxuXG4gIGlmIChtaW5Sb3dzICYmIGFycmF5TGVuZ3RoIDwgbWluUm93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzQXRMZWFzdCcsIHsgY291bnQ6IG1pblJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmIChtYXhSb3dzICYmIGFycmF5TGVuZ3RoID4gbWF4Um93cykge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzTm9Nb3JlVGhhbicsIHsgY291bnQ6IG1heFJvd3MsIGxhYmVsOiB0KCdyb3dzJykgfSlcbiAgfVxuXG4gIGlmICghYXJyYXlMZW5ndGggJiYgcmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiAxLCBsYWJlbDogdCgncm93JykgfSlcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBwb2ludDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUG9pbnRGaWVsZD4gPSAoXG4gIHZhbHVlOiBbbnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmddID0gWycnLCAnJ10sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBjb25zdCBsbmcgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVswXSkpXG4gIGNvbnN0IGxhdCA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzFdKSlcbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKCh2YWx1ZVswXSAmJiB2YWx1ZVsxXSAmJiB0eXBlb2YgbG5nICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgbGF0ICE9PSAnbnVtYmVyJykgfHxcbiAgICAgIE51bWJlci5pc05hTihsbmcpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obGF0KSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAhPT0gMikpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzVHdvTnVtYmVycycpXG4gIH1cblxuICBpZiAoKHZhbHVlWzFdICYmIE51bWJlci5pc05hTihsbmcpKSB8fCAodmFsdWVbMF0gJiYgTnVtYmVyLmlzTmFOKGxhdCkpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYXJyYXksXG4gIGJsb2NrcyxcbiAgY2hlY2tib3gsXG4gIGNvZGUsXG4gIGRhdGUsXG4gIGVtYWlsLFxuICBqc29uLFxuICBudW1iZXIsXG4gIHBhc3N3b3JkLFxuICBwb2ludCxcbiAgcmFkaW8sXG4gIHJlbGF0aW9uc2hpcCxcbiAgcmljaFRleHQsXG4gIHNlbGVjdCxcbiAgdGV4dCxcbiAgdGV4dGFyZWEsXG4gIHVwbG9hZCxcbn1cbiJdLCJuYW1lcyI6WyJudW1iZXIiLCJ0ZXh0IiwicGFzc3dvcmQiLCJlbWFpbCIsInRleHRhcmVhIiwiY29kZSIsImpzb24iLCJjaGVja2JveCIsImRhdGUiLCJyaWNoVGV4dCIsInVwbG9hZCIsInJlbGF0aW9uc2hpcCIsImFycmF5Iiwic2VsZWN0IiwicmFkaW8iLCJibG9ja3MiLCJwb2ludCIsInZhbHVlIiwiaGFzTWFueSIsIm1heCIsIm1heFJvd3MiLCJtaW4iLCJtaW5Sb3dzIiwicmVxdWlyZWQiLCJ0IiwidG9WYWxpZGF0ZSIsIkFycmF5IiwiaXNBcnJheSIsInZhbHVlVG9WYWxpZGF0ZSIsImZsb2F0VmFsdWUiLCJwYXJzZUZsb2F0IiwiTnVtYmVyIiwiaXNOYU4iLCJsYWJlbCIsImxlbmd0aCIsIm1heExlbmd0aCIsImZpZWxkTWF4TGVuZ3RoIiwibWluTGVuZ3RoIiwicGF5bG9hZCIsImNvbmZpZyIsImRlZmF1bHRNYXhUZXh0TGVuZ3RoIiwidGVzdCIsInVuZGVmaW5lZCIsImpzb25FcnJvciIsIkRhdGUiLCJwYXJzZSIsInRvU3RyaW5nIiwib3B0aW9ucyIsImVkaXRvciIsInZhbGlkYXRlIiwidmFsaWRhdGVGaWx0ZXJPcHRpb25zIiwiaWQiLCJkYXRhIiwiZmlsdGVyT3B0aW9ucyIsInJlbGF0aW9uVG8iLCJzaWJsaW5nRGF0YSIsInVzZXIiLCJjYW5Vc2VET00iLCJjb2xsZWN0aW9ucyIsInZhbHVlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJjb2xsZWN0aW9uIiwib3B0aW9uRmlsdGVyIiwidmFsdWVJRHMiLCJmb3JFYWNoIiwidmFsIiwicHVzaCIsInJlc3VsdCIsImZpbmQiLCJkZXB0aCIsImxpbWl0IiwicGFnaW5hdGlvbiIsIndoZXJlIiwiYW5kIiwiaW4iLCJkb2NzIiwiZG9jIiwiaW52YWxpZFJlbGF0aW9uc2hpcHMiLCJmaWx0ZXIiLCJyZXF1ZXN0ZWRJRCIsImluZGV4T2YiLCJyZWR1Y2UiLCJlcnIiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwiZmllbGRzIiwiZmllbGQiLCJmaWVsZEFmZmVjdHNEYXRhIiwibmFtZSIsInR5cGUiLCJnZXRJRFR5cGUiLCJkYiIsImRlZmF1bHRJRFR5cGUiLCJpc1ZhbGlkSUQiLCJqb2luIiwiYXJyYXlMZW5ndGgiLCJjb3VudCIsInNvbWUiLCJpbnB1dCIsIm9wdGlvbiIsInZhbHVlTWF0Y2hlc09wdGlvbiIsImxuZyIsIlN0cmluZyIsImxhdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUEyQmFBLE1BQU07ZUFBTkE7O0lBdURBQyxJQUFJO2VBQUpBOztJQTBCQUMsUUFBUTtlQUFSQTs7SUF5QkFDLEtBQUs7ZUFBTEE7O0lBUUFDLFFBQVE7ZUFBUkE7O0lBd0JBQyxJQUFJO2VBQUpBOztJQVFBQyxJQUFJO2VBQUpBOztJQWVBQyxRQUFRO2VBQVJBOztJQVdBQyxJQUFJO2VBQUpBOztJQWlCQUMsUUFBUTtlQUFSQTs7SUE4RkFDLE1BQU07ZUFBTkE7O0lBbUJBQyxZQUFZO2VBQVpBOztJQWdFQUMsS0FBSztlQUFMQTs7SUFxQkFDLE1BQU07ZUFBTkE7O0lBcUNBQyxLQUFLO2VBQUxBOztJQVdBQyxNQUFNO2VBQU5BOztJQXFCQUMsS0FBSztlQUFMQTs7SUF1QmIsT0FrQkM7ZUFsQkQ7OztrRUFwZXNCOzJCQUNJOzJCQUNBO3VCQUNPOzs7Ozs7QUFFMUIsTUFBTWhCLFNBQWtELENBQzdEaUIsT0FDQSxFQUFFQyxPQUFPLEVBQUVDLEdBQUcsRUFBRUMsT0FBTyxFQUFFQyxHQUFHLEVBQUVDLE9BQU8sRUFBRUMsUUFBUSxFQUFFQyxDQUFDLEVBQUU7SUFFcEQsTUFBTUMsYUFBdUJDLE1BQU1DLE9BQU8sQ0FBQ1YsU0FBU0EsUUFBUTtRQUFDQTtLQUFNO0lBRW5FLGdEQUFnRDtJQUNoRCxLQUFLLE1BQU1XLG1CQUFtQkgsV0FBWTtRQUN4QyxNQUFNSSxhQUFhQyxXQUFXRjtRQUM5QixJQUNFLEFBQUNYLFNBQVMsT0FBT1ksZUFBZSxZQUMvQk4sWUFBWVEsT0FBT0MsS0FBSyxDQUFDSCxlQUN6QlosU0FBU2MsT0FBT0MsS0FBSyxDQUFDSCxhQUN2QjtZQUNBLE9BQU9MLEVBQUU7UUFDWDtRQUVBLElBQUksT0FBT0wsUUFBUSxZQUFZ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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/globals/config/schema.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AASrB,QAAA,MAAM,YAAY,uBAgFN,CAAA;AAEZ,eAAe,YAAY,CAAA"}
|