UNPKG

@maccuaa/intellitrust-issuance-sdk

Version:

TypeScript SDK client for Entrust Adaptive Issuance Instant ID API

648 lines (647 loc) 264 kB
// packages/issuance-sdk/index.ts import * as Oazapfts from "@oazapfts/runtime"; import * as QS from "@oazapfts/runtime/query"; var defaults = { headers: {}, baseUrl: "https://customer.region.trustedauth.com" }; var oazapfts = Oazapfts.runtime(defaults); var servers = { server1: "https://customer.region.trustedauth.com" }; function authenticateAdminApiUsingPost({ adminApiAuthentication }, opts) { return oazapfts.fetchJson("/api/web/v1/adminapi/authenticate", oazapfts.json({ ...opts, method: "POST", body: adminApiAuthentication })); } function listApplicationInfoUsingGet(opts) { return oazapfts.fetchJson("/api/web/v1/applicationinfo", { ...opts }); } function listAdminApiApplicationsUsingGet(opts) { return oazapfts.fetchJson("/api/web/v1/applications/adminapi", { ...opts }); } function createAdminApiApplicationUsingPost({ adminApiApplicationParms }, opts) { return oazapfts.fetchJson("/api/web/v1/applications/adminapi", oazapfts.json({ ...opts, method: "POST", body: adminApiApplicationParms })); } function updateAdminApiSharedSecretUsingPut({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/regenerate/${encodeURIComponent(id)}`, { ...opts, method: "PUT" }); } function getAdminApiApplicationUsingGet({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/${encodeURIComponent(id)}`, { ...opts }); } function updateAdminApiApplicationUsingPut({ id, adminApiApplicationParms }, opts) { return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/${encodeURIComponent(id)}`, oazapfts.json({ ...opts, method: "PUT", body: adminApiApplicationParms })); } function removeAdminApiApplicationUsingDelete({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/applications/adminapi/${encodeURIComponent(id)}`, { ...opts, method: "DELETE" }); } function listApplicationTemplatesUsingGet(opts) { return oazapfts.fetchJson("/api/web/v1/applications/templates", { ...opts }); } function updateEnrollments({ enrollmentApiPayload }, opts) { return oazapfts.fetchJson("/api/web/v1/enrollment/api", oazapfts.json({ ...opts, method: "PUT", body: enrollmentApiPayload })); } function createEnrollments({ enrollmentApiPayload }, opts) { return oazapfts.fetchJson("/api/web/v1/enrollment/api", oazapfts.json({ ...opts, method: "POST", body: enrollmentApiPayload })); } function deleteEnrollments({ enrollmentApiPayload }, opts) { return oazapfts.fetchJson("/api/web/v1/enrollment/api", oazapfts.json({ ...opts, method: "DELETE", body: enrollmentApiPayload })); } function readEnrollments({ readEnrollmentApiPayload }, opts) { return oazapfts.fetchJson("/api/web/v1/enrollment/api/readEnrollments", oazapfts.json({ ...opts, method: "POST", body: readEnrollmentApiPayload })); } function getIssueMfpBulkOperationDetails(opts) { return oazapfts.fetchJson("/api/web/v1/mobileFlashPass", { ...opts }); } function issueMobileFlashPassBulkOperation({ enrollmentMultiFlashPassApiRequestV1 }, opts) { return oazapfts.fetchJson("/api/web/v1/mobileFlashPass", oazapfts.json({ ...opts, method: "POST", body: enrollmentMultiFlashPassApiRequestV1 })); } function cancelMobileFlashPassBulkOperation({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/cancel/${encodeURIComponent(id)}`, { ...opts, method: "DELETE" }); } function downloadMfpBulkOperationLogs({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/download/logs/${encodeURIComponent(id)}`, { ...opts }); } function getFlashPassDownloadUri({ walletType, enrollmentId }, opts) { return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/downloadUri/${encodeURIComponent(walletType)}/${encodeURIComponent(enrollmentId)}`, { ...opts }); } function downloadAppleMobileFlashPass({ enrollmentId, claimToken }, opts) { return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/downloads/apple/${encodeURIComponent(enrollmentId)}/${encodeURIComponent(claimToken)}`, { ...opts }); } function downloadGoogleMobileFlashPass({ enrollmentId, claimToken }, opts) { return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/downloads/google/${encodeURIComponent(enrollmentId)}/${encodeURIComponent(claimToken)}`, { ...opts }); } function getMobileFlashPassRequestDetails({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/mobileFlashPass/${encodeURIComponent(id)}`, { ...opts }); } function getPrintEnrollmentsBulkOperationDetails(opts) { return oazapfts.fetchJson("/api/web/v1/print", { ...opts }); } function printEnrollmentsBulkOperation({ enrollmentMultiPrintApiRequestV1 }, opts) { return oazapfts.fetchJson("/api/web/v1/print", oazapfts.json({ ...opts, method: "POST", body: enrollmentMultiPrintApiRequestV1 })); } function cancelPrintEnrollmentsBulkOperation({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/print/cancel/${encodeURIComponent(id)}`, { ...opts, method: "DELETE" }); } function downloadPrintEnrollmentsBulkOperationLogs({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/print/download/logs/${encodeURIComponent(id)}`, { ...opts }); } function resumePrintJob({ resumePrintJobApiRequest }, opts) { return oazapfts.fetchJson("/api/web/v1/print/resume", oazapfts.json({ ...opts, method: "POST", body: resumePrintJobApiRequest })); } function singleEnrollmentPrint({ enrollmentPrintApiRequestV1 }, opts) { return oazapfts.fetchJson("/api/web/v1/print/single", oazapfts.json({ ...opts, method: "POST", body: enrollmentPrintApiRequestV1 })); } function getPrintRequestDetails({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/print/${encodeURIComponent(id)}`, { ...opts }); } function getPrintCounts(opts) { return oazapfts.fetchJson("/api/web/v1/printcounts", { ...opts }); } function readPrinters({ fields, withStatus }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers${QS.query(QS.explode({ fields, withStatus }))}`, { ...opts }); } function createPrinter({ printer }, opts) { return oazapfts.fetchJson("/api/web/v1/printers", oazapfts.json({ ...opts, method: "POST", body: printer })); } function getPrintStatus({ printStatusId }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/print/${encodeURIComponent(printStatusId)}`, { ...opts }); } function cancelPrint({ printStatusId }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/print/${encodeURIComponent(printStatusId)}`, { ...opts, method: "DELETE" }); } function updatePrint({ printStatusId, basicPrintUpdateRequest }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/print/${encodeURIComponent(printStatusId)}`, oazapfts.json({ ...opts, method: "PATCH", body: basicPrintUpdateRequest })); } function printersSummary(opts) { return oazapfts.fetchJson("/api/web/v1/printers/summary", { ...opts }); } function readPrinter({ printerId }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}`, { ...opts }); } function replacePrinter({ printerId, printer }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}`, oazapfts.json({ ...opts, method: "PUT", body: printer })); } function deletePrinter({ printerId }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}`, { ...opts, method: "DELETE" }); } function readPrinterPreferences({ printerId }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}/preferences`, { ...opts }); } function replacePrinterPreferences({ printerId, printerPreferences }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}/preferences`, oazapfts.json({ ...opts, method: "PUT", body: printerPreferences })); } function print({ printerId, basicPrintRequest }, opts) { return oazapfts.fetchJson(`/api/web/v1/printers/${encodeURIComponent(printerId)}/print`, oazapfts.json({ ...opts, method: "POST", body: basicPrintRequest })); } function deletePrinterWithTenantId({ printerId, tenantId }, opts) { return oazapfts.fetchText(`/api/web/v1/printers/${encodeURIComponent(printerId)}/${encodeURIComponent(tenantId)}`, { ...opts, method: "DELETE" }); } function getPrintJobs(opts) { return oazapfts.fetchJson("/api/web/v1/prints", { ...opts }); } function getPaginatedPrintJobs({ searchParms }, opts) { return oazapfts.fetchJson("/api/web/v1/prints/paginated", oazapfts.json({ ...opts, method: "POST", body: searchParms })); } function getPrintJob({ printJobId }, opts) { return oazapfts.fetchJson(`/api/web/v1/prints/${encodeURIComponent(printJobId)}`, { ...opts }); } function deletePrintJob({ printJobId }, opts) { return oazapfts.fetchJson(`/api/web/v1/prints/${encodeURIComponent(printJobId)}`, { ...opts, method: "DELETE" }); } function cancelAllActivePrintJobs({ printerId }, opts) { return oazapfts.fetchJson(`/api/web/v1/prints/${encodeURIComponent(printerId)}/cancelAllActivePrints`, { ...opts, method: "POST" }); } function listSiteRolesUsingGet(opts) { return oazapfts.fetchJson("/api/web/v1/roles", { ...opts }); } function getSiteRoleUsingGet({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/roles/${encodeURIComponent(id)}`, { ...opts }); } function getSpIdentityProviderUsingGet({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/tenants/${encodeURIComponent(id)}/spidentityprovider`, { ...opts }); } function setSpIdentityProviderUsingPut({ id, spIdentityProviderParms }, opts) { return oazapfts.fetchJson(`/api/web/v1/tenants/${encodeURIComponent(id)}/spidentityprovider`, oazapfts.json({ ...opts, method: "PUT", body: spIdentityProviderParms })); } function getUserRolesUsingGet({ userid }, opts) { return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles`, { ...opts }); } function getUserSiteRoleAssociationUsingGet({ userid, roleid }, opts) { return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles/${encodeURIComponent(roleid)}`, { ...opts }); } function modifyUserSiteRoleAssociationUsingPut({ userid, roleid }, opts) { return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles/${encodeURIComponent(roleid)}`, { ...opts, method: "PUT" }); } function deleteUserSiteRoleAssociationUsingDelete({ userid, roleid }, opts) { return oazapfts.fetchJson(`/api/web/v1/users/${encodeURIComponent(userid)}/roles/${encodeURIComponent(roleid)}`, { ...opts, method: "DELETE" }); } function getWebhooksUsingGet(opts) { return oazapfts.fetchJson("/api/web/v1/webhooks", { ...opts }); } function createWebhookUsingPost({ webhookParms }, opts) { return oazapfts.fetchJson("/api/web/v1/webhooks", oazapfts.json({ ...opts, method: "POST", body: webhookParms })); } function testWebhookUsingPost({ id, webhookTestParms }, opts) { return oazapfts.fetchJson(`/api/web/v1/webhooks/test/${encodeURIComponent(id)}`, oazapfts.json({ ...opts, method: "POST", body: webhookTestParms })); } function readWebhookUsingGet({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/webhooks/${encodeURIComponent(id)}`, { ...opts }); } function updateWebhookUsingPut({ id, webhookParms }, opts) { return oazapfts.fetchJson(`/api/web/v1/webhooks/${encodeURIComponent(id)}`, oazapfts.json({ ...opts, method: "PUT", body: webhookParms })); } function deleteWebhookUsingDelete({ id }, opts) { return oazapfts.fetchJson(`/api/web/v1/webhooks/${encodeURIComponent(id)}`, { ...opts, method: "DELETE" }); } function updateEnrollmentsV2({ body }, opts) { return oazapfts.fetchJson("/api/web/v2/enrollments", oazapfts.json({ ...opts, method: "PUT", body })); } function deleteEnrollmentsV2({ enrollmentDelete }, opts) { return oazapfts.fetchJson("/api/web/v2/enrollments", oazapfts.json({ ...opts, method: "DELETE", body: enrollmentDelete })); } function readEnrollmentsDesignNames(opts) { return oazapfts.fetchJson("/api/web/v2/enrollments/enrollmentDesigns", { ...opts }); } function readEnrollmentsV2({ enrollmentDesignName, offset, limit, body }, opts) { return oazapfts.fetchJson(`/api/web/v2/enrollments/read/${encodeURIComponent(enrollmentDesignName)}${QS.query(QS.explode({ offset, limit }))}`, oazapfts.json({ ...opts, method: "POST", body })); } function createEnrollmentsV2({ enrollmentDesignName, body }, opts) { return oazapfts.fetchJson(`/api/web/v2/enrollments/${encodeURIComponent(enrollmentDesignName)}`, oazapfts.json({ ...opts, method: "POST", body })); } function readEnrollmentV2({ id }, opts) { return oazapfts.fetchJson(`/api/web/v2/enrollments/${encodeURIComponent(id)}`, { ...opts }); } function issueMobileFlashPassBulkOperationV2({ enrollmentMultiFlashPassApiRequestV2 }, opts) { return oazapfts.fetchJson("/api/web/v2/mobileFlashPass", oazapfts.json({ ...opts, method: "POST", body: enrollmentMultiFlashPassApiRequestV2 })); } function downloadMfpLogsV2({ id }, opts) { return oazapfts.fetchJson(`/api/web/v2/mobileFlashPass/download/logs/${encodeURIComponent(id)}`, { ...opts }); } function printEnrollmentsBulkOperationV2({ enrollmentMultiPrintApiRequestV2 }, opts) { return oazapfts.fetchJson("/api/web/v2/print", oazapfts.json({ ...opts, method: "POST", body: enrollmentMultiPrintApiRequestV2 })); } function downloadPrintEnrollmentsLogsV2({ id }, opts) { return oazapfts.fetchJson(`/api/web/v2/print/download/logs/${encodeURIComponent(id)}`, { ...opts }); } function singleEnrollmentPrintV2({ singleEnrollmentPrintRequest }, opts) { return oazapfts.fetchJson("/api/web/v2/print/single", oazapfts.json({ ...opts, method: "POST", body: singleEnrollmentPrintRequest })); } function getPrinters(opts) { return oazapfts.fetchJson("/api/web/v2/printers", { ...opts }); } function getPrintersWithGroupRestriction(opts) { return oazapfts.fetchJson("/api/web/v2/printers/restricted", { ...opts }); } function readPrinterByDeviceId({ deviceId }, opts) { return oazapfts.fetchJson(`/api/web/v2/printers/${encodeURIComponent(deviceId)}`, { ...opts }); } function updatePrinterV2({ printerId, updatePrinterV2Request }, opts) { return oazapfts.fetchJson(`/api/web/v2/printers/${encodeURIComponent(printerId)}`, oazapfts.json({ ...opts, method: "PUT", body: updatePrinterV2Request })); } function getPaginatedPrintJobsV2({ searchParams }, opts) { return oazapfts.fetchJson("/api/web/v2/prints/paginated", oazapfts.json({ ...opts, method: "POST", body: searchParams })); } function getCreateTenantAsyncResultUsingGet({ id }, opts) { return oazapfts.fetchJson(`/api/web/v4/async/tenants/${encodeURIComponent(id)}/createresult`, { ...opts }); } function getCreateTenantAsyncStatusUsingGet({ id }, opts) { return oazapfts.fetchJson(`/api/web/v4/async/tenants/${encodeURIComponent(id)}/createstatus`, { ...opts }); } function getEntitlementUsageInfoUsingPost({ searchParms }, opts) { return oazapfts.fetchJson("/api/web/v4/tenants/entitlements/usage", oazapfts.json({ ...opts, method: "POST", body: searchParms })); } function getTenantUsingGet({ id }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}`, { ...opts }); } function removeTenantUsingDelete({ id }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}`, { ...opts, method: "DELETE" }); } function lockTenantUsingPut({ id }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}/lock`, { ...opts, method: "PUT" }); } function unlockTenantUsingPut({ id }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(id)}/unlock`, { ...opts, method: "PUT" }); } function getTenantEntitlementsUsingGet({ tenantid }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements`, { ...opts }); } function setTenantEntitlementUsingPut({ tenantid, entitlementParms }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements`, oazapfts.json({ ...opts, method: "PUT", body: entitlementParms })); } function getTenantEntitlementUsingGet({ tenantid, $type }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements/${encodeURIComponent($type)}`, { ...opts }); } function deleteTenantEntitlementUsingDelete({ tenantid, $type }, opts) { return oazapfts.fetchJson(`/api/web/v4/tenants/${encodeURIComponent(tenantid)}/entitlements/${encodeURIComponent($type)}`, { ...opts, method: "DELETE" }); } function getTenantsPageUsingPost({ searchParms }, opts) { return oazapfts.fetchJson("/api/web/v4/tenantspaged", oazapfts.json({ ...opts, method: "POST", body: searchParms })); } function createTenantAsyncUsingPost({ createTenantParms }, opts) { return oazapfts.fetchJson("/api/web/v5/async/tenants", oazapfts.json({ ...opts, method: "POST", body: createTenantParms })); } export { updateWebhookUsingPut, updatePrinterV2, updatePrint, updateEnrollmentsV2, updateEnrollments, updateAdminApiSharedSecretUsingPut, updateAdminApiApplicationUsingPut, unlockTenantUsingPut, testWebhookUsingPost, singleEnrollmentPrintV2, singleEnrollmentPrint, setTenantEntitlementUsingPut, setSpIdentityProviderUsingPut, servers, resumePrintJob, replacePrinterPreferences, replacePrinter, removeTenantUsingDelete, removeAdminApiApplicationUsingDelete, readWebhookUsingGet, readPrinters, readPrinterPreferences, readPrinterByDeviceId, readPrinter, readEnrollmentsV2, readEnrollmentsDesignNames, readEnrollments, readEnrollmentV2, printersSummary, printEnrollmentsBulkOperationV2, printEnrollmentsBulkOperation, print, modifyUserSiteRoleAssociationUsingPut, lockTenantUsingPut, listSiteRolesUsingGet, listApplicationTemplatesUsingGet, listApplicationInfoUsingGet, listAdminApiApplicationsUsingGet, issueMobileFlashPassBulkOperationV2, issueMobileFlashPassBulkOperation, getWebhooksUsingGet, getUserSiteRoleAssociationUsingGet, getUserRolesUsingGet, getTenantsPageUsingPost, getTenantUsingGet, getTenantEntitlementsUsingGet, getTenantEntitlementUsingGet, getSpIdentityProviderUsingGet, getSiteRoleUsingGet, getPrintersWithGroupRestriction, getPrinters, getPrintStatus, getPrintRequestDetails, getPrintJobs, getPrintJob, getPrintEnrollmentsBulkOperationDetails, getPrintCounts, getPaginatedPrintJobsV2, getPaginatedPrintJobs, getMobileFlashPassRequestDetails, getIssueMfpBulkOperationDetails, getFlashPassDownloadUri, getEntitlementUsageInfoUsingPost, getCreateTenantAsyncStatusUsingGet, getCreateTenantAsyncResultUsingGet, getAdminApiApplicationUsingGet, downloadPrintEnrollmentsLogsV2, downloadPrintEnrollmentsBulkOperationLogs, downloadMfpLogsV2, downloadMfpBulkOperationLogs, downloadGoogleMobileFlashPass, downloadAppleMobileFlashPass, deleteWebhookUsingDelete, deleteUserSiteRoleAssociationUsingDelete, deleteTenantEntitlementUsingDelete, deletePrinterWithTenantId, deletePrinter, deletePrintJob, deleteEnrollmentsV2, deleteEnrollments, defaults, createWebhookUsingPost, createTenantAsyncUsingPost, createPrinter, createEnrollmentsV2, createEnrollments, createAdminApiApplicationUsingPost, cancelPrintEnrollmentsBulkOperation, cancelPrint, cancelMobileFlashPassBulkOperation, cancelAllActivePrintJobs, authenticateAdminApiUsingPost }; //# debugId=AEF9306797CF3C9764756E2164756E21 //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsicGFja2FnZXMvaXNzdWFuY2Utc2RrL2luZGV4LnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIi8qKlxuICogRW50cnVzdCBJZGVudGl0eSBhcyBhIFNlcnZpY2UgSXNzdWFuY2UgQVBJXG4gKiA1LjQ2XG4gKiBETyBOT1QgTU9ESUZZIC0gVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCB1c2luZyBvYXphcGZ0cy5cbiAqIFNlZSBodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9vYXphcGZ0c1xuICovXG5pbXBvcnQgKiBhcyBPYXphcGZ0cyBmcm9tIFwiQG9hemFwZnRzL3J1bnRpbWVcIjtcbmltcG9ydCAqIGFzIFFTIGZyb20gXCJAb2F6YXBmdHMvcnVudGltZS9xdWVyeVwiO1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRzOiBPYXphcGZ0cy5EZWZhdWx0czxPYXphcGZ0cy5DdXN0b21IZWFkZXJzPiA9IHtcbiAgICBoZWFkZXJzOiB7fSxcbiAgICBiYXNlVXJsOiBcImh0dHBzOi8vY3VzdG9tZXIucmVnaW9uLnRydXN0ZWRhdXRoLmNvbVwiXG59O1xuY29uc3Qgb2F6YXBmdHMgPSBPYXphcGZ0cy5ydW50aW1lKGRlZmF1bHRzKTtcbmV4cG9ydCBjb25zdCBzZXJ2ZXJzID0ge1xuICAgIHNlcnZlcjE6IFwiaHR0cHM6Ly9jdXN0b21lci5yZWdpb24udHJ1c3RlZGF1dGguY29tXCJcbn07XG5leHBvcnQgdHlwZSBBZG1pbkFwaUF1dGhlbnRpY2F0aW9uID0ge1xuICAgIC8qKiBBZG1pbmlzdHJhdGlvbiBBUEkgYXBwbGljYXRpb24gaWQgKi9cbiAgICBhcHBsaWNhdGlvbklkOiBzdHJpbmc7XG4gICAgLyoqIElmIHNldCB0byB0cnVlLCBhIHNlc3Npb24gY29va2llIG5hbWVkIElOVEVMTElUUlVTVF9TRVNTSU9OX0lEIGlzIHJldHVybmVkIHdpdGggdGhlIGF1dGhlbnRpY2F0aW9uIHJlc3BvbnNlLiBUaGlzIGNvb2tpZSBtdXN0IGJlIHJldHVybmVkIHdpdGggYWxsIHN1YnNlcXVlbnQgcmVxdWVzdHMuICovXG4gICAgZW5hYmxlV2ViU2Vzc2lvbj86IGJvb2xlYW47XG4gICAgLyoqIFNoYXJlZCBTZWNyZXQgKi9cbiAgICBzaGFyZWRTZWNyZXQ6IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBBZG1pbkFwaUF1dGhlbnRpY2F0aW9uUmVzdWx0ID0ge1xuICAgIC8qKiBBdXRob3JpemF0aW9uIHRva2VuIHJldHVybmVkIGFmdGVyIGEgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbi4gKi9cbiAgICBhdXRoVG9rZW4/OiBzdHJpbmc7XG4gICAgLyoqIENyZWF0aW9uIHRpbWUgb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuLiAqL1xuICAgIGNyZWF0aW9uVGltZT86IHN0cmluZztcbiAgICAvKiogRXhwaXJ5IHRpbWUgb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHRva2VuLiAqL1xuICAgIGV4cGlyYXRpb25UaW1lPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVycm9ySW5mbyA9IHtcbiAgICAvKiogRXJyb3IgQ29kZXMgc3BlY2lmaWMgdG8gY2F1c2Ugb2YgZmFpbHVyZS4gKi9cbiAgICBlcnJvckNvZGU/OiBzdHJpbmc7XG4gICAgLyoqIEFkZGl0aW9uYWwgRXJyb3IgTWVzc2FnZSBkZXNjcmliaW5nIHRoZSBlcnJvci4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIE9wdGlvbmFsIGFkZGl0aW9uYWwgZXJyb3IgaW5mb3JtYXRpb24uICovXG4gICAgcGFyYW1ldGVycz86IG9iamVjdFtdO1xufTtcbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uSW5mbyA9IHtcbiAgICAvKiogVGhlIHRlbXBsYXRlIHRoZSBhcHBsaWNhdGlvbiB3YXMgY3JlYXRlZCBmcm9tLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSB0ZW1wbGF0ZSB0aGUgYXBwbGljYXRpb24gd2FzIGNyZWF0ZWQgZnJvbS4gKi9cbiAgICBhcHBsaWNhdGlvblRlbXBsYXRlSWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBhcHBsaWNhdGlvbiBhdXRoZW50aWNhdGlvbiBtZXRob2QuICovXG4gICAgYXV0aGVudGljYXRpb25NZXRob2Q/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBhcHBsaWNhdGlvbi4gKi9cbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uLiAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgQWRtaW5BcGlBcHBsaWNhdGlvbiA9IHtcbiAgICAvKiogRGV0ZXJtaW5lcyBpZiB0aGUgYXBwbGljYXRpb24gY2FuIHVzZSBhIGxvbmctbGl2ZWQgdG9rZW4gZm9yIGF1dGhlbnRpY2F0aW9uLiAqL1xuICAgIGFsbG93TG9uZ0xpdmVkVG9rZW4/OiBib29sZWFuO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGVtcGxhdGUgc3BlY2lmaWMgdG8gdGhpcyBhcHBsaWNhdGlvbiB0eXBlLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGU6IHN0cmluZztcbiAgICAvKiogQXBwbGljYXRpb24gdGVtcGxhdGUgaWQgc3BlY2lmaWMgdG8gdGhpcyBhcHBsaWNhdGlvbiB0eXBlLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGVJZD86IHN0cmluZztcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gb2YgYXBwbGljYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgLyoqIEFwcGxpY2F0aW9uIElELiAqL1xuICAgIGlkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgVVVJRCBvZiB0aGUgSVAgQWRkcmVzc2VzIGxpc3QuICovXG4gICAgaXBMaXN0SWQ/OiBzdHJpbmc7XG4gICAgLyoqIExhc3Qgc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbiB0aW1lIHRvIHVzZSBhZG1pbmlzdHJhdGlvbiBhcGkgKi9cbiAgICBsYXN0QXV0aG5EYXRlPzogc3RyaW5nO1xuICAgIC8qKiBCYXNlNjQgZW5jb2RlZCBsb2dvIGltYWdlLiAqL1xuICAgIGxvZ28/OiBzdHJpbmc7XG4gICAgLyoqIE5hbWUgb2YgYXBwbGljYXRpb24uICAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIFNpdGUgcm9sZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFQSSBhcHBsaWNhdGlvbi4gUGFzcyBhbiBlbXB0eSBzdHJpbmcgdmFsdWUgdG8gdW5zZXQgdGhlIHNpdGUgcm9sZS4gKi9cbiAgICByb2xlSWQ/OiBzdHJpbmc7XG4gICAgLyoqIFNoYXJlZCBzZWNyZXQgZm9yIGFwcGxpY2F0aW9uLiAqL1xuICAgIHNoYXJlZFNlY3JldD86IHN0cmluZztcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFQSSBhcHBsaWNhdGlvbi4gUGFzcyBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZS4gKi9cbiAgICBzcFJvbGVJZD86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBBZG1pbkFwaUFwcGxpY2F0aW9uUGFybXMgPSB7XG4gICAgLyoqIERldGVybWluZXMgaWYgYSBsb25nLWxpdmVkIHRva2VuIGlzIGFsbG93ZWQgaW4gdGhpcyBhcHBsaWNhdGlvbi4gKi9cbiAgICBhbGxvd0xvbmdMaXZlZFRva2VuPzogYm9vbGVhbjtcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIGFwcGxpY2F0aW9uIHRlbXBsYXRlLiAgVGhpcyB2YWx1ZSBpcyBvbmx5IHVzZWQgd2hlbiBjcmVhdGluZyBhIG5ldyBhcHBsaWNhdGlvbi4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgYWRtaW5pbnN0cmF0aW9uIEFQSSB0ZW1wbGF0ZSBpcyB1c2VkLiAqL1xuICAgIGFwcGxpY2F0aW9uVGVtcGxhdGVJZD86IHN0cmluZztcbiAgICAvKiogU2hvcnQgZGVzY3JpcHRpb24gb2YgYXBwbGljYXRpb24uICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBJUCBBZGRyZXNzZXMgbGlzdC4gKi9cbiAgICBpcExpc3RJZD86IHN0cmluZztcbiAgICAvKiogQmFzZTY0IGVuY29kZWQgbG9nbyBpbWFnZS4gKi9cbiAgICBsb2dvPzogc3RyaW5nO1xuICAgIC8qKiBOYW1lIG9mIGFwcGxpY2F0aW9uLiAgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBTaXRlIHJvbGUgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBBUEkgYXBwbGljYXRpb24uIFBhc3MgYW4gZW1wdHkgc3RyaW5nIHZhbHVlIHRvIHVuc2V0IHRoZSBzaXRlIHJvbGUuIEVpdGhlciB0aGlzIHZhbHVlIG9yIHNwUm9sZUlkIGlzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGFwcGxpY2F0aW9uLiAqL1xuICAgIHJvbGVJZD86IHN0cmluZztcbiAgICAvKiogVGhlIFVVSUQgb2YgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZSB0byBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFQSSBhcHBsaWNhdGlvbi4gUGFzcyBhbiBlbXB0eSBzdHJpbmcgdG8gdW5zZXQgdGhlIHNlcnZpY2UgcHJvdmlkZXIgcm9sZS4gRWl0aGVyIHRoaXMgdmFsdWUgb3Igcm9sZUlkIGlzIHJlcXVpcmVkIHdoZW4gY3JlYXRpbmcgdGhlIGFwcGxpY2F0aW9uLiAqL1xuICAgIHNwUm9sZUlkPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEFwcGxpY2F0aW9uVGVtcGxhdGUgPSB7XG4gICAgLyoqIFRoZSB0eXBlIHRoZSBhcHBsaWNhdGlvbiB0ZW1wbGF0ZS4gUG9zc2libGUgdmFsdWVzIGFyZSBTQU1MMjAsIFJBRElVUywgQUFBUywgSURHLCBPSURDLCBBVVRIQVBJLCBBRE1JTkFQSSwgU0lFTUFQSS4gKi9cbiAgICBhdXRoZW50aWNhdGlvbk1ldGhvZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgZGVzY3JpcHRpb24gb2YgYXBwbGljYXRpb24gdGVtcGxhdGUuICovXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBVVUlEIG9mIHRoZSBhcHBsaWNhdGlvbiB0ZW1wbGF0ZS4gKi9cbiAgICBpZDogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgYXBwbGljYXRpb24gdGVtcGxhdGUuICovXG4gICAgbmFtZTogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVucm9sbG1lbnRBcGlQYXlsb2FkID0ge1xuICAgIC8qKiBUaGUgRW5yb2xsbWVudCBEYXRhLiBQcmltYXJ5IGtleSBmaWVsZCBpcyBtYW5kYXRvcnkgaW4gY2FzZSBvZiBVcGRhdGUgYW5kIERlbGV0ZS4gKi9cbiAgICBlbnJvbGxtZW50RGF0YTogb2JqZWN0W107XG4gICAgLyoqIE5hbWUgb2YgdGhlIEVucm9sbG1lbnQgRGVzaWduLiAqL1xuICAgIGVucm9sbG1lbnREZXNpZ25OYW1lOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRXJyb3IgPSB7XG4gICAgLyoqIFRoZSBzZXJ2ZXIgZXJyb3IgY29kZSAqL1xuICAgIGNvZGU6IHN0cmluZztcbiAgICAvKiogQSBodW1hbi1yZWFkYWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXJyb3IgKi9cbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0YXJnZXQgb2YgdGhlIGVycm9yICovXG4gICAgdGFyZ2V0Pzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFJlYWRFbnJvbGxtZW50QXBpUGF5bG9hZCA9IHtcbiAgICAvKiogTmFtZSBvZiB0aGUgRW5yb2xsbWVudCBEZXNpZ24uICovXG4gICAgZW5yb2xsbWVudERlc2lnbk5hbWU6IHN0cmluZztcbiAgICAvKiogRmlsdGVyIGNyaXRlcmlhIGJhc2VkIG9uIHdoaWNoIGVucm9sbG1lbnRzIHJlY29yZHMgc2hvdWxkIGJlIGZldGNoZWQuIElmIG5vdCBwcm92aWRlZCwgYWxsIHJlY29yZHMgYXJlIGZldGNoZWQgYmFzZWQgb24gcGFnZSBzaXplIGFuZCBudW1iZXIuICovXG4gICAgZmlsdGVyQ3JpdGVyaWE/OiBvYmplY3RbXTtcbiAgICAvKiogUGFnZSBudW1iZXIgb2YgRW5yb2xsbWVudCByZWNvcmRzIHRvIGJlIGZldGNoZWQuIERlZmF1bHQgaXMgMS4gKi9cbiAgICBwYWdlTnVtYmVyPzogc3RyaW5nO1xuICAgIC8qKiBNYXhpbXVtIG51bWJlciBvZiBFbnJvbGxtZW50IHJlY29yZHMgdG8gYmUgZmV0Y2hlZC4gRGVmYXVsdCBpcyA1MC4gKi9cbiAgICBwYWdlU2l6ZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBJc3N1ZU1vYmlsZUZsYXNoUGFzc0J1bGtPcGVyYXRpb25EZXRhaWxzID0ge1xuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBlcnJvciBlbmNvdW50ZXJlZCBwcm9jZXNzaW5nIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBmaXJzdCByb3cgdGhhdCBmYWlsZWQuICovXG4gICAgZmlyc3RGYWlsZWRSb3c/OiBudW1iZXI7XG4gICAgLyoqIFRoZSB1bmlxdWUgVVVJRCBvZiB0aGUgYnVsayBvcGVyYXRpb24uICovXG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0aW1lIHRoaXMgYnVsayBvcGVyYXRpb24gd2FzIGluaXRpYWxpemVkLiAqL1xuICAgIGluaXRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGlzIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBidWxrIG9wZXJhdGlvbiBjb21wbGV0ZWQgcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nRW5kVGltZT86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGJ1bGsgb3BlcmF0aW9uIGJlZ2FuIHByb2Nlc3NpbmcuICovXG4gICAgcHJvY2Vzc2luZ1N0YXJ0VGltZT86IHN0cmluZztcbiAgICAvKiogSG93IGxvbmcgdGhlIGJ1bGsgb3BlcmF0aW9uIHRvb2sgdG8gY29tcGxldGUgcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nVGltZT86IG51bWJlcjtcbiAgICAvKiogVGhlIG51bWJlciBvZiByb3dzIHRoYXQgaGF2ZSBmYWlsZWQgd2hlbiBwcm9jZXNzZWQuICovXG4gICAgcm93c0ZhaWxlZD86IG51bWJlcjtcbiAgICAvKiogVGhlIG51bWJlciBvZiByb3dzIHN1Y2Nlc3NmdWxseSBwcm9jZXNzZWQuICovXG4gICAgcm93c1Byb2Nlc3NlZD86IG51bWJlcjtcbiAgICAvKiogVGhlIHN0YXRlIG9mIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBzdGF0ZT86IFwiRkFJTEVEXCIgfCBcIkNBTkNFTExFRFwiIHwgXCJDT01QTEVURURcIiB8IFwiQVdBSVRJTkdfREFUQVwiIHwgXCJQUk9DRVNTSU5HXCIgfCBcIlNDSEVEVUxFRFwiO1xuICAgIC8qKiBUaGUgdHlwZSBvZiBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBcInR5cGVcIj86IFwiSU1QT1JUX1VTRVJTXCIgfCBcIklNUE9SVF9HUk9VUFNcIiB8IFwiSU1QT1JUX1VTRVJfR1JPVVBTXCIgfCBcIklNUE9SVF9IQVJEV0FSRV9UT0tFTlNcIiB8IFwiSU1QT1JUX0VOUk9MTE1FTlRTXCIgfCBcIlBSSU5UX0VOUk9MTE1FTlRTXCIgfCBcIlNFTkRfTUZQXCIgfCBcIkFTU0lHTl9FTlRSVVNUX1NUXCIgfCBcIkFTU0lHTl9HT09HTEVfU1RcIiB8IFwiQVNTSUdOX1BBU1NXT1JEU1wiIHwgXCJSRVNFVF9QQVNTV09SRFNcIiB8IFwiREVMRVRFX1VTRVJTXCIgfCBcIklNUE9SVF9JREVOVElUWUdVQVJEXCIgfCBcIklNUE9SVF9HUklEU1wiIHwgXCJFWFBPUlRfQVNTSUdORURHUklEU1wiIHwgXCJFWFBPUlRfQVNTSUdORURUT0tFTlNcIiB8IFwiRVhQT1JUX0FVRElURVZFTlRTXCIgfCBcIkVYUE9SVF9TRUxGQVVESVRFVkVOVFNcIiB8IFwiRVhQT1JUX1VOQVNTSUdORURHUklEU1wiIHwgXCJFWFBPUlRfVU5BU1NJR05FRFRPS0VOU1wiIHwgXCJFWFBPUlRfVVNFUlNcIiB8IFwiU0VUX1JFR0lTVFJBVElPTlwiIHwgXCJTRVRfVkVSSUZJQ0FUSU9OXCIgfCBcIkFTU0lHTl9HUklEU1wiIHwgXCJFWFBPUlRfVVNBR0VcIiB8IFwiQ1JFQVRFX1VOQVNTSUdORURfR1JJRFNcIiB8IFwiQVNTSUdOX0hBUkRXQVJFX1RPS0VOU1wiIHwgXCJTRVRfR1JJRFNcIiB8IFwiRVhQT1JUX0VOUk9MTE1FTlRTXCIgfCBcIkRFTEVURV9HUk9VUFNcIiB8IFwiRVhQT1JUX0dST1VQU1wiIHwgXCJSRVNFVF9UT0tFTlNcIiB8IFwiREVMRVRFX0VOUk9MTE1FTlRTXCIgfCBcIlBST1ZJU0lPTl9TQ0lNXCIgfCBcIkNSRUFURV9URU5BTlRcIiB8IFwiUkVWT0tFX01GUFwiIHwgXCJERUxFVEVfR1JJRFNcIiB8IFwiREVMRVRFX1RPS0VOU1wiO1xufTtcbmV4cG9ydCB0eXBlIEVucm9sbG1lbnRNdWx0aUZsYXNoUGFzc0FwaVJlcXVlc3RWMSA9IHtcbiAgICBlbnJvbGxtZW50RGVzaWduTmFtZT86IHN0cmluZztcbiAgICBwcmltYXJ5S2V5cz86IHN0cmluZ1tdO1xufTtcbmV4cG9ydCB0eXBlIE1vYmlsZUZsYXNoUGFzc1JlcXVlc3REZXRhaWxzID0ge1xuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBlcnJvciBlbmNvdW50ZXJlZCBwcm9jZXNzaW5nIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBmaXJzdCByb3cgdGhhdCBmYWlsZWQuICovXG4gICAgZmlyc3RGYWlsZWRSb3c/OiBudW1iZXI7XG4gICAgLyoqIFRoZSB1bmlxdWUgVVVJRCBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgdGhpcyBidWxrIG9wZXJhdGlvbiB3YXMgaW5pdGlhbGl6ZWQuICovXG4gICAgaW5pdFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgYnVsayBvcGVyYXRpb24uICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGJ1bGsgb3BlcmF0aW9uIGNvbXBsZXRlZCBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdFbmRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYnVsayBvcGVyYXRpb24gYmVnYW4gcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nU3RhcnRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBIb3cgbG9uZyB0aGUgYnVsayBvcGVyYXRpb24gdG9vayB0byBjb21wbGV0ZSBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdUaW1lPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3MgdGhhdCBoYXZlIGZhaWxlZCB3aGVuIHByb2Nlc3NlZC4gKi9cbiAgICByb3dzRmFpbGVkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3Mgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC4gKi9cbiAgICByb3dzUHJvY2Vzc2VkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIHN0YXRlPzogXCJGQUlMRURcIiB8IFwiQ0FOQ0VMTEVEXCIgfCBcIkNPTVBMRVRFRFwiIHwgXCJBV0FJVElOR19EQVRBXCIgfCBcIlBST0NFU1NJTkdcIiB8IFwiU0NIRURVTEVEXCI7XG4gICAgLyoqIFRoZSB0eXBlIG9mIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIFwidHlwZVwiPzogXCJJTVBPUlRfVVNFUlNcIiB8IFwiSU1QT1JUX0dST1VQU1wiIHwgXCJJTVBPUlRfVVNFUl9HUk9VUFNcIiB8IFwiSU1QT1JUX0hBUkRXQVJFX1RPS0VOU1wiIHwgXCJJTVBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiUFJJTlRfRU5ST0xMTUVOVFNcIiB8IFwiU0VORF9NRlBcIiB8IFwiQVNTSUdOX0VOVFJVU1RfU1RcIiB8IFwiQVNTSUdOX0dPT0dMRV9TVFwiIHwgXCJBU1NJR05fUEFTU1dPUkRTXCIgfCBcIlJFU0VUX1BBU1NXT1JEU1wiIHwgXCJERUxFVEVfVVNFUlNcIiB8IFwiSU1QT1JUX0lERU5USVRZR1VBUkRcIiB8IFwiSU1QT1JUX0dSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FRFRPS0VOU1wiIHwgXCJFWFBPUlRfQVVESVRFVkVOVFNcIiB8IFwiRVhQT1JUX1NFTEZBVURJVEVWRU5UU1wiIHwgXCJFWFBPUlRfVU5BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9VTkFTU0lHTkVEVE9LRU5TXCIgfCBcIkVYUE9SVF9VU0VSU1wiIHwgXCJTRVRfUkVHSVNUUkFUSU9OXCIgfCBcIlNFVF9WRVJJRklDQVRJT05cIiB8IFwiQVNTSUdOX0dSSURTXCIgfCBcIkVYUE9SVF9VU0FHRVwiIHwgXCJDUkVBVEVfVU5BU1NJR05FRF9HUklEU1wiIHwgXCJBU1NJR05fSEFSRFdBUkVfVE9LRU5TXCIgfCBcIlNFVF9HUklEU1wiIHwgXCJFWFBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiREVMRVRFX0dST1VQU1wiIHwgXCJFWFBPUlRfR1JPVVBTXCIgfCBcIlJFU0VUX1RPS0VOU1wiIHwgXCJERUxFVEVfRU5ST0xMTUVOVFNcIiB8IFwiUFJPVklTSU9OX1NDSU1cIiB8IFwiQ1JFQVRFX1RFTkFOVFwiIHwgXCJSRVZPS0VfTUZQXCIgfCBcIkRFTEVURV9HUklEU1wiIHwgXCJERUxFVEVfVE9LRU5TXCI7XG59O1xuZXhwb3J0IHR5cGUgQnVsa1ByaW50T3BlcmF0aW9uRGV0YWlscyA9IHtcbiAgICAvKiogVGhlIGVycm9yIG1lc3NhZ2UgZGVzY3JpYmluZyB0aGUgZmlyc3QgZXJyb3IgZW5jb3VudGVyZWQgcHJvY2Vzc2luZyB0aGUgYnVsayBvcGVyYXRpb24uICovXG4gICAgZXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcm93IG51bWJlciBvZiB0aGUgZmlyc3Qgcm93IHRoYXQgZmFpbGVkLiAqL1xuICAgIGZpcnN0RmFpbGVkUm93PzogbnVtYmVyO1xuICAgIC8qKiBUaGUgdW5pcXVlIFVVSUQgb2YgdGhlIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIGlkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSB0aGlzIGJ1bGsgb3BlcmF0aW9uIHdhcyBpbml0aWFsaXplZC4gKi9cbiAgICBpbml0VGltZT86IHN0cmluZztcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYnVsayBvcGVyYXRpb24gY29tcGxldGVkIHByb2Nlc3NpbmcuICovXG4gICAgcHJvY2Vzc2luZ0VuZFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSB0aW1lIGF0IHdoaWNoIHRoZSBidWxrIG9wZXJhdGlvbiBiZWdhbiBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdTdGFydFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIEhvdyBsb25nIHRoZSBidWxrIG9wZXJhdGlvbiB0b29rIHRvIGNvbXBsZXRlIHByb2Nlc3NpbmcuICovXG4gICAgcHJvY2Vzc2luZ1RpbWU/OiBudW1iZXI7XG4gICAgLyoqIFRoZSBudW1iZXIgb2Ygcm93cyB0aGF0IGhhdmUgZmFpbGVkIHdoZW4gcHJvY2Vzc2VkLiAqL1xuICAgIHJvd3NGYWlsZWQ/OiBudW1iZXI7XG4gICAgLyoqIFRoZSBudW1iZXIgb2Ygcm93cyBzdWNjZXNzZnVsbHkgcHJvY2Vzc2VkLiAqL1xuICAgIHJvd3NQcm9jZXNzZWQ/OiBudW1iZXI7XG4gICAgLyoqIFRoZSBzdGF0ZSBvZiB0aGUgYnVsayBvcGVyYXRpb24uICovXG4gICAgc3RhdGU/OiBcIkZBSUxFRFwiIHwgXCJDQU5DRUxMRURcIiB8IFwiQ09NUExFVEVEXCIgfCBcIkFXQUlUSU5HX0RBVEFcIiB8IFwiUFJPQ0VTU0lOR1wiIHwgXCJTQ0hFRFVMRURcIjtcbiAgICAvKiogVGhlIHR5cGUgb2YgYnVsayBvcGVyYXRpb24uICovXG4gICAgXCJ0eXBlXCI/OiBcIklNUE9SVF9VU0VSU1wiIHwgXCJJTVBPUlRfR1JPVVBTXCIgfCBcIklNUE9SVF9VU0VSX0dST1VQU1wiIHwgXCJJTVBPUlRfSEFSRFdBUkVfVE9LRU5TXCIgfCBcIklNUE9SVF9FTlJPTExNRU5UU1wiIHwgXCJQUklOVF9FTlJPTExNRU5UU1wiIHwgXCJTRU5EX01GUFwiIHwgXCJBU1NJR05fRU5UUlVTVF9TVFwiIHwgXCJBU1NJR05fR09PR0xFX1NUXCIgfCBcIkFTU0lHTl9QQVNTV09SRFNcIiB8IFwiUkVTRVRfUEFTU1dPUkRTXCIgfCBcIkRFTEVURV9VU0VSU1wiIHwgXCJJTVBPUlRfSURFTlRJVFlHVUFSRFwiIHwgXCJJTVBPUlRfR1JJRFNcIiB8IFwiRVhQT1JUX0FTU0lHTkVER1JJRFNcIiB8IFwiRVhQT1JUX0FTU0lHTkVEVE9LRU5TXCIgfCBcIkVYUE9SVF9BVURJVEVWRU5UU1wiIHwgXCJFWFBPUlRfU0VMRkFVRElURVZFTlRTXCIgfCBcIkVYUE9SVF9VTkFTU0lHTkVER1JJRFNcIiB8IFwiRVhQT1JUX1VOQVNTSUdORURUT0tFTlNcIiB8IFwiRVhQT1JUX1VTRVJTXCIgfCBcIlNFVF9SRUdJU1RSQVRJT05cIiB8IFwiU0VUX1ZFUklGSUNBVElPTlwiIHwgXCJBU1NJR05fR1JJRFNcIiB8IFwiRVhQT1JUX1VTQUdFXCIgfCBcIkNSRUFURV9VTkFTU0lHTkVEX0dSSURTXCIgfCBcIkFTU0lHTl9IQVJEV0FSRV9UT0tFTlNcIiB8IFwiU0VUX0dSSURTXCIgfCBcIkVYUE9SVF9FTlJPTExNRU5UU1wiIHwgXCJERUxFVEVfR1JPVVBTXCIgfCBcIkVYUE9SVF9HUk9VUFNcIiB8IFwiUkVTRVRfVE9LRU5TXCIgfCBcIkRFTEVURV9FTlJPTExNRU5UU1wiIHwgXCJQUk9WSVNJT05fU0NJTVwiIHwgXCJDUkVBVEVfVEVOQU5UXCIgfCBcIlJFVk9LRV9NRlBcIiB8IFwiREVMRVRFX0dSSURTXCIgfCBcIkRFTEVURV9UT0tFTlNcIjtcbn07XG5leHBvcnQgdHlwZSBDcmVkZW50aWFsRGVzaWduUHJpbnRSZXF1ZXN0UHJpbnRlciA9IHtcbiAgICAvKiogVGhlIG1lc3NhZ2UgdG8gZGlzcGxheSBvbiB0aGUgcHJpbnRlciBMQ0Qgc2NyZWVuIHdoZW4gdGhlIGV4Y2VwdGlvbiBzbG90IGlzIHNlbGVjdGVkLiBNYXhpbXVtIDQ1IGNoYXJhY3RlciBsaW1pdCBmb3IgU2lnbWEgcHJpbnRlcnMsIGFuZCAzMiBjaGFyYWN0ZXIgbGltaXQgZm9yIG9sZGVyIHByaW50ZXJzLiAqL1xuICAgIGV4Y2VwdGlvblNsb3RNZXNzYWdlPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcHJpbnRlciBob3BwZXIgdG8gdXNlLiBWYWx1ZSBvZiAwIHdpbGwgdXNlIHRoZSBwcmludGVyIGV4Y2VwdGlvbiBzbG90LiAqL1xuICAgIGhvcHBlcj86IG51bWJlcjtcbiAgICBwcmludGVySWQ/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgRW5yb2xsbWVudE11bHRpUHJpbnRBcGlSZXF1ZXN0VjEgPSB7XG4gICAgY3JlZGVudGlhbERlc2lnbk5hbWU/OiBzdHJpbmc7XG4gICAgZW5yb2xsbWVudERlc2lnbk5hbWU/OiBzdHJpbmc7XG4gICAgcHJpbWFyeUtleXM/OiBzdHJpbmdbXTtcbiAgICBwcmludGVyRGV0YWlscz86IENyZWRlbnRpYWxEZXNpZ25QcmludFJlcXVlc3RQcmludGVyO1xufTtcbmV4cG9ydCB0eXBlIFJlc3VtZVByaW50Sm9iQXBpUmVxdWVzdCA9IHtcbiAgICAvKiogVGhlIHByaW50IGpvYiBpZCBvYnRhaW5lZCB0aHJvdWdoIHRoZSBwcmUgcHJpbnQgd2ViaG9vayBwYXlsb2FkLiAgKi9cbiAgICBwcmludEpvYklkOiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgUmVzdW1lUHJpbnRKb2JBcGlSZXNwb25zZSA9IHtcbiAgICAvKiogVGhlIGpvYiBpZCBvZiB0aGUgcmVxdWVzdGVkIHByaW50IGpvYiB0byByZXN1bWUgKi9cbiAgICBwcmludEpvYklkPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEVucm9sbG1lbnRQcmludEFwaVJlcXVlc3RWMSA9IHtcbiAgICAvKiogVGhlIGRlc2lnbiBuYW1lIG9mIHRoZSBlbnJvbGxtZW50LiA8Yj5Ob3RlOjwvYj4gcHJpbWFyeUtleSBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQgd2hlbiB0aGlzIHBhcmFtZXRlciBpcyBwcmVzZW50LiAqL1xuICAgIGVucm9sbG1lbnREZXNpZ25OYW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdW5pcXVlIGVucm9sbG1lbnQgSUQgb2J0YWluZWQgZnJvbSBSZWFkIEVucm9sbG1lbnRzIHJlcXVlc3QuIDxiPk5vdGU6PC9iPiBwcmltYXJ5S2V5IGFuZCBlbnJvbGxtZW50RGVzaWduTmFtZSBwYXJhbWV0ZXJzIGFyZSBub3QgcmVxdWlyZWQgd2hlbiB0aGlzIHBhcmFtZXRlciBpcyBwcmVzZW50LiAqL1xuICAgIGVucm9sbG1lbnRJZD86IHN0cmluZztcbiAgICAvKiogVGhlIHByaW1hcnkga2V5IG9mIHRoZSBlbnJvbGxtZW50ICovXG4gICAgcHJpbWFyeUtleT86IHN0cmluZztcbiAgICBwcmludGVyRGV0YWlsczogQ3JlZGVudGlhbERlc2lnblByaW50UmVxdWVzdFByaW50ZXI7XG59O1xuZXhwb3J0IHR5cGUgRW5yb2xsbWVudFByaW50QXBpUmVzcG9uc2UgPSB7XG4gICAgLyoqIFRoZSBqb2IgaWQgb2YgdGhlIHJlcXVlc3RlZCBlbnJvbGxtZW50IHByaW50ICovXG4gICAgcHJpbnRKb2JJZD86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBQcmludFJlcXVlc3REZXRhaWxzID0ge1xuICAgIC8qKiBUaGUgZXJyb3IgbWVzc2FnZSBkZXNjcmliaW5nIHRoZSBmaXJzdCBlcnJvciBlbmNvdW50ZXJlZCBwcm9jZXNzaW5nIHRoZSBidWxrIG9wZXJhdGlvbi4gKi9cbiAgICBlcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByb3cgbnVtYmVyIG9mIHRoZSBmaXJzdCByb3cgdGhhdCBmYWlsZWQuICovXG4gICAgZmlyc3RGYWlsZWRSb3c/OiBudW1iZXI7XG4gICAgLyoqIFRoZSB1bmlxdWUgVVVJRCBvZiB0aGUgcmVxdWVzdC4gKi9cbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgdGhpcyBidWxrIG9wZXJhdGlvbiB3YXMgaW5pdGlhbGl6ZWQuICovXG4gICAgaW5pdFRpbWU/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoaXMgYnVsayBvcGVyYXRpb24uICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKiogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIGJ1bGsgb3BlcmF0aW9uIGNvbXBsZXRlZCBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdFbmRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgYnVsayBvcGVyYXRpb24gYmVnYW4gcHJvY2Vzc2luZy4gKi9cbiAgICBwcm9jZXNzaW5nU3RhcnRUaW1lPzogc3RyaW5nO1xuICAgIC8qKiBIb3cgbG9uZyB0aGUgYnVsayBvcGVyYXRpb24gdG9vayB0byBjb21wbGV0ZSBwcm9jZXNzaW5nLiAqL1xuICAgIHByb2Nlc3NpbmdUaW1lPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3MgdGhhdCBoYXZlIGZhaWxlZCB3aGVuIHByb2Nlc3NlZC4gKi9cbiAgICByb3dzRmFpbGVkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIHJvd3Mgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZC4gKi9cbiAgICByb3dzUHJvY2Vzc2VkPzogbnVtYmVyO1xuICAgIC8qKiBUaGUgc3RhdGUgb2YgdGhlIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIHN0YXRlPzogXCJGQUlMRURcIiB8IFwiQ0FOQ0VMTEVEXCIgfCBcIkNPTVBMRVRFRFwiIHwgXCJBV0FJVElOR19EQVRBXCIgfCBcIlBST0NFU1NJTkdcIiB8IFwiU0NIRURVTEVEXCI7XG4gICAgLyoqIFRoZSB0eXBlIG9mIGJ1bGsgb3BlcmF0aW9uLiAqL1xuICAgIFwidHlwZVwiPzogXCJJTVBPUlRfVVNFUlNcIiB8IFwiSU1QT1JUX0dST1VQU1wiIHwgXCJJTVBPUlRfVVNFUl9HUk9VUFNcIiB8IFwiSU1QT1JUX0hBUkRXQVJFX1RPS0VOU1wiIHwgXCJJTVBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiUFJJTlRfRU5ST0xMTUVOVFNcIiB8IFwiU0VORF9NRlBcIiB8IFwiQVNTSUdOX0VOVFJVU1RfU1RcIiB8IFwiQVNTSUdOX0dPT0dMRV9TVFwiIHwgXCJBU1NJR05fUEFTU1dPUkRTXCIgfCBcIlJFU0VUX1BBU1NXT1JEU1wiIHwgXCJERUxFVEVfVVNFUlNcIiB8IFwiSU1QT1JUX0lERU5USVRZR1VBUkRcIiB8IFwiSU1QT1JUX0dSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9BU1NJR05FRFRPS0VOU1wiIHwgXCJFWFBPUlRfQVVESVRFVkVOVFNcIiB8IFwiRVhQT1JUX1NFTEZBVURJVEVWRU5UU1wiIHwgXCJFWFBPUlRfVU5BU1NJR05FREdSSURTXCIgfCBcIkVYUE9SVF9VTkFTU0lHTkVEVE9LRU5TXCIgfCBcIkVYUE9SVF9VU0VSU1wiIHwgXCJTRVRfUkVHSVNUUkFUSU9OXCIgfCBcIlNFVF9WRVJJRklDQVRJT05cIiB8IFwiQVNTSUdOX0dSSURTXCIgfCBcIkVYUE9SVF9VU0FHRVwiIHwgXCJDUkVBVEVfVU5BU1NJR05FRF9HUklEU1wiIHwgXCJBU1NJR05fSEFSRFdBUkVfVE9LRU5TXCIgfCBcIlNFVF9HUklEU1wiIHwgXCJFWFBPUlRfRU5ST0xMTUVOVFNcIiB8IFwiREVMRVRFX0dST1VQU1wiIHwgXCJFWFBPUlRfR1JPVVBTXCIgfCBcIlJFU0VUX1RPS0VOU1wiIHwgXCJERUxFVEVfRU5ST0xMTUVOVFNcIiB8IFwiUFJPVklTSU9OX1NDSU1cIiB8IFwiQ1JFQVRFX1RFTkFOVFwiIHwgXCJSRVZPS0VfTUZQXCIgfCBcIkRFTEVURV9HUklEU1wiIHwgXCJERUxFVEVfVE9LRU5TXCI7XG59O1xuZXhwb3J0IHR5cGUgUHJpbnRDb3VudCA9IHtcbiAgICAvKiogVGhlIGNvdW50LiAqL1xuICAgIGNvdW50PzogbnVtYmVyO1xuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGUgY291bnQuICovXG4gICAgbmFtZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBQcmludENvdW50UmVzcG9uc2UgPSB7XG4gICAgY291bnRzPzogUHJpbnRDb3VudFtdO1xufTtcbmV4cG9ydCB0eXBlIFByaW50ZXIgPSB7XG4gICAgLyoqIFRvdGFsIGNhcmRzIHN1Y2Nlc3NmdWxseSBwcmludGVkIGJ5IHByaW50ZXIuICovXG4gICAgY2FyZHNQcmludGVkPzogbnVtYmVyO1xuICAgIC8qKiBudW1iZXIgb2YgY2FyZHMgcmVtYWluaW5nIGJlZm9yZSBjbGVhbmluZyAqL1xuICAgIGNhcmRzUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIC8qKiBTZWxmIHNpZ25lZCBjZXJ0cyBmb3IgbGVnYWN5IHByaW50ZXJzICovXG4gICAgY2VydGlmaWNhdGU/OiBzdHJpbmc7XG4gICAgLyoqIFByaW50ZXJzIHVuaXF1ZSBkZXZpY2UgSUQgb2J0YWluZWQgZnJvbSB0aGUgcHJpbnRlciBMQ0QuICovXG4gICAgZGV2aWNlSWQ/OiBzdHJpbmc7XG4gICAgLyoqIE9wdGlvbmFsIHBoeXNpY2FsIGxvY2F0aW9uIG9mIHRoZSBwcmludGVyLiAqL1xuICAgIGxvY2F0aW9uPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcHJpbnRlciBuYW1lICovXG4gICAgbmFtZT86IHN0cmluZztcbiAgICAvKiogVGhlIHByaW50ZXIgcGxhdGZvcm0gKi9cbiAgICBwcmludGVyUGxhdGZvcm0/OiBzdHJpbmc7XG4gICAgLyoqIEEgZmxhZyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgcHJpbnRlciBoYXMgUFRQIHJpYmJvbiBvciBub3QgKElnbm9yZSB0aGlzIGZpZWxkIGluIHRoZSBBUEkgcmVxdWVzdCBvciByZXNwb25zZSkgKi9cbiAgICBwdHBSZWFkeT86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBwYXJ0IG51bWJlciBvZiB0aGUgcmV0cmFuc2ZlciByaWJib24gaW5zdGFsbGVkIG9uIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUGFydE51bWJlcj86IHN0cmluZztcbiAgICAvKiogcGVyY2VudGFnZSBvZiByZXRyYW5zZmVyIHJvbGwgcmVtYWluaW5nIGluIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUm9sbFJlbWFpbmluZz86IG51bWJlcjtcbiAgICAvKiogSUQgb2YgdGhlIGNsb3VkIGVuYWJsZWQgcmliYm9uIGluc3RhbGxlZCBpbiB0aGUgcHJpbnRlciAoSWdub3JlIHRoaXMgZmllbGQgaW4gdGhlIEFQSSByZXF1ZXN0IG9yIHJlc3BvbnNlKSAqL1xuICAgIHJpYmJvbklkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFydCBudW1iZXIgb2YgdGhlIHByaW50IHJpYmJvbiBpbnN0YWxsZWQgb24gcHJpbnRlciAqL1xuICAgIHJpYmJvblBhcnROdW1iZXI/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZWdpb24gb2YgdGhlIHJpYmJvbiBpbnN0YWxsZWQgKi9cbiAgICByaWJib25SZWdpb24/OiBzdHJpbmc7XG4gICAgLyoqIHBlcmNlbnRhZ2Ugb2YgcmliYm9uIHJlbWFpbmluZyBpbiBwcmludGVyICovXG4gICAgcmliYm9uUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIC8qKiBBIGZsYWcgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHNtYXJ0IGNhcmQgc2ltdWxhdG9yIG5lZWRzIHRvIGJlIGludm9rZWQgKi9cbiAgICBzY1NpbXVsYXRvcj86IGJvb2xlYW47XG4gICAgLyoqIFRoZSB1bmlxdWUgc2VyaWFsIG51bWJlciBvZiB0aGUgcHJpbnRlciAqL1xuICAgIHNlcmlhbE51bWJlcj86IHN0cmluZztcbiAgICBzdGF0dXM/OiBcIkJVU1lcIiB8IFwiSURMRVwiIHwgXCJUSU1FT1VUXCIgfCBcIklOVkFMSURcIjtcbn07XG5leHBvcnQgdHlwZSBQcmludGVyUmVhZCA9IHtcbiAgICAvKiogVG90YWwgY2FyZHMgc3VjY2Vzc2Z1bGx5IHByaW50ZWQgYnkgcHJpbnRlci4gKi9cbiAgICBjYXJkc1ByaW50ZWQ/OiBudW1iZXI7XG4gICAgLyoqIG51bWJlciBvZiBjYXJkcyByZW1haW5pbmcgYmVmb3JlIGNsZWFuaW5nICovXG4gICAgY2FyZHNSZW1haW5pbmc/OiBudW1iZXI7XG4gICAgLyoqIFNlbGYgc2lnbmVkIGNlcnRzIGZvciBsZWdhY3kgcHJpbnRlcnMgKi9cbiAgICBjZXJ0aWZpY2F0ZT86IHN0cmluZztcbiAgICAvKiogUHJpbnRlcnMgdW5pcXVlIGRldmljZSBJRCBvYnRhaW5lZCBmcm9tIHRoZSBwcmludGVyIExDRC4gKi9cbiAgICBkZXZpY2VJZD86IHN0cmluZztcbiAgICAvKiogVGhlIGRhdGUgd2hlbiB0aGUgZmlybXdhcmUgdmVyc2lvbiB3YXMgbGFzdCBjaGVja2VkICovXG4gICAgZmlybXdhcmVDaGVja2VkT24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZXF1ZXN0IGlkIGZvciBhbiBhY3RpdmUgZmlybXdhcmUgdXBkYXRlICovXG4gICAgZmlybXdhcmVVcGRhdGVSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBkYXRlIHdoZW4gdGhlIGZpcm13YXJlIHZlcnNpb24gd2FzIGxhc3QgdXBkYXRlZCAqL1xuICAgIGZpcm13YXJlVXBkYXRlZE9uPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgZmlybXdhcmUgdmVyc2lvbiAqL1xuICAgIGZpcm13YXJlVmVyc2lvbj86IHN0cmluZztcbiAgICAvKiogVGhlIG51bWJlciBvZiBob3BwZXJzICovXG4gICAgaG9wcGVycz86IG51bWJlcjtcbiAgICBpZD86IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgcGh5c2ljYWwgbG9jYXRpb24gb2YgdGhlIHByaW50ZXIuICovXG4gICAgbG9jYXRpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcmludGVyIG1vZGVsICovXG4gICAgbW9kZWw/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcmludGVyIG5hbWUgKi9cbiAgICBuYW1lPzogc3RyaW5nO1xuICAgIC8qKiBBIG5ld2VyIGZpcm13YXJlIHZlcnNpb24gKi9cbiAgICBuZXdGaXJtd2FyZVZlcnNpb24/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSBwcmludGVyIHBsYXRmb3JtICovXG4gICAgcHJpbnRlclBsYXRmb3JtPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcHJpbnRlciB0eXBlICovXG4gICAgcHJpbnRlclR5cGU/OiBzdHJpbmc7XG4gICAgLyoqIEEgZmxhZyB1c2VkIHRvIGRldGVybWluZSBpZiB0aGUgcHJpbnRlciBoYXMgUFRQIHJpYmJvbiBvciBub3QgKElnbm9yZSB0aGlzIGZpZWxkIGluIHRoZSBBUEkgcmVxdWVzdCBvciByZXNwb25zZSkgKi9cbiAgICBwdHBSZWFkeT86IGJvb2xlYW47XG4gICAgLyoqIFRoZSBwYXJ0IG51bWJlciBvZiB0aGUgcmV0cmFuc2ZlciByaWJib24gaW5zdGFsbGVkIG9uIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUGFydE51bWJlcj86IHN0cmluZztcbiAgICAvKiogcGVyY2VudGFnZSBvZiByZXRyYW5zZmVyIHJvbGwgcmVtYWluaW5nIGluIHByaW50ZXIgKi9cbiAgICByZXRyYW5zZmVyUm9sbFJlbWFpbmluZz86IG51bWJlcjtcbiAgICAvKiogSUQgb2YgdGhlIGNsb3VkIGVuYWJsZWQgcmliYm9uIGluc3RhbGxlZCBpbiB0aGUgcHJpbnRlciAoSWdub3JlIHRoaXMgZmllbGQgaW4gdGhlIEFQSSByZXF1ZXN0IG9yIHJlc3BvbnNlKSAqL1xuICAgIHJpYmJvbklkPzogc3RyaW5nO1xuICAgIC8qKiBUaGUgcGFydCBudW1iZXIgb2YgdGhlIHByaW50IHJpYmJvbiBpbnN0YWxsZWQgb24gcHJpbnRlciAqL1xuICAgIHJpYmJvblBhcnROdW1iZXI/OiBzdHJpbmc7XG4gICAgLyoqIFRoZSByZWdpb24gb2YgdGhlIHJpYmJvbiBpbnN0YWxsZWQgKi9cbiAgICByaWJib25SZWdpb24/OiBzdHJpbmc7XG4gICAgLyoqIHBlcmNlbnRhZ2Ugb2YgcmliYm9uIHJlbWFpbmluZyBpbiBwcmludGVyICovXG4gICAgcmliYm9uUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIC8qKiBBIGZsYWcgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIHNtYXJ0IGNhcmQgc2ltdWxhdG9yIG5lZWRzIHRvIGJlIGludm9rZWQgKi9cbiAgICBzY1NpbXVsYXRvcj86IGJvb2xlYW47XG4gICAgLyoqIFRoZSB1bmlxdWUgc2VyaWFsIG51bWJlciBvZiB0aGUgcHJpbnRlciAqL1xuICAgIHNlcmlhbE51bWJlcj86IHN0cmluZztcbiAgICBzdGF0dXM/OiBcIkJVU1lcIiB8IFwiSURMRVwiIHwgXCJUSU1FT1VUXCIgfCBcIklOVkFMSURcIjtcbn07XG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkUmVzcG9uc2UgPSB7XG4gICAgbGluaz86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBSZXNvdXJjZUlkUmVzcG9uc2VSZWFkID0ge1xuICAgIGlkPzogc3RyaW5nO1xuICAgIGxpbms/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgU21hcnRDYXJkQ29tbWFuZFJlc3BvbnNlID0ge1xuICAgIHJlc3BvbnNlPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIEJhc2ljUHJpbnRSZXNwb25zZURhdGEgPSB7XG4gICAgY29waWVzUmVtYWluaW5nPzogbnVtYmVyO1xuICAgIHNtYXJ0Y2FyZFJlc3BvbnNlcz86IFNtYXJ0Q2FyZENvbW1hbmRSZXNwb25zZVtdO1xufTtcbmV4cG9ydCB0eXBlIEJhc2ljUHJpbnRSZXNwb25zZSA9IHtcbiAgICBjcmVhdGVkT24/OiBzdHJpbmc7XG4gICAgZGF0YT86IEJhc2ljUHJpbnRSZXNwb25zZURhdGE7XG4gICAgc3RhdHVzPzogXCJRVUVVRURcIiB8IFwiV0FJVElOR19TTUFSVENBUkRcIiB8IFwiSU5fUFJPR1JFU1NcIiB8IFwiQ09NUExFVEVEXCIgfCBcIkZBSUxFRFwiIHwgXCJDQU5DRUxMRURcIiB8IFwiVU5LTk9XTlwiIHwgXCJBV0FJVElOR19QUklOVFwiO1xuICAgIC8qKiBQcmludCBzdGF0dXMgZGV0YWlscyByZXR1cm5lZCBmcm9tIHRoZSBwcmludGVyLiAqL1xuICAgIHN0YXR1c0RldGFpbHM/OiBzdHJpbmc7XG4gICAgdXBkYXRlZE9uPzogc3RyaW5nO1xufTtcbmV4cG9ydCB0eXBlIFNtYXJ0Q2FyZENvbW1hbmQgPSB7XG4gICAgY29tbWFuZDogc3RyaW5nO1xuICAgIHJlc3VsdE1hdGNoZXI/OiBzdHJpbmc7XG4gICAgXCJ0eXBlXCI6IFwiQVBEVVwiIHwgXCJDT1VQTEVSXCI7XG59O1xuZXhwb3J0IHR5cGUgQmFzaWNQcmludFVwZGF0ZVJlcXVlc3RTbWFydGNhcmQgPSB7XG4gICAgY29tbWFuZHM/OiBTbWFydENhcmRDb21tYW5kW107XG59O1xuZXhwb3J0IHR5cGUgQmFzaWNQcmludFVwZGF0ZVJlcXVlc3QgPSB7XG4gICAgc21hcnRjYXJkPzogQmFzaWNQcmludFVwZGF0ZVJlcXVlc3RTbWFydGNhcmQ7XG59O1xuZXhwb3J0IHR5cGUgUHJpbnRPcGVyYXRpb25SZXNwb25zZSA9IHtcbiAgICBwcmludFN0YXR1cz86IFJlc291cmNlSWRSZXNwb25zZTtcbn07XG5leHBvcnQgdHlwZSBQcmludE9wZXJhdGlvblJlc3BvbnNlUmVhZCA9IHtcbiAgICBwcmludFN0YXR1cz86IFJlc291cmNlSWRSZXNwb25zZVJlYWQ7XG59O1xuZXhwb3J0IHR5cGUgUHJpbnRlclN1bW1hcnlSZXNwb25zZSA9IHtcbiAgICAvKiogVGhlIHRvdGFsIG51bWJlciBvZiBwcmludGVycyAqL1xuICAgIHByaW50ZXJDb3VudD86IG51bWJlcjtcbn07XG5leHBvcnQgdHlwZSBMYW1pbmF0b3JzID0ge1xuICAgIExhbWluYXRvcjE/OiBcIkRPX05PVF9BUFBMWVwiIHwgXCJBUFBMWV9PTkNFXCIgfCBcIkFQUExZX1RXSUNFXCI7XG4gICAgTGFtaW5hdG9yMj86IFwiRE9fTk9UX0FQUExZXCIgfCBcIkFQUExZX09OQ0VcIiB8IFwiQVBQTFlfVFdJQ0VcIjtcbn07XG5leHBvcnQgdHlwZSBMYW1pbmF0aW9uID0ge1xuICAgIGJhY2s/OiBMYW1pbmF0b3JzO1xuICAgIGZyb250PzogTGFtaW5hdG9ycztcbn07XG5leHBvcnQgdHlwZSBQcmludGVyUHJlZmVyZW5jZXMgPSB7XG4gICAgYmFja09yaWVudGF0aW9uPzogXCJQT1JUUkFJVFwiIHwgXCJMQU5EU0NBUEVcIjtcbiAgICAvKiogUm90YXRlIGJhY2sgc2lkZSBjYXJkIGltYWdlIDE4MCBkZWdyZWVzPyAqL1xuICAgIGJhY2tSb3RhdGUxODA/OiBib29sZWFuO1xuICAgIC8qKiBQcmludCBiYXIgY29kZXMgdXNpbmcgbW9ub2Nocm9tZT8gKi9cbiAgICBiYXJDb2Rlc01vbm9jaHJvbWU/OiBib29sZWFuO1xuICAgIC8qKiBQcmludCBibGFjayBpbWFnZSBwaXhlbHMgdXNpbmcgbW9ub2Nocm9tZT8gKi9cbiAgICBibGFja1BpeGVsc01vbm9jaHJvbWU/OiBib29sZWFuO1xuICAgIC8qKiBUaGUgbnVtYmVyIG9mIGNvcGllcyB0byBwcmludCAqL1xuICAgIGNvcGllcz86IG51bWJlcjtcbiAgICAvKiogRGVib3cgY2FyZD8gKi9cbiAgICBkZWJvdz86IGJvb2xlYW47XG4gICAgZGlzYWJsZVByaW50aW5nPzogXCJmYWxzZVwiIHwgXCJBTExcIiB8IFwiRlJPTlRcIiB8IFwiQkFDS1wiO1xuICAgIGZyb250T3JpZW50YXRpb24/OiBcIlBPUlRSQUlUXCIgfCBcIkxBTkRTQ0FQRVwiO1xuICAgIC8qKiBSb3RhdGUgZnJvbnQgc2lkZSBjYXJkIGltYWdlIDE4MCBkZWdyZWVzPyAqL1xuICAgIGZyb250Um90YXRlMTgwPzogYm9vbGVhbjtcbiAgICAvKiogVGhlIGlucHV0IGhvcHBlciBmcm9tIHdoaWNoIHRvIHNlbGVjdCBhIGNhcmQgKi9cbiAgICBpbnB1dEhvcHBlcj86IG51bWJlcjtcbiAgICBsYW1pbmF0aW9uPzogTGFtaW5hdGlvbjtcbiAgICAvKiogVGhlIHJlc29sdXRpb24gYXQgd2hpY2ggcHJpbnRlciB3aWxsIHByaW50LiBUaGlzIHdpbGwgYmUgTkEgaWYgcHJpbnRlciBzdXBwb3J0cyBvbmx5IDEgcmVzb2x1dGlvbi4gKi9cbiAgICBwcmludFJlc29sdXRpb24/OiBcIk5BXCIgfCBcIkJFU1RcIiB8IFwiU1RBTkRBUkRcIjtcbiAgICAvKiogUmV3cml0ZSBjYXJkPyAqL1xuICAgIHJld3JpdGU/OiBib29sZWFuO1xuICAgIHNwbGl0UmliYm9uPzogXCJmYWxzZVwiIHwgXCJZTUNUX0ZST05UX0tfQkFDS1wiIHwgXCJZTUNfRlJPTlRfS1RfQkFDS1wiIHwgXCJLX0ZST05UX1lNQ1RfQkFDS1wiIHwgXCJZTUNfRlJPTlRfS19CQUNLXCIgfCBcIktfRlJPTlRfWU1DX0JBQ0tcIiB8IFwiS19GUk9OVF9ZTUNLVF9CQUNLXCIgfCBcIktUX0ZST05UX1lNQ0tUX0JBQ0tcIiB8IFwiWU1DS1RUX0ZST05UX0tfQkFDS1wiIHwgXCJZTUNLRlRfRlJPTlRfS19CQ