@veho/turvo-integration-sdk 0.1.0-beta.0 → 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/lib/cjs/api/turvoPublicApi.d.ts +3 -3
- package/lib/cjs/api/turvoPublicApi.js +2 -2
- package/lib/cjs/db/client.d.ts +9 -0
- package/lib/cjs/db/client.js +37 -0
- package/lib/cjs/db/facilityMapping.d.ts +27 -0
- package/lib/cjs/db/facilityMapping.js +178 -0
- package/lib/cjs/shipmentTracking/trackingService.js +54 -14
- package/lib/cjs/types/errors.d.ts +6 -0
- package/lib/cjs/types/errors.js +12 -2
- package/lib/cjs/types/facilityMapping.d.ts +9 -0
- package/lib/cjs/types/facilityMapping.js +3 -0
- package/lib/cjs/types/shipment.d.ts +11 -0
- package/lib/cjs/types/shipment.js +1 -1
- package/lib/cjs/types/tracking.d.ts +13 -11
- package/lib/cjs/types/tracking.js +1 -1
- package/lib/esm/api/turvoPublicApi.d.ts +3 -3
- package/lib/esm/api/turvoPublicApi.js +2 -2
- package/lib/esm/db/client.d.ts +9 -0
- package/lib/esm/db/client.js +26 -0
- package/lib/esm/db/facilityMapping.d.ts +27 -0
- package/lib/esm/db/facilityMapping.js +171 -0
- package/lib/esm/shipmentTracking/trackingService.js +55 -15
- package/lib/esm/types/errors.d.ts +6 -0
- package/lib/esm/types/errors.js +10 -1
- package/lib/esm/types/facilityMapping.d.ts +9 -0
- package/lib/esm/types/facilityMapping.js +2 -0
- package/lib/esm/types/shipment.d.ts +11 -0
- package/lib/esm/types/shipment.js +1 -1
- package/lib/esm/types/tracking.d.ts +13 -11
- package/lib/esm/types/tracking.js +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +5 -1
|
@@ -19,6 +19,16 @@ export type TurvoGlobalRoute = {
|
|
|
19
19
|
carrierOrderSourceId: number;
|
|
20
20
|
}[];
|
|
21
21
|
appointment: TurvoAppointment;
|
|
22
|
+
etaToStop: {
|
|
23
|
+
etaValue: string;
|
|
24
|
+
nextMiles: number;
|
|
25
|
+
} | null;
|
|
26
|
+
distance: {
|
|
27
|
+
value: number;
|
|
28
|
+
units: {
|
|
29
|
+
value: string;
|
|
30
|
+
};
|
|
31
|
+
} | null;
|
|
22
32
|
}[];
|
|
23
33
|
export type TurvoLane = {
|
|
24
34
|
start: string;
|
|
@@ -271,6 +281,7 @@ export type TurvoCarrierOrder = {
|
|
|
271
281
|
payable: true;
|
|
272
282
|
}[];
|
|
273
283
|
};
|
|
284
|
+
deleted?: boolean;
|
|
274
285
|
};
|
|
275
286
|
export type TurvoAppointment = {
|
|
276
287
|
date: string;
|
|
@@ -43,4 +43,4 @@ var TurvoFlexAttributeManagementTypeValue;
|
|
|
43
43
|
TurvoFlexAttributeManagementTypeValue["VehoManaged"] = "Veho Managed";
|
|
44
44
|
TurvoFlexAttributeManagementTypeValue["Insourced"] = "Insourced";
|
|
45
45
|
})(TurvoFlexAttributeManagementTypeValue || (exports.TurvoFlexAttributeManagementTypeValue = TurvoFlexAttributeManagementTypeValue = {}));
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvc2hpcG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBMEVhLFFBQUEsK0JBQStCLEdBQXdCO0lBQ2xFLElBQUksRUFBRTtRQUNKLEdBQUcsRUFBRSxNQUFNO1FBQ1gsS0FBSyxFQUFFLFdBQVc7S0FDbkI7Q0FDRixDQUFBO0FBRVksUUFBQSwrQkFBK0IsR0FBd0I7SUFDbEUsSUFBSSxFQUFFO1FBQ0osR0FBRyxFQUFFLE1BQU07UUFDWCxLQUFLLEVBQUUsV0FBVztLQUNuQjtDQUNGLENBQUE7QUFFWSxRQUFBLCtCQUErQixHQUF3QjtJQUNsRSxJQUFJLEVBQUU7UUFDSixHQUFHLEVBQUUsTUFBTTtRQUNYLEtBQUssRUFBRSxXQUFXO0tBQ25CO0NBQ0YsQ0FBQTtBQUVZLFFBQUEsOEJBQThCLEdBQXdCO0lBQ2pFLElBQUksRUFBRTtRQUNKLEdBQUcsRUFBRSxNQUFNO1FBQ1gsS0FBSyxFQUFFLFVBQVU7S0FDbEI7Q0FDRixDQUFBO0FBRVksUUFBQSxpQ0FBaUMsR0FBd0I7SUFDcEUsSUFBSSxFQUFFO1FBQ0osR0FBRyxFQUFFLE1BQU07UUFDWCxLQUFLLEVBQUUsYUFBYTtLQUNyQjtDQUNGLENBQUE7QUFFWSxRQUFBLHFCQUFxQixHQUFHLGtCQUFrQixDQUFBO0FBK0J2RCxJQUFZLCtCQUdYO0FBSEQsV0FBWSwrQkFBK0I7SUFDekMsMkRBQXdCLENBQUE7SUFDeEIsNkRBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUhXLCtCQUErQiwrQ0FBL0IsK0JBQStCLFFBRzFDO0FBRUQsSUFBWSxxQ0FJWDtBQUpELFdBQVkscUNBQXFDO0lBQy9DLHlFQUFnQyxDQUFBO0lBQ2hDLHFFQUE0QixDQUFBO0lBQzVCLGdFQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxxQ0FBcUMscURBQXJDLHFDQUFxQyxRQUloRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1cnZvRGF0ZVdpdGhUaW1lem9uZSwgVHVydm9EYXRlV2l0aFRpbWV6b25lTG93ZXJjYXNlLCBUdXJ2b0xvb2t1cCB9IGZyb20gJy4vY29tbW9uJ1xuXG5leHBvcnQgdHlwZSBUdXJ2b0dsb2JhbFJvdXRlID0ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xuICBnbG9iYWxTaGlwTG9jYXRpb25Tb3VyY2VJZD86IHN0cmluZ1xuICBzY2hlZHVsaW5nVHlwZTogVHVydm9Mb29rdXBcbiAgc3RvcFR5cGU6IFR1cnZvTG9va3VwXG4gIGxvY2F0aW9uOiB7XG4gICAgaWQ6IG51bWJlclxuICB9XG4gIGRlbGV0ZWQ/OiBib29sZWFuXG4gIHNlcXVlbmNlOiBudW1iZXJcbiAgc2VnbWVudFNlcXVlbmNlOiBudW1iZXJcbiAgc3RhdGU6ICdPUEVOJyB8ICdDTE9TRUQnIHwgJ0NPTVBMRVRFRCdcbiAgY3VzdG9tZXJPcmRlcj86IFR1cnZvQ3VzdG9tZXJPcmRlcltdXG4gIGNhcnJpZXJPcmRlcj86IHsgY2FycmllcklkOiBudW1iZXI7IGlkOiBudW1iZXI7IGNhcnJpZXJPcmRlclNvdXJjZUlkOiBudW1iZXIgfVtdXG4gIGFwcG9pbnRtZW50OiBUdXJ2b0FwcG9pbnRtZW50XG59W11cblxuZXhwb3J0IHR5cGUgVHVydm9MYW5lID0ge1xuICBzdGFydDogc3RyaW5nXG4gIGVuZDogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnRTZXJ2aWNlID0gVHVydm9Mb29rdXAgJlxuICAoXG4gICAgfCB7XG4gICAgICAgIGtleTogJzIxMjA0J1xuICAgICAgICB2YWx1ZTogJ1RlYW0nXG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIGtleTogJzIxMjE0J1xuICAgICAgICB2YWx1ZTogJ0Ryb3AgdHJhaWxlcidcbiAgICAgIH1cbiAgKVxuXG5leHBvcnQgdHlwZSBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBub3Rlcz86IHN0cmluZ1xuICBhdHRyaWJ1dGVzPzoge1xuICAgIGV0YVZhbFV0Yz86IHN0cmluZ1xuICAgIG5leHRfZXRhX2NhbF92YWxfdGltZXpvbmU/OiBzdHJpbmdcbiAgfVxuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBzdGF0dXNEYXRlPzogVHVydm9EYXRlV2l0aFRpbWV6b25lTG93ZXJjYXNlXG4gIHVwZGF0ZWRCeT86IHtcbiAgICBpZD86IG51bWJlclxuICAgIG5hbWU/OiBzdHJpbmdcbiAgfVxuICBsb2NhdGlvbj86IFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvblxuICBydW5uaW5nTGF0ZT86IFR1cnZvU2hpcG1lbnRTdGF0dXNSdW5uaW5nTGF0ZVxuICBjb2RlOlxuICAgIHwgeyBrZXk6ICcyMTAwJzsgdmFsdWU6ICdRdW90ZSBhY3RpdmUnIH1cbiAgICB8IHsga2V5OiAnMjEwMSc7IHZhbHVlOiAnVGVuZGVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwMic7IHZhbHVlOiAnQ292ZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTAzJzsgdmFsdWU6ICdEaXNwYXRjaGVkJyB9XG4gICAgfCB7IGtleTogJzIxMDQnOyB2YWx1ZTogJ0F0IHBpY2t1cCcgfVxuICAgIHwgeyBrZXk6ICcyMTA1JzsgdmFsdWU6ICdFbiByb3V0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA2JzsgdmFsdWU6ICdBdCBkZWxpdmVyeScgfVxuICAgIHwgeyBrZXk6ICcyMTE2JzsgdmFsdWU6ICdSb3V0ZSBDb21wbGV0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA3JzsgdmFsdWU6ICdEZWxpdmVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwOCc7IHZhbHVlOiAnUmVhZHkgZm9yIGJpbGxpbmcnIH1cbiAgICB8IHsga2V5OiAnMjEwOSc7IHZhbHVlOiAnUHJvY2Vzc2luZycgfVxuICAgIHwgeyBrZXk6ICcyMTEwJzsgdmFsdWU6ICdDYXJyaWVyIHBhaWQnIH1cbiAgICB8IHsga2V5OiAnMjExMSc7IHZhbHVlOiAnQ3VzdG9tZXIgcGFpZCcgfVxuICAgIHwgeyBrZXk6ICcyMTEyJzsgdmFsdWU6ICdDb21wbGV0ZWQnIH1cbiAgICB8IHsga2V5OiAnMjExMyc7IHZhbHVlOiAnQ2FuY2VsZWQnIH1cbiAgICB8IHsga2V5OiAnMjExNyc7IHZhbHVlOiAnVGVuZGVyIC0gb2ZmZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE4JzsgdmFsdWU6ICdUZW5kZXIgLSBhY2NlcHRlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE5JzsgdmFsdWU6ICdUZW5kZXIgLSByZWplY3RlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE0JzsgdmFsdWU6ICdRdW90ZSBpbmFjdGl2ZScgfVxuICAgIHwgeyBrZXk6ICcyMTE1JzsgdmFsdWU6ICdQaWNrZWQgdXAnIH1cbn1cblxuZXhwb3J0IGNvbnN0IFRVUlZPX1NISVBNRU5UX1NUQVRVU19ERUxJVkVSRUQ6IFR1cnZvU2hpcG1lbnRTdGF0dXMgPSB7XG4gIGNvZGU6IHtcbiAgICBrZXk6ICcyMTA3JyxcbiAgICB2YWx1ZTogJ0RlbGl2ZXJlZCcsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBUVVJWT19TSElQTUVOVF9TVEFUVVNfUElDS0VEX1VQOiBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBjb2RlOiB7XG4gICAga2V5OiAnMjExNScsXG4gICAgdmFsdWU6ICdQaWNrZWQgdXAnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgVFVSVk9fU0hJUE1FTlRfU1RBVFVTX0FUX1BJQ0tVUDogVHVydm9TaGlwbWVudFN0YXR1cyA9IHtcbiAgY29kZToge1xuICAgIGtleTogJzIxMDQnLFxuICAgIHZhbHVlOiAnQXQgcGlja3VwJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFRVUlZPX1NISVBNRU5UX1NUQVRVU19FTl9ST1VURTogVHVydm9TaGlwbWVudFN0YXR1cyA9IHtcbiAgY29kZToge1xuICAgIGtleTogJzIxMDUnLFxuICAgIHZhbHVlOiAnRW4gcm91dGUnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgVFVSVk9fU0hJUE1FTlRfU1RBVFVTX0FUX0RFTElWRVJZOiBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBjb2RlOiB7XG4gICAga2V5OiAnMjEwNicsXG4gICAgdmFsdWU6ICdBdCBkZWxpdmVyeScsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBUVVJWT19TWVNURU1fQk9UX1VTRVIgPSAnVHVydm8gU3lzdGVtIEJvdCdcblxuZXhwb3J0IHR5cGUgVHVydm9XZWJob29rU3RhdHVzID0ge1xuICBjb2RlOlxuICAgIHwgeyBrZXk6ICcyMTAwJzsgdmFsdWU6ICdRdW90ZSBhY3RpdmUnIH1cbiAgICB8IHsga2V5OiAnMjEwMSc7IHZhbHVlOiAnVGVuZGVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwMic7IHZhbHVlOiAnQ292ZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTAzJzsgdmFsdWU6ICdEaXNwYXRjaGVkJyB9XG4gICAgfCB7IGtleTogJzIxMDQnOyB2YWx1ZTogJ0F0IHBpY2t1cCcgfVxuICAgIHwgeyBrZXk6ICcyMTA1JzsgdmFsdWU6ICdFbiByb3V0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA2JzsgdmFsdWU6ICdBdCBkZWxpdmVyeScgfVxuICAgIHwgeyBrZXk6ICcyMTE2JzsgdmFsdWU6ICdSb3V0ZSBDb21wbGV0ZScgfVxuICAgIHwgeyBrZXk6ICcyMTA3JzsgdmFsdWU6ICdEZWxpdmVyZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwOCc7IHZhbHVlOiAnUmVhZHkgZm9yIGJpbGxpbmcnIH1cbiAgICB8IHsga2V5OiAnMjEwOSc7IHZhbHVlOiAnUHJvY2Vzc2luZycgfVxuICAgIHwgeyBrZXk6ICcyMTEwJzsgdmFsdWU6ICdDYXJyaWVyIHBhaWQnIH1cbiAgICB8IHsga2V5OiAnMjExMSc7IHZhbHVlOiAnQ3VzdG9tZXIgcGFpZCcgfVxuICAgIHwgeyBrZXk6ICcyMTEyJzsgdmFsdWU6ICdDb21wbGV0ZWQnIH1cbiAgICB8IHsga2V5OiAnMjExMyc7IHZhbHVlOiAnQ2FuY2VsZWQnIH1cbiAgICB8IHsga2V5OiAnMjExNyc7IHZhbHVlOiAnVGVuZGVyIC0gb2ZmZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE4JzsgdmFsdWU6ICdUZW5kZXIgLSBhY2NlcHRlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE5JzsgdmFsdWU6ICdUZW5kZXIgLSByZWplY3RlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE0JzsgdmFsdWU6ICdRdW90ZSBpbmFjdGl2ZScgfVxuICAgIHwgeyBrZXk6ICcyMTE1JzsgdmFsdWU6ICdQaWNrZWQgdXAnIH1cbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgdXBkYXRlZEJ5Pzoge1xuICAgIGlkPzogbnVtYmVyXG4gICAgbmFtZT86IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCBlbnVtIFR1cnZvRmxleEF0dHJpYnV0ZUxhbmVUeXBlVmFsdWUge1xuICBGaXJzdE1pbGUgPSAnRmlyc3QgTWlsZScsXG4gIE1pZGRsZU1pbGUgPSAnTWlkZGxlIE1pbGUnLFxufVxuXG5leHBvcnQgZW51bSBUdXJ2b0ZsZXhBdHRyaWJ1dGVNYW5hZ2VtZW50VHlwZVZhbHVlIHtcbiAgQ2xpZW50TWFuYWdlZCA9ICdDbGllbnQgTWFuYWdlZCcsXG4gIFZlaG9NYW5hZ2VkID0gJ1ZlaG8gTWFuYWdlZCcsXG4gIEluc291cmNlZCA9ICdJbnNvdXJjZWQnLFxufVxuXG5leHBvcnQgdHlwZSBUdXJ2b0ZsZXhBdHRyaWJ1dGUgPSB7XG4gIGRlbGV0ZWQ6IGZhbHNlXG4gIHNoYXJlYWJsZTogZmFsc2Vcbn0gJiAoXG4gIHwge1xuICAgICAgbmFtZTogJ0xhbmUgVHlwZSdcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdmFsdWU6ICdEUk9QRE9XTidcbiAgICAgICAga2V5OiAnVmVob1RlY2hfTGFuZV9UeXBlJ1xuICAgICAgfVxuICAgICAgdmFsdWU6IFR1cnZvRmxleEF0dHJpYnV0ZUxhbmVUeXBlVmFsdWVcbiAgICB9XG4gIHwge1xuICAgICAgbmFtZTogJ01hbmFnZW1lbnQgVHlwZSdcbiAgICAgIHR5cGU6IHtcbiAgICAgICAgdmFsdWU6ICdEUk9QRE9XTidcbiAgICAgICAga2V5OiAnVmVob1RlY2hfTWFuYWdlbWVudF9UeXBlJ1xuICAgICAgfVxuICAgICAgdmFsdWU6IFR1cnZvRmxleEF0dHJpYnV0ZU1hbmFnZW1lbnRUeXBlVmFsdWVcbiAgICB9XG4pXG5cbmV4cG9ydCB0eXBlIFR1cnZvRXF1aXBtZW50ID0ge1xuICB0eXBlOiBUdXJ2b0xvb2t1cFxuICBzaXplOiBUdXJ2b0xvb2t1cCB8IG51bGxcbn1bXVxuXG5leHBvcnQgdHlwZSBUdXJ2b0N1c3RvbWVyID0ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUdXJ2b0N1c3RvbWVyT3JkZXIgPSB7XG4gIGlkPzogbnVtYmVyXG4gIGN1c3RvbWVySWQ/OiBudW1iZXJcbiAgY3VzdG9tZXI6IFR1cnZvQ3VzdG9tZXJcbiAgY3VzdG9tZXJPcmRlclNvdXJjZUlkOiBudW1iZXJcbiAgZXh0ZXJuYWxJZHM6IHtcbiAgICB0eXBlOiB7IGtleTogJzE0MDAnOyB2YWx1ZTogJ1B1cmNoYXNlIG9yZGVyICMnIH0gfCB7IGtleTogJzE0MDEnOyB2YWx1ZTogJ1JlZmVyZW5jZSAjJyB9XG4gICAgdmFsdWU6IHN0cmluZ1xuICAgIGNvcHlUb0NhcnJpZXJPcmRlcjogdHJ1ZVxuICB9W11cbiAgaXRlbXM/OiB7XG4gICAgbmFtZTogc3RyaW5nXG4gICAgcGlja3VwTG9jYXRpb246IHsgaWQ6IG51bWJlcjsgZ2xvYmFsU2hpcExvY2F0aW9uU291cmNlSWQ/OiBudW1iZXI7IGdsb2JhbFNoaXBMb2NhdGlvbklkPzogbnVtYmVyOyBuYW1lOiBzdHJpbmcgfVtdXG4gICAgZGVsaXZlcnlMb2NhdGlvbjogeyBpZDogbnVtYmVyOyBnbG9iYWxTaGlwTG9jYXRpb25Tb3VyY2VJZD86IG51bWJlcjsgZ2xvYmFsU2hpcExvY2F0aW9uSWQ/OiBudW1iZXI7IG5hbWU6IHN0cmluZyB9W11cbiAgICBxdHk/OiBudW1iZXJcbiAgICB1bml0PzogVHVydm9Mb29rdXBcbiAgfVtdXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvQ2Fycmllck9yZGVyID0ge1xuICBfb3BlcmF0aW9uOiAwXG4gIGNhcnJpZXI6IHtcbiAgICBpZDogbnVtYmVyXG4gICAgbmFtZTogc3RyaW5nXG4gIH1cbiAgY2Fycmllck9yZGVyU291cmNlSWQ6IG51bWJlclxuICBjb3N0cz86IHtcbiAgICB0b3RhbEFtb3VudDogbnVtYmVyXG4gICAgbGluZUl0ZW06IHtcbiAgICAgIGlkPzogbnVtYmVyXG4gICAgICBjb2RlOiB7IGtleTogJzE2MDAnOyB2YWx1ZTogJ0ZyZWlnaHQgLSBmbGF0JyB9XG4gICAgICBxdHk6IDFcbiAgICAgIHByaWNlOiBudW1iZXJcbiAgICAgIGFtb3VudDogbnVtYmVyXG4gICAgICBwYXlhYmxlOiB0cnVlXG4gICAgfVtdXG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVHVydm9BcHBvaW50bWVudCA9IHtcbiAgZGF0ZTogc3RyaW5nXG4gIGZsZXg/OiBudW1iZXIgLy8gQXBwYXJlbnRseSByZXF1aXJlZCBidXQgZG9lc24ndCBtYWtlIHNlbnNlIEkgdGhpbmssIGFuZCB0aGUgc2hpcG1lbnQgY3JlYXRlcyB3aXRob3V0IHRoaXNcbiAgdGltZVpvbmU6IHN0cmluZ1xuICBoYXNUaW1lOiB0cnVlXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnQgPSB7XG4gIGlkOiBudW1iZXJcbiAgY3VzdG9tSWQ6IHN0cmluZ1xuICBsdGxTaGlwbWVudDogYm9vbGVhblxuICBzdGFydERhdGU6IFR1cnZvRGF0ZVdpdGhUaW1lem9uZVxuICBlbmREYXRlOiBUdXJ2b0RhdGVXaXRoVGltZXpvbmUgJiB7IGZsZXg6IG51bWJlciB9XG4gIHN0YXR1czogVHVydm9TaGlwbWVudFN0YXR1c1xuICBzZXJ2aWNlcz86IFR1cnZvU2hpcG1lbnRTZXJ2aWNlW11cbiAgZXF1aXBtZW50OiBUdXJ2b0VxdWlwbWVudFxuICBmbGV4QXR0cmlidXRlcz86IFR1cnZvRmxleEF0dHJpYnV0ZVtdXG4gIGxhbmU6IFR1cnZvTGFuZVxuICBnbG9iYWxSb3V0ZTogVHVydm9HbG9iYWxSb3V0ZVxuICBjdXN0b21lck9yZGVyOiBUdXJ2b0N1c3RvbWVyT3JkZXJbXVxuICBjYXJyaWVyT3JkZXI6IFR1cnZvQ2Fycmllck9yZGVyW11cbn1cblxuZXhwb3J0IHR5cGUgVHVydm9TaGlwbWVudFVwZGF0ZSA9IHtcbiAgaWQ6IG51bWJlclxuICBjdXN0b21JZDogc3RyaW5nXG4gIGdsb2JhbFJvdXRlOiBUdXJ2b0dsb2JhbFJvdXRlXG4gIGN1c3RvbWVyT3JkZXI6IFR1cnZvQ3VzdG9tZXJPcmRlcltdXG4gIHN0YXR1czogVHVydm9XZWJob29rU3RhdHVzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHVydm9TaGlwbWVudFN0YXR1c0FwaVJlc3BvbnNlIHtcbiAgY3VzdG9tSWQ6IHN0cmluZ1xuICBzdGF0dXM6IHtcbiAgICBsb2NhdGlvbjoge1xuICAgICAgbG9uOiBudW1iZXJcbiAgICAgIGxhdDogbnVtYmVyXG4gICAgICBuZXh0QXJyaXZhbFRpbWU6IG51bWJlclxuICAgICAgbmV4dE1pbGVzOiBudW1iZXJcbiAgICAgIGNpdHk6IHN0cmluZ1xuICAgIH1cbiAgICBzdGF0dXNEYXRlOiB7XG4gICAgICBkYXRlOiBzdHJpbmdcbiAgICAgIHRpbWV6b25lOiBzdHJpbmdcbiAgICB9XG4gICAgcnVubmluZ0xhdGU/OiB7XG4gICAgICBuZXh0TG9jYXRpb25OYW1lOiBzdHJpbmdcbiAgICB9XG4gICAgbmV4dExvY2F0aW9uSWQ6IG51bWJlclxuICB9XG4gIGdsb2JhbFJvdXRlOiBUdXJ2b0dsb2JhbFJvdXRlXG4gIGxhbmU6IHtcbiAgICBzdGFydDogc3RyaW5nXG4gICAgZW5kOiBzdHJpbmdcbiAgfVxufVxuXG5leHBvcnQgdHlwZSBUdXJ2b1NoaXBtZW50U3RhdHVzTG9jYXRpb24gPSB7XG4gIGNpdHk6IHN0cmluZ1xuICBzdGF0ZTogc3RyaW5nXG4gIGNvdW50cnlDb2RlOiBzdHJpbmdcbiAgY291bnRyeU5hbWU6IHN0cmluZ1xuICBsb246IG51bWJlclxuICBsYXQ6IG51bWJlclxuICBuZXh0RXRhPzogc3RyaW5nXG4gIG5leHRFdGFDYWxWYWw/OiBzdHJpbmdcbiAgbmV4dEFycml2YWxUaW1lPzogbnVtYmVyXG4gIG5leHRNaWxlcz86IG51bWJlclxuICBjdXJyZW50RGF0ZT86IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBUdXJ2b1NoaXBtZW50U3RhdHVzUnVubmluZ0xhdGUgPSB7XG4gIGxhdGVUeXBlOiBzdHJpbmdcbiAgbGF0ZUR1cmF0aW9uOiBudW1iZXJcbiAgbmV4dExvY2F0aW9uVHlwZTogc3RyaW5nXG4gIGxhdGVEdXJhdGlvblN0cmluZzogc3RyaW5nXG4gIG5leHRMb2NhdGlvbkV0YTogc3RyaW5nXG4gIG5leHRMb2NhdGlvblRpbWVab25lOiBzdHJpbmdcbiAgbmV4dExvY2F0aW9uTmFtZTogc3RyaW5nXG4gIG5leHRMb2NhdGlvbkV0YURhdGU6IHN0cmluZ1xuICBpc0FwcHJvYWNoaW5nTGF0ZTogYm9vbGVhblxuICBzdGF0dXNLZXk6IHN0cmluZ1xuICBuZXh0TG9jYXRpb25BcHBvaW50bWVudERhdGU6IHN0cmluZ1xuICBuZXh0TG9jYXRpb25BcHBvaW50bWVudDogc3RyaW5nXG4gIGxhc3RVcGRhdGVkT246IHN0cmluZ1xuICBuZXh0TG9jYXRpb25JZDogbnVtYmVyXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnRTdGF0dXNVcGRhdGUgPSB7XG4gIGlkOiBudW1iZXJcbiAgc3RhdHVzOiBUdXJ2b1dlYmhvb2tTdGF0dXNcbn1cblxuLy8gUmVzdWx0IHR5cGVzIGZvciBzcGVjaWZpYyBvcGVyYXRpb25zXG5leHBvcnQgdHlwZSBUdXJ2b0NyZWF0ZVNoaXBtZW50QXBpUmVzdWx0ID0geyBpZDogbnVtYmVyIH1cbmV4cG9ydCB0eXBlIFR1cnZvQ2FuY2VsU2hpcG1lbnRBcGlSZXN1bHQgPSB7IHJlc3BNc2c6IHN0cmluZyB9XG5leHBvcnQgdHlwZSBUdXJ2b1VwZGF0ZVNoaXBtZW50U3RhdHVzQXBpUmVzdWx0ID0geyBpZDogbnVtYmVyIH1cbmV4cG9ydCB0eXBlIFR1cnZvQXNzb2NpYXRlVGFnc0FwaVJlc3VsdCA9IHtcbiAgdGFnczogeyBpZDogc3RyaW5nOyB0YWdOYW1lOiBzdHJpbmc7IGNvbnRleHRUeXBlOiBzdHJpbmc7IGNvbnRleHRJZDogbnVtYmVyIH1bXVxufVxuIl19
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvc2hpcG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBa0ZhLFFBQUEsK0JBQStCLEdBQXdCO0lBQ2xFLElBQUksRUFBRTtRQUNKLEdBQUcsRUFBRSxNQUFNO1FBQ1gsS0FBSyxFQUFFLFdBQVc7S0FDbkI7Q0FDRixDQUFBO0FBRVksUUFBQSwrQkFBK0IsR0FBd0I7SUFDbEUsSUFBSSxFQUFFO1FBQ0osR0FBRyxFQUFFLE1BQU07UUFDWCxLQUFLLEVBQUUsV0FBVztLQUNuQjtDQUNGLENBQUE7QUFFWSxRQUFBLCtCQUErQixHQUF3QjtJQUNsRSxJQUFJLEVBQUU7UUFDSixHQUFHLEVBQUUsTUFBTTtRQUNYLEtBQUssRUFBRSxXQUFXO0tBQ25CO0NBQ0YsQ0FBQTtBQUVZLFFBQUEsOEJBQThCLEdBQXdCO0lBQ2pFLElBQUksRUFBRTtRQUNKLEdBQUcsRUFBRSxNQUFNO1FBQ1gsS0FBSyxFQUFFLFVBQVU7S0FDbEI7Q0FDRixDQUFBO0FBRVksUUFBQSxpQ0FBaUMsR0FBd0I7SUFDcEUsSUFBSSxFQUFFO1FBQ0osR0FBRyxFQUFFLE1BQU07UUFDWCxLQUFLLEVBQUUsYUFBYTtLQUNyQjtDQUNGLENBQUE7QUFFWSxRQUFBLHFCQUFxQixHQUFHLGtCQUFrQixDQUFBO0FBK0J2RCxJQUFZLCtCQUdYO0FBSEQsV0FBWSwrQkFBK0I7SUFDekMsMkRBQXdCLENBQUE7SUFDeEIsNkRBQTBCLENBQUE7QUFDNUIsQ0FBQyxFQUhXLCtCQUErQiwrQ0FBL0IsK0JBQStCLFFBRzFDO0FBRUQsSUFBWSxxQ0FJWDtBQUpELFdBQVkscUNBQXFDO0lBQy9DLHlFQUFnQyxDQUFBO0lBQ2hDLHFFQUE0QixDQUFBO0lBQzVCLGdFQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFKVyxxQ0FBcUMscURBQXJDLHFDQUFxQyxRQUloRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1cnZvRGF0ZVdpdGhUaW1lem9uZSwgVHVydm9EYXRlV2l0aFRpbWV6b25lTG93ZXJjYXNlLCBUdXJ2b0xvb2t1cCB9IGZyb20gJy4vY29tbW9uJ1xuXG5leHBvcnQgdHlwZSBUdXJ2b0dsb2JhbFJvdXRlID0ge1xuICBpZDogbnVtYmVyXG4gIG5hbWU6IHN0cmluZ1xuICBnbG9iYWxTaGlwTG9jYXRpb25Tb3VyY2VJZD86IHN0cmluZ1xuICBzY2hlZHVsaW5nVHlwZTogVHVydm9Mb29rdXBcbiAgc3RvcFR5cGU6IFR1cnZvTG9va3VwXG4gIGxvY2F0aW9uOiB7XG4gICAgaWQ6IG51bWJlclxuICB9XG4gIGRlbGV0ZWQ/OiBib29sZWFuXG4gIHNlcXVlbmNlOiBudW1iZXJcbiAgc2VnbWVudFNlcXVlbmNlOiBudW1iZXJcbiAgc3RhdGU6ICdPUEVOJyB8ICdDTE9TRUQnIHwgJ0NPTVBMRVRFRCdcbiAgY3VzdG9tZXJPcmRlcj86IFR1cnZvQ3VzdG9tZXJPcmRlcltdXG4gIGNhcnJpZXJPcmRlcj86IHsgY2FycmllcklkOiBudW1iZXI7IGlkOiBudW1iZXI7IGNhcnJpZXJPcmRlclNvdXJjZUlkOiBudW1iZXIgfVtdXG4gIGFwcG9pbnRtZW50OiBUdXJ2b0FwcG9pbnRtZW50XG4gIGV0YVRvU3RvcDoge1xuICAgIGV0YVZhbHVlOiBzdHJpbmdcbiAgICBuZXh0TWlsZXM6IG51bWJlclxuICB9IHwgbnVsbFxuICBkaXN0YW5jZToge1xuICAgIHZhbHVlOiBudW1iZXJcbiAgICB1bml0czogeyB2YWx1ZTogc3RyaW5nIH1cbiAgfSB8IG51bGxcbn1bXVxuXG5leHBvcnQgdHlwZSBUdXJ2b0xhbmUgPSB7XG4gIHN0YXJ0OiBzdHJpbmdcbiAgZW5kOiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgVHVydm9TaGlwbWVudFNlcnZpY2UgPSBUdXJ2b0xvb2t1cCAmXG4gIChcbiAgICB8IHtcbiAgICAgICAga2V5OiAnMjEyMDQnXG4gICAgICAgIHZhbHVlOiAnVGVhbSdcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAga2V5OiAnMjEyMTQnXG4gICAgICAgIHZhbHVlOiAnRHJvcCB0cmFpbGVyJ1xuICAgICAgfVxuICApXG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnRTdGF0dXMgPSB7XG4gIG5vdGVzPzogc3RyaW5nXG4gIGF0dHJpYnV0ZXM/OiB7XG4gICAgZXRhVmFsVXRjPzogc3RyaW5nXG4gICAgbmV4dF9ldGFfY2FsX3ZhbF90aW1lem9uZT86IHN0cmluZ1xuICB9XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIHN0YXR1c0RhdGU/OiBUdXJ2b0RhdGVXaXRoVGltZXpvbmVMb3dlcmNhc2VcbiAgdXBkYXRlZEJ5Pzoge1xuICAgIGlkPzogbnVtYmVyXG4gICAgbmFtZT86IHN0cmluZ1xuICB9XG4gIGxvY2F0aW9uPzogVHVydm9TaGlwbWVudFN0YXR1c0xvY2F0aW9uXG4gIHJ1bm5pbmdMYXRlPzogVHVydm9TaGlwbWVudFN0YXR1c1J1bm5pbmdMYXRlXG4gIGNvZGU6XG4gICAgfCB7IGtleTogJzIxMDAnOyB2YWx1ZTogJ1F1b3RlIGFjdGl2ZScgfVxuICAgIHwgeyBrZXk6ICcyMTAxJzsgdmFsdWU6ICdUZW5kZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTAyJzsgdmFsdWU6ICdDb3ZlcmVkJyB9XG4gICAgfCB7IGtleTogJzIxMDMnOyB2YWx1ZTogJ0Rpc3BhdGNoZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwNCc7IHZhbHVlOiAnQXQgcGlja3VwJyB9XG4gICAgfCB7IGtleTogJzIxMDUnOyB2YWx1ZTogJ0VuIHJvdXRlJyB9XG4gICAgfCB7IGtleTogJzIxMDYnOyB2YWx1ZTogJ0F0IGRlbGl2ZXJ5JyB9XG4gICAgfCB7IGtleTogJzIxMTYnOyB2YWx1ZTogJ1JvdXRlIENvbXBsZXRlJyB9XG4gICAgfCB7IGtleTogJzIxMDcnOyB2YWx1ZTogJ0RlbGl2ZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTA4JzsgdmFsdWU6ICdSZWFkeSBmb3IgYmlsbGluZycgfVxuICAgIHwgeyBrZXk6ICcyMTA5JzsgdmFsdWU6ICdQcm9jZXNzaW5nJyB9XG4gICAgfCB7IGtleTogJzIxMTAnOyB2YWx1ZTogJ0NhcnJpZXIgcGFpZCcgfVxuICAgIHwgeyBrZXk6ICcyMTExJzsgdmFsdWU6ICdDdXN0b21lciBwYWlkJyB9XG4gICAgfCB7IGtleTogJzIxMTInOyB2YWx1ZTogJ0NvbXBsZXRlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTEzJzsgdmFsdWU6ICdDYW5jZWxlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE3JzsgdmFsdWU6ICdUZW5kZXIgLSBvZmZlcmVkJyB9XG4gICAgfCB7IGtleTogJzIxMTgnOyB2YWx1ZTogJ1RlbmRlciAtIGFjY2VwdGVkJyB9XG4gICAgfCB7IGtleTogJzIxMTknOyB2YWx1ZTogJ1RlbmRlciAtIHJlamVjdGVkJyB9XG4gICAgfCB7IGtleTogJzIxMTQnOyB2YWx1ZTogJ1F1b3RlIGluYWN0aXZlJyB9XG4gICAgfCB7IGtleTogJzIxMTUnOyB2YWx1ZTogJ1BpY2tlZCB1cCcgfVxufVxuXG5leHBvcnQgY29uc3QgVFVSVk9fU0hJUE1FTlRfU1RBVFVTX0RFTElWRVJFRDogVHVydm9TaGlwbWVudFN0YXR1cyA9IHtcbiAgY29kZToge1xuICAgIGtleTogJzIxMDcnLFxuICAgIHZhbHVlOiAnRGVsaXZlcmVkJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFRVUlZPX1NISVBNRU5UX1NUQVRVU19QSUNLRURfVVA6IFR1cnZvU2hpcG1lbnRTdGF0dXMgPSB7XG4gIGNvZGU6IHtcbiAgICBrZXk6ICcyMTE1JyxcbiAgICB2YWx1ZTogJ1BpY2tlZCB1cCcsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBUVVJWT19TSElQTUVOVF9TVEFUVVNfQVRfUElDS1VQOiBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBjb2RlOiB7XG4gICAga2V5OiAnMjEwNCcsXG4gICAgdmFsdWU6ICdBdCBwaWNrdXAnLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgVFVSVk9fU0hJUE1FTlRfU1RBVFVTX0VOX1JPVVRFOiBUdXJ2b1NoaXBtZW50U3RhdHVzID0ge1xuICBjb2RlOiB7XG4gICAga2V5OiAnMjEwNScsXG4gICAgdmFsdWU6ICdFbiByb3V0ZScsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBUVVJWT19TSElQTUVOVF9TVEFUVVNfQVRfREVMSVZFUlk6IFR1cnZvU2hpcG1lbnRTdGF0dXMgPSB7XG4gIGNvZGU6IHtcbiAgICBrZXk6ICcyMTA2JyxcbiAgICB2YWx1ZTogJ0F0IGRlbGl2ZXJ5JyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFRVUlZPX1NZU1RFTV9CT1RfVVNFUiA9ICdUdXJ2byBTeXN0ZW0gQm90J1xuXG5leHBvcnQgdHlwZSBUdXJ2b1dlYmhvb2tTdGF0dXMgPSB7XG4gIGNvZGU6XG4gICAgfCB7IGtleTogJzIxMDAnOyB2YWx1ZTogJ1F1b3RlIGFjdGl2ZScgfVxuICAgIHwgeyBrZXk6ICcyMTAxJzsgdmFsdWU6ICdUZW5kZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTAyJzsgdmFsdWU6ICdDb3ZlcmVkJyB9XG4gICAgfCB7IGtleTogJzIxMDMnOyB2YWx1ZTogJ0Rpc3BhdGNoZWQnIH1cbiAgICB8IHsga2V5OiAnMjEwNCc7IHZhbHVlOiAnQXQgcGlja3VwJyB9XG4gICAgfCB7IGtleTogJzIxMDUnOyB2YWx1ZTogJ0VuIHJvdXRlJyB9XG4gICAgfCB7IGtleTogJzIxMDYnOyB2YWx1ZTogJ0F0IGRlbGl2ZXJ5JyB9XG4gICAgfCB7IGtleTogJzIxMTYnOyB2YWx1ZTogJ1JvdXRlIENvbXBsZXRlJyB9XG4gICAgfCB7IGtleTogJzIxMDcnOyB2YWx1ZTogJ0RlbGl2ZXJlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTA4JzsgdmFsdWU6ICdSZWFkeSBmb3IgYmlsbGluZycgfVxuICAgIHwgeyBrZXk6ICcyMTA5JzsgdmFsdWU6ICdQcm9jZXNzaW5nJyB9XG4gICAgfCB7IGtleTogJzIxMTAnOyB2YWx1ZTogJ0NhcnJpZXIgcGFpZCcgfVxuICAgIHwgeyBrZXk6ICcyMTExJzsgdmFsdWU6ICdDdXN0b21lciBwYWlkJyB9XG4gICAgfCB7IGtleTogJzIxMTInOyB2YWx1ZTogJ0NvbXBsZXRlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTEzJzsgdmFsdWU6ICdDYW5jZWxlZCcgfVxuICAgIHwgeyBrZXk6ICcyMTE3JzsgdmFsdWU6ICdUZW5kZXIgLSBvZmZlcmVkJyB9XG4gICAgfCB7IGtleTogJzIxMTgnOyB2YWx1ZTogJ1RlbmRlciAtIGFjY2VwdGVkJyB9XG4gICAgfCB7IGtleTogJzIxMTknOyB2YWx1ZTogJ1RlbmRlciAtIHJlamVjdGVkJyB9XG4gICAgfCB7IGtleTogJzIxMTQnOyB2YWx1ZTogJ1F1b3RlIGluYWN0aXZlJyB9XG4gICAgfCB7IGtleTogJzIxMTUnOyB2YWx1ZTogJ1BpY2tlZCB1cCcgfVxuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICB1cGRhdGVkQnk/OiB7XG4gICAgaWQ/OiBudW1iZXJcbiAgICBuYW1lPzogc3RyaW5nXG4gIH1cbn1cblxuZXhwb3J0IGVudW0gVHVydm9GbGV4QXR0cmlidXRlTGFuZVR5cGVWYWx1ZSB7XG4gIEZpcnN0TWlsZSA9ICdGaXJzdCBNaWxlJyxcbiAgTWlkZGxlTWlsZSA9ICdNaWRkbGUgTWlsZScsXG59XG5cbmV4cG9ydCBlbnVtIFR1cnZvRmxleEF0dHJpYnV0ZU1hbmFnZW1lbnRUeXBlVmFsdWUge1xuICBDbGllbnRNYW5hZ2VkID0gJ0NsaWVudCBNYW5hZ2VkJyxcbiAgVmVob01hbmFnZWQgPSAnVmVobyBNYW5hZ2VkJyxcbiAgSW5zb3VyY2VkID0gJ0luc291cmNlZCcsXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvRmxleEF0dHJpYnV0ZSA9IHtcbiAgZGVsZXRlZDogZmFsc2VcbiAgc2hhcmVhYmxlOiBmYWxzZVxufSAmIChcbiAgfCB7XG4gICAgICBuYW1lOiAnTGFuZSBUeXBlJ1xuICAgICAgdHlwZToge1xuICAgICAgICB2YWx1ZTogJ0RST1BET1dOJ1xuICAgICAgICBrZXk6ICdWZWhvVGVjaF9MYW5lX1R5cGUnXG4gICAgICB9XG4gICAgICB2YWx1ZTogVHVydm9GbGV4QXR0cmlidXRlTGFuZVR5cGVWYWx1ZVxuICAgIH1cbiAgfCB7XG4gICAgICBuYW1lOiAnTWFuYWdlbWVudCBUeXBlJ1xuICAgICAgdHlwZToge1xuICAgICAgICB2YWx1ZTogJ0RST1BET1dOJ1xuICAgICAgICBrZXk6ICdWZWhvVGVjaF9NYW5hZ2VtZW50X1R5cGUnXG4gICAgICB9XG4gICAgICB2YWx1ZTogVHVydm9GbGV4QXR0cmlidXRlTWFuYWdlbWVudFR5cGVWYWx1ZVxuICAgIH1cbilcblxuZXhwb3J0IHR5cGUgVHVydm9FcXVpcG1lbnQgPSB7XG4gIHR5cGU6IFR1cnZvTG9va3VwXG4gIHNpemU6IFR1cnZvTG9va3VwIHwgbnVsbFxufVtdXG5cbmV4cG9ydCB0eXBlIFR1cnZvQ3VzdG9tZXIgPSB7XG4gIGlkOiBudW1iZXJcbiAgbmFtZTogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvQ3VzdG9tZXJPcmRlciA9IHtcbiAgaWQ/OiBudW1iZXJcbiAgY3VzdG9tZXJJZD86IG51bWJlclxuICBjdXN0b21lcjogVHVydm9DdXN0b21lclxuICBjdXN0b21lck9yZGVyU291cmNlSWQ6IG51bWJlclxuICBleHRlcm5hbElkczoge1xuICAgIHR5cGU6IHsga2V5OiAnMTQwMCc7IHZhbHVlOiAnUHVyY2hhc2Ugb3JkZXIgIycgfSB8IHsga2V5OiAnMTQwMSc7IHZhbHVlOiAnUmVmZXJlbmNlICMnIH1cbiAgICB2YWx1ZTogc3RyaW5nXG4gICAgY29weVRvQ2Fycmllck9yZGVyOiB0cnVlXG4gIH1bXVxuICBpdGVtcz86IHtcbiAgICBuYW1lOiBzdHJpbmdcbiAgICBwaWNrdXBMb2NhdGlvbjogeyBpZDogbnVtYmVyOyBnbG9iYWxTaGlwTG9jYXRpb25Tb3VyY2VJZD86IG51bWJlcjsgZ2xvYmFsU2hpcExvY2F0aW9uSWQ/OiBudW1iZXI7IG5hbWU6IHN0cmluZyB9W11cbiAgICBkZWxpdmVyeUxvY2F0aW9uOiB7IGlkOiBudW1iZXI7IGdsb2JhbFNoaXBMb2NhdGlvblNvdXJjZUlkPzogbnVtYmVyOyBnbG9iYWxTaGlwTG9jYXRpb25JZD86IG51bWJlcjsgbmFtZTogc3RyaW5nIH1bXVxuICAgIHF0eT86IG51bWJlclxuICAgIHVuaXQ/OiBUdXJ2b0xvb2t1cFxuICB9W11cbn1cblxuZXhwb3J0IHR5cGUgVHVydm9DYXJyaWVyT3JkZXIgPSB7XG4gIF9vcGVyYXRpb246IDBcbiAgY2Fycmllcjoge1xuICAgIGlkOiBudW1iZXJcbiAgICBuYW1lOiBzdHJpbmdcbiAgfVxuICBjYXJyaWVyT3JkZXJTb3VyY2VJZDogbnVtYmVyXG4gIGNvc3RzPzoge1xuICAgIHRvdGFsQW1vdW50OiBudW1iZXJcbiAgICBsaW5lSXRlbToge1xuICAgICAgaWQ/OiBudW1iZXJcbiAgICAgIGNvZGU6IHsga2V5OiAnMTYwMCc7IHZhbHVlOiAnRnJlaWdodCAtIGZsYXQnIH1cbiAgICAgIHF0eTogMVxuICAgICAgcHJpY2U6IG51bWJlclxuICAgICAgYW1vdW50OiBudW1iZXJcbiAgICAgIHBheWFibGU6IHRydWVcbiAgICB9W11cbiAgfVxuICBkZWxldGVkPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBUdXJ2b0FwcG9pbnRtZW50ID0ge1xuICBkYXRlOiBzdHJpbmdcbiAgZmxleD86IG51bWJlciAvLyBBcHBhcmVudGx5IHJlcXVpcmVkIGJ1dCBkb2Vzbid0IG1ha2Ugc2Vuc2UgSSB0aGluaywgYW5kIHRoZSBzaGlwbWVudCBjcmVhdGVzIHdpdGhvdXQgdGhpc1xuICB0aW1lWm9uZTogc3RyaW5nXG4gIGhhc1RpbWU6IHRydWVcbn1cblxuZXhwb3J0IHR5cGUgVHVydm9TaGlwbWVudCA9IHtcbiAgaWQ6IG51bWJlclxuICBjdXN0b21JZDogc3RyaW5nXG4gIGx0bFNoaXBtZW50OiBib29sZWFuXG4gIHN0YXJ0RGF0ZTogVHVydm9EYXRlV2l0aFRpbWV6b25lXG4gIGVuZERhdGU6IFR1cnZvRGF0ZVdpdGhUaW1lem9uZSAmIHsgZmxleDogbnVtYmVyIH1cbiAgc3RhdHVzOiBUdXJ2b1NoaXBtZW50U3RhdHVzXG4gIHNlcnZpY2VzPzogVHVydm9TaGlwbWVudFNlcnZpY2VbXVxuICBlcXVpcG1lbnQ6IFR1cnZvRXF1aXBtZW50XG4gIGZsZXhBdHRyaWJ1dGVzPzogVHVydm9GbGV4QXR0cmlidXRlW11cbiAgbGFuZTogVHVydm9MYW5lXG4gIGdsb2JhbFJvdXRlOiBUdXJ2b0dsb2JhbFJvdXRlXG4gIGN1c3RvbWVyT3JkZXI6IFR1cnZvQ3VzdG9tZXJPcmRlcltdXG4gIGNhcnJpZXJPcmRlcjogVHVydm9DYXJyaWVyT3JkZXJbXVxufVxuXG5leHBvcnQgdHlwZSBUdXJ2b1NoaXBtZW50VXBkYXRlID0ge1xuICBpZDogbnVtYmVyXG4gIGN1c3RvbUlkOiBzdHJpbmdcbiAgZ2xvYmFsUm91dGU6IFR1cnZvR2xvYmFsUm91dGVcbiAgY3VzdG9tZXJPcmRlcjogVHVydm9DdXN0b21lck9yZGVyW11cbiAgc3RhdHVzOiBUdXJ2b1dlYmhvb2tTdGF0dXNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUdXJ2b1NoaXBtZW50U3RhdHVzQXBpUmVzcG9uc2Uge1xuICBjdXN0b21JZDogc3RyaW5nXG4gIHN0YXR1czoge1xuICAgIGxvY2F0aW9uOiB7XG4gICAgICBsb246IG51bWJlclxuICAgICAgbGF0OiBudW1iZXJcbiAgICAgIG5leHRBcnJpdmFsVGltZTogbnVtYmVyXG4gICAgICBuZXh0TWlsZXM6IG51bWJlclxuICAgICAgY2l0eTogc3RyaW5nXG4gICAgfVxuICAgIHN0YXR1c0RhdGU6IHtcbiAgICAgIGRhdGU6IHN0cmluZ1xuICAgICAgdGltZXpvbmU6IHN0cmluZ1xuICAgIH1cbiAgICBydW5uaW5nTGF0ZT86IHtcbiAgICAgIG5leHRMb2NhdGlvbk5hbWU6IHN0cmluZ1xuICAgIH1cbiAgICBuZXh0TG9jYXRpb25JZDogbnVtYmVyXG4gIH1cbiAgZ2xvYmFsUm91dGU6IFR1cnZvR2xvYmFsUm91dGVcbiAgbGFuZToge1xuICAgIHN0YXJ0OiBzdHJpbmdcbiAgICBlbmQ6IHN0cmluZ1xuICB9XG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvbiA9IHtcbiAgY2l0eTogc3RyaW5nXG4gIHN0YXRlOiBzdHJpbmdcbiAgY291bnRyeUNvZGU6IHN0cmluZ1xuICBjb3VudHJ5TmFtZTogc3RyaW5nXG4gIGxvbjogbnVtYmVyXG4gIGxhdDogbnVtYmVyXG4gIG5leHRFdGE/OiBzdHJpbmdcbiAgbmV4dEV0YUNhbFZhbD86IHN0cmluZ1xuICBuZXh0QXJyaXZhbFRpbWU/OiBudW1iZXJcbiAgbmV4dE1pbGVzPzogbnVtYmVyXG4gIGN1cnJlbnREYXRlPzogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIFR1cnZvU2hpcG1lbnRTdGF0dXNSdW5uaW5nTGF0ZSA9IHtcbiAgbGF0ZVR5cGU6IHN0cmluZ1xuICBsYXRlRHVyYXRpb246IG51bWJlclxuICBuZXh0TG9jYXRpb25UeXBlOiBzdHJpbmdcbiAgbGF0ZUR1cmF0aW9uU3RyaW5nOiBzdHJpbmdcbiAgbmV4dExvY2F0aW9uRXRhOiBzdHJpbmdcbiAgbmV4dExvY2F0aW9uVGltZVpvbmU6IHN0cmluZ1xuICBuZXh0TG9jYXRpb25OYW1lOiBzdHJpbmdcbiAgbmV4dExvY2F0aW9uRXRhRGF0ZTogc3RyaW5nXG4gIGlzQXBwcm9hY2hpbmdMYXRlOiBib29sZWFuXG4gIHN0YXR1c0tleTogc3RyaW5nXG4gIG5leHRMb2NhdGlvbkFwcG9pbnRtZW50RGF0ZTogc3RyaW5nXG4gIG5leHRMb2NhdGlvbkFwcG9pbnRtZW50OiBzdHJpbmdcbiAgbGFzdFVwZGF0ZWRPbjogc3RyaW5nXG4gIG5leHRMb2NhdGlvbklkOiBudW1iZXJcbn1cblxuZXhwb3J0IHR5cGUgVHVydm9TaGlwbWVudFN0YXR1c1VwZGF0ZSA9IHtcbiAgaWQ6IG51bWJlclxuICBzdGF0dXM6IFR1cnZvV2ViaG9va1N0YXR1c1xufVxuXG4vLyBSZXN1bHQgdHlwZXMgZm9yIHNwZWNpZmljIG9wZXJhdGlvbnNcbmV4cG9ydCB0eXBlIFR1cnZvQ3JlYXRlU2hpcG1lbnRBcGlSZXN1bHQgPSB7IGlkOiBudW1iZXIgfVxuZXhwb3J0IHR5cGUgVHVydm9DYW5jZWxTaGlwbWVudEFwaVJlc3VsdCA9IHsgcmVzcE1zZzogc3RyaW5nIH1cbmV4cG9ydCB0eXBlIFR1cnZvVXBkYXRlU2hpcG1lbnRTdGF0dXNBcGlSZXN1bHQgPSB7IGlkOiBudW1iZXIgfVxuZXhwb3J0IHR5cGUgVHVydm9Bc3NvY2lhdGVUYWdzQXBpUmVzdWx0ID0ge1xuICB0YWdzOiB7IGlkOiBzdHJpbmc7IHRhZ05hbWU6IHN0cmluZzsgY29udGV4dFR5cGU6IHN0cmluZzsgY29udGV4dElkOiBudW1iZXIgfVtdXG59XG4iXX0=
|
|
@@ -27,16 +27,18 @@ export interface LocationUpdate {
|
|
|
27
27
|
* Individual stop in a shipment route
|
|
28
28
|
*/
|
|
29
29
|
export interface Stop {
|
|
30
|
-
|
|
31
|
-
stopType: string;
|
|
30
|
+
stopNumber: number;
|
|
32
31
|
isCompleted: boolean;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
appointmentDateTime: string;
|
|
33
|
+
appointmentLocalTimeZone: string;
|
|
34
|
+
locationName: string;
|
|
35
|
+
externalLocationId: string;
|
|
36
|
+
facilityId: string | null;
|
|
37
|
+
externalStopId: string | null;
|
|
38
|
+
stopServiceType: string;
|
|
39
|
+
etaToStop: string | null;
|
|
40
|
+
milesRemainingToStop: number | null;
|
|
41
|
+
totalMilesToStop: number | null;
|
|
40
42
|
}
|
|
41
43
|
/**
|
|
42
44
|
* Complete shipment tracking information combining public and internal API data
|
|
@@ -45,7 +47,7 @@ export interface ShipmentTracking {
|
|
|
45
47
|
shipmentId: string;
|
|
46
48
|
loadReferenceNumber: string;
|
|
47
49
|
status: string;
|
|
48
|
-
|
|
50
|
+
lateByMinutes: number | null;
|
|
49
51
|
isLate: boolean;
|
|
50
52
|
currentLocation: TurvoShipmentStatusLocation | null;
|
|
51
53
|
hasGpsTracking: boolean;
|
|
@@ -55,7 +57,7 @@ export interface ShipmentTracking {
|
|
|
55
57
|
etaUtc: string | null;
|
|
56
58
|
etaTimezone: string | null;
|
|
57
59
|
milesRemaining: number | null;
|
|
58
|
-
|
|
60
|
+
totalMilesToNextStop: number | null;
|
|
59
61
|
locationUpdates: LocationUpdate[] | null;
|
|
60
62
|
pingCount: number | null;
|
|
61
63
|
lastPingAt: string | null;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvdHJhY2tpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvbiB9IGZyb20gJy4vc2hpcG1lbnQnXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZmV0Y2hpbmcgc2hpcG1lbnQgdHJhY2tpbmcgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFRyYWNraW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIEdQUyBwaW5nIGhpc3RvcnkgaW4gcmVzcG9uc2UuXG4gICAqIFJlcXVpcmVzIGludGVybmFsIEFQSSBjYWxsIC0gbWF5IGJlIHNsb3dlci5cbiAgICogRGVmYXVsdDogdHJ1ZVxuICAgKi9cbiAgaW5jbHVkZUdwcz86IGJvb2xlYW5cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2VjcmV0IHBhdGggKC90dXJ2by9hcGkpLlxuICAgKiBVc2VmdWwgZm9yIHRlc3Rpbmcgb3IgZGlmZmVyZW50IGVudmlyb25tZW50cy5cbiAgICovXG4gIHNlY3JldFBhdGg/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhY2tpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvdHJhY2tpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvbiB9IGZyb20gJy4vc2hpcG1lbnQnXG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZmV0Y2hpbmcgc2hpcG1lbnQgdHJhY2tpbmcgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFRyYWNraW5nT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBJbmNsdWRlIEdQUyBwaW5nIGhpc3RvcnkgaW4gcmVzcG9uc2UuXG4gICAqIFJlcXVpcmVzIGludGVybmFsIEFQSSBjYWxsIC0gbWF5IGJlIHNsb3dlci5cbiAgICogRGVmYXVsdDogdHJ1ZVxuICAgKi9cbiAgaW5jbHVkZUdwcz86IGJvb2xlYW5cblxuICAvKipcbiAgICogT3ZlcnJpZGUgdGhlIGRlZmF1bHQgc2VjcmV0IHBhdGggKC90dXJ2by9hcGkpLlxuICAgKiBVc2VmdWwgZm9yIHRlc3Rpbmcgb3IgZGlmZmVyZW50IGVudmlyb25tZW50cy5cbiAgICovXG4gIHNlY3JldFBhdGg/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBHUFMgbG9jYXRpb24gdXBkYXRlIGZyb20gc2hpcG1lbnQgdHJhY2tpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2NhdGlvblVwZGF0ZSB7XG4gIGxhdGl0dWRlOiBudW1iZXJcbiAgbG9uZ2l0dWRlOiBudW1iZXJcbiAgdGltZXN0YW1wOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBJbmRpdmlkdWFsIHN0b3AgaW4gYSBzaGlwbWVudCByb3V0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0b3Age1xuICBzdG9wTnVtYmVyOiBudW1iZXJcbiAgaXNDb21wbGV0ZWQ6IGJvb2xlYW5cbiAgYXBwb2ludG1lbnREYXRlVGltZTogc3RyaW5nXG4gIGFwcG9pbnRtZW50TG9jYWxUaW1lWm9uZTogc3RyaW5nXG4gIGxvY2F0aW9uTmFtZTogc3RyaW5nXG4gIGV4dGVybmFsTG9jYXRpb25JZDogc3RyaW5nXG4gIGZhY2lsaXR5SWQ6IHN0cmluZyB8IG51bGxcbiAgZXh0ZXJuYWxTdG9wSWQ6IHN0cmluZyB8IG51bGxcbiAgc3RvcFNlcnZpY2VUeXBlOiBzdHJpbmcgLy8gXCJwaWNrdXBcIiBvciBcImRlbGl2ZXJ5XCJcbiAgZXRhVG9TdG9wOiBzdHJpbmcgfCBudWxsXG4gIG1pbGVzUmVtYWluaW5nVG9TdG9wOiBudW1iZXIgfCBudWxsXG4gIHRvdGFsTWlsZXNUb1N0b3A6IG51bWJlciB8IG51bGxcbn1cblxuLyoqXG4gKiBDb21wbGV0ZSBzaGlwbWVudCB0cmFja2luZyBpbmZvcm1hdGlvbiBjb21iaW5pbmcgcHVibGljIGFuZCBpbnRlcm5hbCBBUEkgZGF0YVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNoaXBtZW50VHJhY2tpbmcge1xuICAvLyBJZGVudGlmaWVyc1xuICBzaGlwbWVudElkOiBzdHJpbmdcbiAgbG9hZFJlZmVyZW5jZU51bWJlcjogc3RyaW5nXG5cbiAgLy8gU3RhdHVzXG4gIHN0YXR1czogc3RyaW5nIC8vIFwiRW4gcm91dGVcIiwgXCJBdCBwaWNrdXBcIiwgXCJDb21wbGV0ZVwiXG4gIGxhdGVCeU1pbnV0ZXM6IG51bWJlciB8IG51bGxcbiAgaXNMYXRlOiBib29sZWFuXG5cbiAgLy8gQ3VycmVudCBsb2NhdGlvbiAoaWYgdHJhY2tpbmcgYXZhaWxhYmxlKVxuICBjdXJyZW50TG9jYXRpb246IFR1cnZvU2hpcG1lbnRTdGF0dXNMb2NhdGlvbiB8IG51bGxcbiAgaGFzR3BzVHJhY2tpbmc6IGJvb2xlYW5cblxuICAvLyBQcm9ncmVzc1xuICBjb21wbGV0ZWRTdG9wczogbnVtYmVyXG4gIHRvdGFsU3RvcHM6IG51bWJlclxuXG4gIC8vIFN0b3BzIChvcmRlcmVkKVxuICBzdG9wczogU3RvcFtdXG5cbiAgLy8gRVRBICYgRGlzdGFuY2VcbiAgZXRhVXRjOiBzdHJpbmcgfCBudWxsXG4gIGV0YVRpbWV6b25lOiBzdHJpbmcgfCBudWxsXG4gIG1pbGVzUmVtYWluaW5nOiBudW1iZXIgfCBudWxsXG4gIHRvdGFsTWlsZXNUb05leHRTdG9wOiBudW1iZXIgfCBudWxsXG5cbiAgLy8gR1BTIFBpbmdzIChvbmx5IHBvcHVsYXRlZCBpZiBpbmNsdWRlR3BzOiB0cnVlIGFuZCBoYXNHcHNUcmFja2luZylcbiAgbG9jYXRpb25VcGRhdGVzOiBMb2NhdGlvblVwZGF0ZVtdIHwgbnVsbFxuICBwaW5nQ291bnQ6IG51bWJlciB8IG51bGxcbiAgbGFzdFBpbmdBdDogc3RyaW5nIHwgbnVsbFxuXG4gIC8vIFNoaXBtZW50IEF0dHJpYnV0ZXNcbiAgbGFuZVR5cGU6IHN0cmluZyB8IG51bGwgLy8gXCJNaWRkbGUgTWlsZVwiLCBcIkZpcnN0IE1pbGVcIiwgXCJSZXR1cm5cIlxuICBtYW5hZ2VtZW50VHlwZTogc3RyaW5nIHwgbnVsbCAvLyBcIlZlaG8gTWFuYWdlZFwiLCBcIkNsaWVudCBNYW5hZ2VkXCJcbiAgY2Fycmllcjogc3RyaW5nIHwgbnVsbFxufVxuIl19
|
|
@@ -32,10 +32,10 @@ export interface CancelShipmentParams {
|
|
|
32
32
|
export interface UpdateShipmentStatusParams {
|
|
33
33
|
/** The Turvo shipment ID */
|
|
34
34
|
turvoShipmentId: number;
|
|
35
|
-
/** The Turvo stop ID */
|
|
36
|
-
turvoStopId
|
|
35
|
+
/** The Turvo stop ID (optional, depending on type of status update) */
|
|
36
|
+
turvoStopId?: number;
|
|
37
37
|
/** The status code to set */
|
|
38
|
-
turvoStatusCode: TurvoShipmentStatus;
|
|
38
|
+
turvoStatusCode: TurvoShipmentStatus['code'];
|
|
39
39
|
/** The status date in ISO format */
|
|
40
40
|
statusDate: string;
|
|
41
41
|
/** The timezone for the status date */
|
|
@@ -70,7 +70,7 @@ export class TurvoPublicApi {
|
|
|
70
70
|
id: turvoShipmentId,
|
|
71
71
|
status: {
|
|
72
72
|
globalShipLocationId: turvoStopId,
|
|
73
|
-
code: turvoStatusCode
|
|
73
|
+
code: turvoStatusCode,
|
|
74
74
|
timezone: statusTimezone,
|
|
75
75
|
statusDate: {
|
|
76
76
|
date: statusDate,
|
|
@@ -96,4 +96,4 @@ export class TurvoPublicApi {
|
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVydm9QdWJsaWNBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R1cnZvUHVibGljQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxjQUFjLEdBS2YsTUFBTSxpQkFBaUIsQ0FBQTtBQTBFeEI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDTDtJQUFwQixZQUFvQixNQUFtQjtRQUFuQixXQUFNLEdBQU4sTUFBTSxDQUFhO0lBQUcsQ0FBQztJQUUzQzs7O09BR0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQXlCO1FBQ3pDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDN0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFnQixjQUFjLFVBQVUsRUFBRSxFQUFFLGNBQWMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDbEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNEI7UUFDL0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUMzQiwyRUFBMkU7UUFDM0UsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUErQixZQUFZLEVBQUUsY0FBYyxDQUFDLElBQUksRUFBRTtZQUM3RixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBMkI7UUFDdkQsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDeEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQix5QkFBeUIsZUFBZSxFQUFFLEVBQzFDLGNBQWMsQ0FBQyxHQUFHLEVBQ2xCO1lBQ0UsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUE0QjtRQUMvQyxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE1BQU0sSUFBSSxHQUFHO1lBQ1gsRUFBRSxFQUFFLGVBQWU7WUFDbkIsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBd0I7YUFDL0Q7U0FDRixDQUFBO1FBRUQsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQixxQkFBcUIsZUFBZSxFQUFFLEVBQ3RDLGNBQWMsQ0FBQyxHQUFHLEVBQ2xCO1lBQ0UsSUFBSTtTQUNMLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLE1BQWtDO1FBRWxDLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzVGLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE1BQU0sSUFBSSxHQUFHO1lBQ1gsRUFBRSxFQUFFLGVBQWU7WUFDbkIsTUFBTSxFQUFFO2dCQUNOLG9CQUFvQixFQUFFLFdBQVc7Z0JBQ2pDLElBQUksRUFBRSxlQUFlLENBQUMsSUFBSTtnQkFDMUIsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsUUFBUSxFQUFFLGNBQWM7aUJBQ3pCO2FBQ0Y7U0FDRixDQUFBO1FBRUQsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQixxQkFBcUIsZUFBZSxFQUFFLEVBQ3RDLGNBQWMsQ0FBQyxHQUFHLEVBQ2xCLEVBQUUsSUFBSSxFQUFFLENBQ1QsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUNuQixNQUE2QjtRQUU3QixNQUFNLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzlELE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE9BQU8sVUFBVSxDQUFDLFdBQVcsQ0FDM0IsaUJBQWlCLEVBQ2pCLGNBQWMsQ0FBQyxHQUFHLEVBQ2xCO1lBQ0UsS0FBSyxFQUFFO2dCQUNMLGdCQUFnQixFQUFFLGVBQWUsQ0FBQyxRQUFRLEVBQUU7Z0JBQzVDLGlCQUFpQixFQUFFLGVBQWU7Z0JBQ2xDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFO2FBQ3hCO1NBQ0YsQ0FDRixDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHVydm9DbGllbnQgfSBmcm9tICcuLi9jbGllbnQvdHVydm9DbGllbnQnXG5pbXBvcnQge1xuICBUdXJ2b0FwaU1ldGhvZCxcbiAgVHVydm9BcGlSZXN1bHQsXG4gIFR1cnZvRmlsdGVyU2hpcG1lbnRzUmVzdWx0SXRlbSxcbiAgVHVydm9Mb29rdXAsXG4gIFR1cnZvUGFnZWRSZXN1bHQsXG59IGZyb20gJy4uL3R5cGVzL2NvbW1vbidcbmltcG9ydCB7XG4gIFR1cnZvQXNzb2NpYXRlVGFnc0FwaVJlc3VsdCxcbiAgVHVydm9DYW5jZWxTaGlwbWVudEFwaVJlc3VsdCxcbiAgVHVydm9DcmVhdGVTaGlwbWVudEFwaVJlc3VsdCxcbiAgVHVydm9TaGlwbWVudCxcbiAgVHVydm9TaGlwbWVudFN0YXR1cyxcbiAgVHVydm9VcGRhdGVTaGlwbWVudFN0YXR1c0FwaVJlc3VsdCxcbn0gZnJvbSAnLi4vdHlwZXMvc2hpcG1lbnQnXG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdXBsb2FkaW5nIGEgc2hpcG1lbnQgdG8gVHVydm9cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRTaGlwbWVudFBhcmFtcyB7XG4gIC8qKiBUaGUgZm9ybWF0dGVkIHNoaXBtZW50IHRvIHVwbG9hZCAqL1xuICBzaGlwbWVudDogVHVydm9TaGlwbWVudFxuICAvKiogVGhlIExvYWQgSUQsIHNvbGVseSBmb3IgbG9nZ2luZyBwdXJwb3NlcyAqL1xuICB2ZWhvTG9hZElkOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBhc3NvY2lhdGluZyB0YWdzIHRvIGEgc2hpcG1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NvY2lhdGVUYWdzUGFyYW1zIHtcbiAgLyoqIFRoZSBzaGlwbWVudCBJRCB0byBhc3NvY2lhdGUgdGFncyB3aXRoICovXG4gIHR1cnZvU2hpcG1lbnRJZDogbnVtYmVyXG4gIC8qKiBMaXN0IG9mIHRhZyBuYW1lcyB0byBhc3NpZ24gKi9cbiAgdGFnczogc3RyaW5nW11cbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBjYW5jZWxsaW5nIGEgc2hpcG1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYW5jZWxTaGlwbWVudFBhcmFtcyB7XG4gIC8qKiBUaGUgVHVydm8gc3lzdGVtIFNoaXBtZW50IElEIHRvIGNhbmNlbCAqL1xuICB0dXJ2b1NoaXBtZW50SWQ6IG51bWJlclxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHVwZGF0aW5nIHNoaXBtZW50IHN0YXR1c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNoaXBtZW50U3RhdHVzUGFyYW1zIHtcbiAgLyoqIFRoZSBUdXJ2byBzaGlwbWVudCBJRCAqL1xuICB0dXJ2b1NoaXBtZW50SWQ6IG51bWJlclxuICAvKiogVGhlIFR1cnZvIHN0b3AgSUQgKi9cbiAgdHVydm9TdG9wSWQ6IG51bWJlclxuICAvKiogVGhlIHN0YXR1cyBjb2RlIHRvIHNldCAqL1xuICB0dXJ2b1N0YXR1c0NvZGU6IFR1cnZvU2hpcG1lbnRTdGF0dXNcbiAgLyoqIFRoZSBzdGF0dXMgZGF0ZSBpbiBJU08gZm9ybWF0ICovXG4gIHN0YXR1c0RhdGU6IHN0cmluZ1xuICAvKiogVGhlIHRpbWV6b25lIGZvciB0aGUgc3RhdHVzIGRhdGUgKi9cbiAgc3RhdHVzVGltZXpvbmU6IHN0cmluZ1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHJldHJpZXZpbmcgYSBzaGlwbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdldFNoaXBtZW50UGFyYW1zIHtcbiAgLyoqIFRoZSBzaGlwbWVudCBJRCB0byByZXRyaWV2ZSAqL1xuICBzaGlwbWVudElkOiBudW1iZXJcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBmaWx0ZXJpbmcgc2hpcG1lbnRzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmlsdGVyU2hpcG1lbnRzUGFyYW1zIHtcbiAgLyoqIFR1cnZvIGxvY2F0aW9uIElEIHRvIGZpbHRlciBieSAqL1xuICB0dXJ2b0xvY2F0aW9uSWQ6IG51bWJlclxuICAvKiogUGlja3VwIGRhdGUgc3RhcnQgZmlsdGVyIChJU08gZm9ybWF0KSAqL1xuICBwaWNrdXBEYXRlU3RhcnQ6IHN0cmluZ1xuICAvKiogT3B0aW9uYWwgcGFnaW5hdGlvbiBzdGFydCBvZmZzZXQgKi9cbiAgc3RhcnQ/OiBudW1iZXJcbn1cblxuLyoqXG4gKiBUdXJ2b1B1YmxpY0FwaSBwcm92aWRlcyBhY2Nlc3MgdG8gZG9jdW1lbnRlZCBUdXJ2byBBUEkgZW5kcG9pbnRzLlxuICogQWxsIHNoaXBtZW50IG1hbmFnZW1lbnQgb3BlcmF0aW9ucyAoY3JlYXRlLCB1cGRhdGUsIGNhbmNlbCwgcXVlcnkpIGdvIHRocm91Z2ggdGhpcyBjbGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFR1cnZvUHVibGljQXBpIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjbGllbnQ6IFR1cnZvQ2xpZW50KSB7fVxuXG4gIC8qKlxuICAgKiBHRVQgL3YxL3NoaXBtZW50cy97aWR9XG4gICAqIFJldHVybnMgc2hpcG1lbnQgZGV0YWlscywgc3RvcHMsIHN0YXR1c1xuICAgKi9cbiAgYXN5bmMgZ2V0U2hpcG1lbnQocGFyYW1zOiBHZXRTaGlwbWVudFBhcmFtcyk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9TaGlwbWVudD4+IHtcbiAgICBjb25zdCB7IHNoaXBtZW50SWQgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvU2hpcG1lbnQ+KGAvc2hpcG1lbnRzLyR7c2hpcG1lbnRJZH1gLCBUdXJ2b0FwaU1ldGhvZC5HRVQsIHt9KVxuICB9XG5cbiAgLyoqXG4gICAqIFBPU1QgL3YxL3NoaXBtZW50c1xuICAgKiBVcGxvYWQgcHJvcGVybHkgZm9ybWF0dGVkIHNoaXBtZW50IHRvIFR1cnZvXG4gICAqL1xuICBhc3luYyB1cGxvYWRTaGlwbWVudChwYXJhbXM6IFVwbG9hZFNoaXBtZW50UGFyYW1zKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b0NyZWF0ZVNoaXBtZW50QXBpUmVzdWx0Pj4ge1xuICAgIGNvbnN0IHsgc2hpcG1lbnQgfSA9IHBhcmFtc1xuICAgIC8vIE5vdGU6IHZlaG9Mb2FkSWQgaXMga2VwdCBpbiB0aGUgcGFyYW1zIGZvciBsb2dnaW5nIHB1cnBvc2VzIGJ5IGNvbnN1bWVyc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvQ3JlYXRlU2hpcG1lbnRBcGlSZXN1bHQ+KCcvc2hpcG1lbnRzJywgVHVydm9BcGlNZXRob2QuUE9TVCwge1xuICAgICAgYm9keTogc2hpcG1lbnQsXG4gICAgfSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQVVQgL3YxL3RhZ3MvYXR0YWNoL3NoaXBtZW50L3tpZH1cbiAgICogQXNzb2NpYXRlIGEgbGlzdCBvZiB0YWdzIHdpdGggYSBzaGlwbWVudCBieSBJRFxuICAgKi9cbiAgYXN5bmMgYXNzb2NpYXRlVGFnc1RvU2hpcG1lbnQocGFyYW1zOiBBc3NvY2lhdGVUYWdzUGFyYW1zKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b0Fzc29jaWF0ZVRhZ3NBcGlSZXN1bHQ+PiB7XG4gICAgY29uc3QgeyB0dXJ2b1NoaXBtZW50SWQsIHRhZ3MgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvQXNzb2NpYXRlVGFnc0FwaVJlc3VsdD4oXG4gICAgICBgL3RhZ3MvYXR0YWNoL3NoaXBtZW50LyR7dHVydm9TaGlwbWVudElkfWAsXG4gICAgICBUdXJ2b0FwaU1ldGhvZC5QVVQsXG4gICAgICB7XG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICB0YWdOYW1lczogdGFncyxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICAvKipcbiAgICogUFVUIC92MS9zaGlwbWVudHMvc3RhdHVzL3tpZH1cbiAgICogU2V0IHNoaXBtZW50IHN0YXR1cyB0byBDYW5jZWxsZWQgaW4gVHVydm9cbiAgICovXG4gIGFzeW5jIGNhbmNlbFNoaXBtZW50KHBhcmFtczogQ2FuY2VsU2hpcG1lbnRQYXJhbXMpOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvQ2FuY2VsU2hpcG1lbnRBcGlSZXN1bHQ+PiB7XG4gICAgY29uc3QgeyB0dXJ2b1NoaXBtZW50SWQgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIGNvbnN0IGJvZHkgPSB7XG4gICAgICBpZDogdHVydm9TaGlwbWVudElkLFxuICAgICAgc3RhdHVzOiB7XG4gICAgICAgIGNvZGU6IHsga2V5OiAnMjExMycsIHZhbHVlOiAnQ2FuY2VsZWQnIH0gc2F0aXNmaWVzIFR1cnZvTG9va3VwLFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b0NhbmNlbFNoaXBtZW50QXBpUmVzdWx0PihcbiAgICAgIGAvc2hpcG1lbnRzL3N0YXR1cy8ke3R1cnZvU2hpcG1lbnRJZH1gLFxuICAgICAgVHVydm9BcGlNZXRob2QuUFVULFxuICAgICAge1xuICAgICAgICBib2R5LFxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIC8qKlxuICAgKiBQVVQgL3YxL3NoaXBtZW50cy9zdGF0dXMve2lkfVxuICAgKiBVcGRhdGUgc2hpcG1lbnQgc3RhdHVzIGF0IGEgc3BlY2lmaWMgc3RvcFxuICAgKi9cbiAgYXN5bmMgdXBkYXRlU2hpcG1lbnRTdGF0dXMoXG4gICAgcGFyYW1zOiBVcGRhdGVTaGlwbWVudFN0YXR1c1BhcmFtc1xuICApOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvVXBkYXRlU2hpcG1lbnRTdGF0dXNBcGlSZXN1bHQ+PiB7XG4gICAgY29uc3QgeyB0dXJ2b1NoaXBtZW50SWQsIHR1cnZvU3RvcElkLCB0dXJ2b1N0YXR1c0NvZGUsIHN0YXR1c0RhdGUsIHN0YXR1c1RpbWV6b25lIH0gPSBwYXJhbXNcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0QXV0aGVudGljYXRlZENsaWVudCgpXG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgaWQ6IHR1cnZvU2hpcG1lbnRJZCxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBnbG9iYWxTaGlwTG9jYXRpb25JZDogdHVydm9TdG9wSWQsXG4gICAgICAgIGNvZGU6IHR1cnZvU3RhdHVzQ29kZS5jb2RlLFxuICAgICAgICB0aW1lem9uZTogc3RhdHVzVGltZXpvbmUsXG4gICAgICAgIHN0YXR1c0RhdGU6IHtcbiAgICAgICAgICBkYXRlOiBzdGF0dXNEYXRlLFxuICAgICAgICAgIHRpbWV6b25lOiBzdGF0dXNUaW1lem9uZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgcmV0dXJuIGh0dHBDbGllbnQuc2VuZFJlcXVlc3Q8VHVydm9VcGRhdGVTaGlwbWVudFN0YXR1c0FwaVJlc3VsdD4oXG4gICAgICBgL3NoaXBtZW50cy9zdGF0dXMvJHt0dXJ2b1NoaXBtZW50SWR9YCxcbiAgICAgIFR1cnZvQXBpTWV0aG9kLlBVVCxcbiAgICAgIHsgYm9keSB9XG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEdFVCAvdjEvc2hpcG1lbnRzL2xpc3RcbiAgICogUXVlcnkgc2hpcG1lbnRzIGZyb20gVHVydm8gd2l0aCBwYWdpbmF0aW9uIHN1cHBvcnRcbiAgICovXG4gIGFzeW5jIGZpbHRlclNoaXBtZW50cyhcbiAgICBwYXJhbXM6IEZpbHRlclNoaXBtZW50c1BhcmFtc1xuICApOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvUGFnZWRSZXN1bHQ8J3NoaXBtZW50cycsIFR1cnZvRmlsdGVyU2hpcG1lbnRzUmVzdWx0SXRlbT4+PiB7XG4gICAgY29uc3QgeyB0dXJ2b0xvY2F0aW9uSWQsIHBpY2t1cERhdGVTdGFydCwgc3RhcnQgPSAwIH0gPSBwYXJhbXNcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0QXV0aGVudGljYXRlZENsaWVudCgpXG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b1BhZ2VkUmVzdWx0PCdzaGlwbWVudHMnLCBUdXJ2b0ZpbHRlclNoaXBtZW50c1Jlc3VsdEl0ZW0+PihcbiAgICAgICcvc2hpcG1lbnRzL2xpc3QnLFxuICAgICAgVHVydm9BcGlNZXRob2QuR0VULFxuICAgICAge1xuICAgICAgICBxdWVyeToge1xuICAgICAgICAgICdsb2NhdGlvbklkW2VxXSc6IHR1cnZvTG9jYXRpb25JZC50b1N0cmluZygpLFxuICAgICAgICAgICdwaWNrdXBEYXRlW2d0ZV0nOiBwaWNrdXBEYXRlU3RhcnQsXG4gICAgICAgICAgc3RhcnQ6IHN0YXJ0LnRvU3RyaW5nKCksXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgKVxuICB9XG59XG4iXX0=
|
|
99
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVydm9QdWJsaWNBcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvYXBpL3R1cnZvUHVibGljQXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxjQUFjLEdBS2YsTUFBTSxpQkFBaUIsQ0FBQTtBQTBFeEI7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGNBQWM7SUFDTDtJQUFwQixZQUFvQixNQUFtQjtRQUFuQixXQUFNLEdBQU4sTUFBTSxDQUFhO0lBQUcsQ0FBQztJQUUzQzs7O09BR0c7SUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLE1BQXlCO1FBQ3pDLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDN0IsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUFnQixjQUFjLFVBQVUsRUFBRSxFQUFFLGNBQWMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDbEcsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxjQUFjLENBQUMsTUFBNEI7UUFDL0MsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sQ0FBQTtRQUMzQiwyRUFBMkU7UUFDM0UsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUErQixZQUFZLEVBQUUsY0FBYyxDQUFDLElBQUksRUFBRTtZQUM3RixJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsdUJBQXVCLENBQUMsTUFBMkI7UUFDdkQsTUFBTSxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDeEMsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQix5QkFBeUIsZUFBZSxFQUFFLEVBQzFDLGNBQWMsQ0FBQyxHQUFHLEVBQ2xCO1lBQ0UsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxJQUFJO2FBQ2Y7U0FDRixDQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLGNBQWMsQ0FBQyxNQUE0QjtRQUMvQyxNQUFNLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQ2xDLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE1BQU0sSUFBSSxHQUFHO1lBQ1gsRUFBRSxFQUFFLGVBQWU7WUFDbkIsTUFBTSxFQUFFO2dCQUNOLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBd0I7YUFDL0Q7U0FDRixDQUFBO1FBRUQsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQixxQkFBcUIsZUFBZSxFQUFFLEVBQ3RDLGNBQWMsQ0FBQyxHQUFHLEVBQ2xCO1lBQ0UsSUFBSTtTQUNMLENBQ0YsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLLENBQUMsb0JBQW9CLENBQ3hCLE1BQWtDO1FBRWxDLE1BQU0sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEdBQUcsTUFBTSxDQUFBO1FBQzVGLE1BQU0sVUFBVSxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRTdELE1BQU0sSUFBSSxHQUFHO1lBQ1gsRUFBRSxFQUFFLGVBQWU7WUFDbkIsTUFBTSxFQUFFO2dCQUNOLG9CQUFvQixFQUFFLFdBQVc7Z0JBQ2pDLElBQUksRUFBRSxlQUFlO2dCQUNyQixRQUFRLEVBQUUsY0FBYztnQkFDeEIsVUFBVSxFQUFFO29CQUNWLElBQUksRUFBRSxVQUFVO29CQUNoQixRQUFRLEVBQUUsY0FBYztpQkFDekI7YUFDRjtTQUNGLENBQUE7UUFFRCxPQUFPLFVBQVUsQ0FBQyxXQUFXLENBQzNCLHFCQUFxQixlQUFlLEVBQUUsRUFDdEMsY0FBYyxDQUFDLEdBQUcsRUFDbEIsRUFBRSxJQUFJLEVBQUUsQ0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQ25CLE1BQTZCO1FBRTdCLE1BQU0sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLEtBQUssR0FBRyxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUE7UUFDOUQsTUFBTSxVQUFVLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLENBQUE7UUFFN0QsT0FBTyxVQUFVLENBQUMsV0FBVyxDQUMzQixpQkFBaUIsRUFDakIsY0FBYyxDQUFDLEdBQUcsRUFDbEI7WUFDRSxLQUFLLEVBQUU7Z0JBQ0wsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRTtnQkFDNUMsaUJBQWlCLEVBQUUsZUFBZTtnQkFDbEMsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUU7YUFDeEI7U0FDRixDQUNGLENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUdXJ2b0NsaWVudCB9IGZyb20gJy4uL2NsaWVudC90dXJ2b0NsaWVudCdcbmltcG9ydCB7XG4gIFR1cnZvQXBpTWV0aG9kLFxuICBUdXJ2b0FwaVJlc3VsdCxcbiAgVHVydm9GaWx0ZXJTaGlwbWVudHNSZXN1bHRJdGVtLFxuICBUdXJ2b0xvb2t1cCxcbiAgVHVydm9QYWdlZFJlc3VsdCxcbn0gZnJvbSAnLi4vdHlwZXMvY29tbW9uJ1xuaW1wb3J0IHtcbiAgVHVydm9Bc3NvY2lhdGVUYWdzQXBpUmVzdWx0LFxuICBUdXJ2b0NhbmNlbFNoaXBtZW50QXBpUmVzdWx0LFxuICBUdXJ2b0NyZWF0ZVNoaXBtZW50QXBpUmVzdWx0LFxuICBUdXJ2b1NoaXBtZW50LFxuICBUdXJ2b1NoaXBtZW50U3RhdHVzLFxuICBUdXJ2b1VwZGF0ZVNoaXBtZW50U3RhdHVzQXBpUmVzdWx0LFxufSBmcm9tICcuLi90eXBlcy9zaGlwbWVudCdcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB1cGxvYWRpbmcgYSBzaGlwbWVudCB0byBUdXJ2b1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFNoaXBtZW50UGFyYW1zIHtcbiAgLyoqIFRoZSBmb3JtYXR0ZWQgc2hpcG1lbnQgdG8gdXBsb2FkICovXG4gIHNoaXBtZW50OiBUdXJ2b1NoaXBtZW50XG4gIC8qKiBUaGUgTG9hZCBJRCwgc29sZWx5IGZvciBsb2dnaW5nIHB1cnBvc2VzICovXG4gIHZlaG9Mb2FkSWQ6IHN0cmluZ1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGFzc29jaWF0aW5nIHRhZ3MgdG8gYSBzaGlwbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc29jaWF0ZVRhZ3NQYXJhbXMge1xuICAvKiogVGhlIHNoaXBtZW50IElEIHRvIGFzc29jaWF0ZSB0YWdzIHdpdGggKi9cbiAgdHVydm9TaGlwbWVudElkOiBudW1iZXJcbiAgLyoqIExpc3Qgb2YgdGFnIG5hbWVzIHRvIGFzc2lnbiAqL1xuICB0YWdzOiBzdHJpbmdbXVxufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIGNhbmNlbGxpbmcgYSBzaGlwbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbmNlbFNoaXBtZW50UGFyYW1zIHtcbiAgLyoqIFRoZSBUdXJ2byBzeXN0ZW0gU2hpcG1lbnQgSUQgdG8gY2FuY2VsICovXG4gIHR1cnZvU2hpcG1lbnRJZDogbnVtYmVyXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgdXBkYXRpbmcgc2hpcG1lbnQgc3RhdHVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlU2hpcG1lbnRTdGF0dXNQYXJhbXMge1xuICAvKiogVGhlIFR1cnZvIHNoaXBtZW50IElEICovXG4gIHR1cnZvU2hpcG1lbnRJZDogbnVtYmVyXG4gIC8qKiBUaGUgVHVydm8gc3RvcCBJRCAob3B0aW9uYWwsIGRlcGVuZGluZyBvbiB0eXBlIG9mIHN0YXR1cyB1cGRhdGUpICovXG4gIHR1cnZvU3RvcElkPzogbnVtYmVyXG4gIC8qKiBUaGUgc3RhdHVzIGNvZGUgdG8gc2V0ICovXG4gIHR1cnZvU3RhdHVzQ29kZTogVHVydm9TaGlwbWVudFN0YXR1c1snY29kZSddXG4gIC8qKiBUaGUgc3RhdHVzIGRhdGUgaW4gSVNPIGZvcm1hdCAqL1xuICBzdGF0dXNEYXRlOiBzdHJpbmdcbiAgLyoqIFRoZSB0aW1lem9uZSBmb3IgdGhlIHN0YXR1cyBkYXRlICovXG4gIHN0YXR1c1RpbWV6b25lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciByZXRyaWV2aW5nIGEgc2hpcG1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZXRTaGlwbWVudFBhcmFtcyB7XG4gIC8qKiBUaGUgc2hpcG1lbnQgSUQgdG8gcmV0cmlldmUgKi9cbiAgc2hpcG1lbnRJZDogbnVtYmVyXG59XG5cbi8qKlxuICogUGFyYW1ldGVycyBmb3IgZmlsdGVyaW5nIHNoaXBtZW50c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlclNoaXBtZW50c1BhcmFtcyB7XG4gIC8qKiBUdXJ2byBsb2NhdGlvbiBJRCB0byBmaWx0ZXIgYnkgKi9cbiAgdHVydm9Mb2NhdGlvbklkOiBudW1iZXJcbiAgLyoqIFBpY2t1cCBkYXRlIHN0YXJ0IGZpbHRlciAoSVNPIGZvcm1hdCkgKi9cbiAgcGlja3VwRGF0ZVN0YXJ0OiBzdHJpbmdcbiAgLyoqIE9wdGlvbmFsIHBhZ2luYXRpb24gc3RhcnQgb2Zmc2V0ICovXG4gIHN0YXJ0PzogbnVtYmVyXG59XG5cbi8qKlxuICogVHVydm9QdWJsaWNBcGkgcHJvdmlkZXMgYWNjZXNzIHRvIGRvY3VtZW50ZWQgVHVydm8gQVBJIGVuZHBvaW50cy5cbiAqIEFsbCBzaGlwbWVudCBtYW5hZ2VtZW50IG9wZXJhdGlvbnMgKGNyZWF0ZSwgdXBkYXRlLCBjYW5jZWwsIHF1ZXJ5KSBnbyB0aHJvdWdoIHRoaXMgY2xhc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBUdXJ2b1B1YmxpY0FwaSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2xpZW50OiBUdXJ2b0NsaWVudCkge31cblxuICAvKipcbiAgICogR0VUIC92MS9zaGlwbWVudHMve2lkfVxuICAgKiBSZXR1cm5zIHNoaXBtZW50IGRldGFpbHMsIHN0b3BzLCBzdGF0dXNcbiAgICovXG4gIGFzeW5jIGdldFNoaXBtZW50KHBhcmFtczogR2V0U2hpcG1lbnRQYXJhbXMpOiBQcm9taXNlPFR1cnZvQXBpUmVzdWx0PFR1cnZvU2hpcG1lbnQ+PiB7XG4gICAgY29uc3QgeyBzaGlwbWVudElkIH0gPSBwYXJhbXNcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0QXV0aGVudGljYXRlZENsaWVudCgpXG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b1NoaXBtZW50PihgL3NoaXBtZW50cy8ke3NoaXBtZW50SWR9YCwgVHVydm9BcGlNZXRob2QuR0VULCB7fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBQT1NUIC92MS9zaGlwbWVudHNcbiAgICogVXBsb2FkIHByb3Blcmx5IGZvcm1hdHRlZCBzaGlwbWVudCB0byBUdXJ2b1xuICAgKi9cbiAgYXN5bmMgdXBsb2FkU2hpcG1lbnQocGFyYW1zOiBVcGxvYWRTaGlwbWVudFBhcmFtcyk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9DcmVhdGVTaGlwbWVudEFwaVJlc3VsdD4+IHtcbiAgICBjb25zdCB7IHNoaXBtZW50IH0gPSBwYXJhbXNcbiAgICAvLyBOb3RlOiB2ZWhvTG9hZElkIGlzIGtlcHQgaW4gdGhlIHBhcmFtcyBmb3IgbG9nZ2luZyBwdXJwb3NlcyBieSBjb25zdW1lcnNcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0QXV0aGVudGljYXRlZENsaWVudCgpXG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b0NyZWF0ZVNoaXBtZW50QXBpUmVzdWx0PignL3NoaXBtZW50cycsIFR1cnZvQXBpTWV0aG9kLlBPU1QsIHtcbiAgICAgIGJvZHk6IHNoaXBtZW50LFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogUFVUIC92MS90YWdzL2F0dGFjaC9zaGlwbWVudC97aWR9XG4gICAqIEFzc29jaWF0ZSBhIGxpc3Qgb2YgdGFncyB3aXRoIGEgc2hpcG1lbnQgYnkgSURcbiAgICovXG4gIGFzeW5jIGFzc29jaWF0ZVRhZ3NUb1NoaXBtZW50KHBhcmFtczogQXNzb2NpYXRlVGFnc1BhcmFtcyk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9Bc3NvY2lhdGVUYWdzQXBpUmVzdWx0Pj4ge1xuICAgIGNvbnN0IHsgdHVydm9TaGlwbWVudElkLCB0YWdzIH0gPSBwYXJhbXNcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0QXV0aGVudGljYXRlZENsaWVudCgpXG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b0Fzc29jaWF0ZVRhZ3NBcGlSZXN1bHQ+KFxuICAgICAgYC90YWdzL2F0dGFjaC9zaGlwbWVudC8ke3R1cnZvU2hpcG1lbnRJZH1gLFxuICAgICAgVHVydm9BcGlNZXRob2QuUFVULFxuICAgICAge1xuICAgICAgICBib2R5OiB7XG4gICAgICAgICAgdGFnTmFtZXM6IHRhZ3MsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIFBVVCAvdjEvc2hpcG1lbnRzL3N0YXR1cy97aWR9XG4gICAqIFNldCBzaGlwbWVudCBzdGF0dXMgdG8gQ2FuY2VsbGVkIGluIFR1cnZvXG4gICAqL1xuICBhc3luYyBjYW5jZWxTaGlwbWVudChwYXJhbXM6IENhbmNlbFNoaXBtZW50UGFyYW1zKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b0NhbmNlbFNoaXBtZW50QXBpUmVzdWx0Pj4ge1xuICAgIGNvbnN0IHsgdHVydm9TaGlwbWVudElkIH0gPSBwYXJhbXNcbiAgICBjb25zdCBodHRwQ2xpZW50ID0gYXdhaXQgdGhpcy5jbGllbnQuZ2V0QXV0aGVudGljYXRlZENsaWVudCgpXG5cbiAgICBjb25zdCBib2R5ID0ge1xuICAgICAgaWQ6IHR1cnZvU2hpcG1lbnRJZCxcbiAgICAgIHN0YXR1czoge1xuICAgICAgICBjb2RlOiB7IGtleTogJzIxMTMnLCB2YWx1ZTogJ0NhbmNlbGVkJyB9IHNhdGlzZmllcyBUdXJ2b0xvb2t1cCxcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgcmV0dXJuIGh0dHBDbGllbnQuc2VuZFJlcXVlc3Q8VHVydm9DYW5jZWxTaGlwbWVudEFwaVJlc3VsdD4oXG4gICAgICBgL3NoaXBtZW50cy9zdGF0dXMvJHt0dXJ2b1NoaXBtZW50SWR9YCxcbiAgICAgIFR1cnZvQXBpTWV0aG9kLlBVVCxcbiAgICAgIHtcbiAgICAgICAgYm9keSxcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICAvKipcbiAgICogUFVUIC92MS9zaGlwbWVudHMvc3RhdHVzL3tpZH1cbiAgICogVXBkYXRlIHNoaXBtZW50IHN0YXR1cyBhdCBhIHNwZWNpZmljIHN0b3BcbiAgICovXG4gIGFzeW5jIHVwZGF0ZVNoaXBtZW50U3RhdHVzKFxuICAgIHBhcmFtczogVXBkYXRlU2hpcG1lbnRTdGF0dXNQYXJhbXNcbiAgKTogUHJvbWlzZTxUdXJ2b0FwaVJlc3VsdDxUdXJ2b1VwZGF0ZVNoaXBtZW50U3RhdHVzQXBpUmVzdWx0Pj4ge1xuICAgIGNvbnN0IHsgdHVydm9TaGlwbWVudElkLCB0dXJ2b1N0b3BJZCwgdHVydm9TdGF0dXNDb2RlLCBzdGF0dXNEYXRlLCBzdGF0dXNUaW1lem9uZSB9ID0gcGFyYW1zXG4gICAgY29uc3QgaHR0cENsaWVudCA9IGF3YWl0IHRoaXMuY2xpZW50LmdldEF1dGhlbnRpY2F0ZWRDbGllbnQoKVxuXG4gICAgY29uc3QgYm9keSA9IHtcbiAgICAgIGlkOiB0dXJ2b1NoaXBtZW50SWQsXG4gICAgICBzdGF0dXM6IHtcbiAgICAgICAgZ2xvYmFsU2hpcExvY2F0aW9uSWQ6IHR1cnZvU3RvcElkLFxuICAgICAgICBjb2RlOiB0dXJ2b1N0YXR1c0NvZGUsXG4gICAgICAgIHRpbWV6b25lOiBzdGF0dXNUaW1lem9uZSxcbiAgICAgICAgc3RhdHVzRGF0ZToge1xuICAgICAgICAgIGRhdGU6IHN0YXR1c0RhdGUsXG4gICAgICAgICAgdGltZXpvbmU6IHN0YXR1c1RpbWV6b25lLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9XG5cbiAgICByZXR1cm4gaHR0cENsaWVudC5zZW5kUmVxdWVzdDxUdXJ2b1VwZGF0ZVNoaXBtZW50U3RhdHVzQXBpUmVzdWx0PihcbiAgICAgIGAvc2hpcG1lbnRzL3N0YXR1cy8ke3R1cnZvU2hpcG1lbnRJZH1gLFxuICAgICAgVHVydm9BcGlNZXRob2QuUFVULFxuICAgICAgeyBib2R5IH1cbiAgICApXG4gIH1cblxuICAvKipcbiAgICogR0VUIC92MS9zaGlwbWVudHMvbGlzdFxuICAgKiBRdWVyeSBzaGlwbWVudHMgZnJvbSBUdXJ2byB3aXRoIHBhZ2luYXRpb24gc3VwcG9ydFxuICAgKi9cbiAgYXN5bmMgZmlsdGVyU2hpcG1lbnRzKFxuICAgIHBhcmFtczogRmlsdGVyU2hpcG1lbnRzUGFyYW1zXG4gICk6IFByb21pc2U8VHVydm9BcGlSZXN1bHQ8VHVydm9QYWdlZFJlc3VsdDwnc2hpcG1lbnRzJywgVHVydm9GaWx0ZXJTaGlwbWVudHNSZXN1bHRJdGVtPj4+IHtcbiAgICBjb25zdCB7IHR1cnZvTG9jYXRpb25JZCwgcGlja3VwRGF0ZVN0YXJ0LCBzdGFydCA9IDAgfSA9IHBhcmFtc1xuICAgIGNvbnN0IGh0dHBDbGllbnQgPSBhd2FpdCB0aGlzLmNsaWVudC5nZXRBdXRoZW50aWNhdGVkQ2xpZW50KClcblxuICAgIHJldHVybiBodHRwQ2xpZW50LnNlbmRSZXF1ZXN0PFR1cnZvUGFnZWRSZXN1bHQ8J3NoaXBtZW50cycsIFR1cnZvRmlsdGVyU2hpcG1lbnRzUmVzdWx0SXRlbT4+KFxuICAgICAgJy9zaGlwbWVudHMvbGlzdCcsXG4gICAgICBUdXJ2b0FwaU1ldGhvZC5HRVQsXG4gICAgICB7XG4gICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgJ2xvY2F0aW9uSWRbZXFdJzogdHVydm9Mb2NhdGlvbklkLnRvU3RyaW5nKCksXG4gICAgICAgICAgJ3BpY2t1cERhdGVbZ3RlXSc6IHBpY2t1cERhdGVTdGFydCxcbiAgICAgICAgICBzdGFydDogc3RhcnQudG9TdHJpbmcoKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICApXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
|
|
2
|
+
export declare const createDocClient: () => DynamoDBDocumentClient;
|
|
3
|
+
export declare const getDocClient: () => DynamoDBDocumentClient;
|
|
4
|
+
export declare const getIndexNameByTurvoLocationId: () => string | undefined;
|
|
5
|
+
export declare const getTableName: () => string | undefined;
|
|
6
|
+
export declare const getIndexNameByShortCode: () => string | undefined;
|
|
7
|
+
export declare const getRetiredFacilityMappingTableName: () => string | undefined;
|
|
8
|
+
export declare const getFacilityCodeMapTable: () => string | undefined;
|
|
9
|
+
export declare const getIndexNameByFacilityCode: () => string | undefined;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
2
|
+
import { DynamoDBDocumentClient } from '@aws-sdk/lib-dynamodb';
|
|
3
|
+
// Create DynamoDB client without X-Ray tracing for SDK usage
|
|
4
|
+
export const createDocClient = () => {
|
|
5
|
+
return DynamoDBDocumentClient.from(new DynamoDBClient({}), {
|
|
6
|
+
marshallOptions: {
|
|
7
|
+
convertEmptyValues: true,
|
|
8
|
+
},
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
// Singleton instance
|
|
12
|
+
let docClientInstance = null;
|
|
13
|
+
export const getDocClient = () => {
|
|
14
|
+
if (!docClientInstance) {
|
|
15
|
+
docClientInstance = createDocClient();
|
|
16
|
+
}
|
|
17
|
+
return docClientInstance;
|
|
18
|
+
};
|
|
19
|
+
// Environment-based table names and indexes
|
|
20
|
+
export const getIndexNameByTurvoLocationId = () => process.env.INDEX_NAME_BY_TURVO_LOCATION_ID;
|
|
21
|
+
export const getTableName = () => process.env.TABLE_NAME;
|
|
22
|
+
export const getIndexNameByShortCode = () => process.env.INDEX_NAME_BY_SHORT_CODE;
|
|
23
|
+
export const getRetiredFacilityMappingTableName = () => process.env.RETIRED_FACILITY_MAPPINGS_TABLE_NAME;
|
|
24
|
+
export const getFacilityCodeMapTable = () => process.env.FACILITY_CODE_MAP_TABLE;
|
|
25
|
+
export const getIndexNameByFacilityCode = () => process.env.INDEX_NAME_BY_FACILITY_CODE;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RiL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFOUQsNkRBQTZEO0FBQzdELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDbEMsT0FBTyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxjQUFjLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDekQsZUFBZSxFQUFFO1lBQ2Ysa0JBQWtCLEVBQUUsSUFBSTtTQUN6QjtLQUNGLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQUVELHFCQUFxQjtBQUNyQixJQUFJLGlCQUFpQixHQUFrQyxJQUFJLENBQUE7QUFFM0QsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQTJCLEVBQUU7SUFDdkQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDdkIsaUJBQWlCLEdBQUcsZUFBZSxFQUFFLENBQUE7SUFDdkMsQ0FBQztJQUNELE9BQU8saUJBQWlCLENBQUE7QUFDMUIsQ0FBQyxDQUFBO0FBRUQsNENBQTRDO0FBQzVDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUE7QUFDOUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFBO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUE7QUFDakYsTUFBTSxDQUFDLE1BQU0sa0NBQWtDLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQTtBQUN4RyxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFBO0FBQ2hGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEeW5hbW9EQkNsaWVudCB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYidcbmltcG9ydCB7IER5bmFtb0RCRG9jdW1lbnRDbGllbnQgfSBmcm9tICdAYXdzLXNkay9saWItZHluYW1vZGInXG5cbi8vIENyZWF0ZSBEeW5hbW9EQiBjbGllbnQgd2l0aG91dCBYLVJheSB0cmFjaW5nIGZvciBTREsgdXNhZ2VcbmV4cG9ydCBjb25zdCBjcmVhdGVEb2NDbGllbnQgPSAoKSA9PiB7XG4gIHJldHVybiBEeW5hbW9EQkRvY3VtZW50Q2xpZW50LmZyb20obmV3IER5bmFtb0RCQ2xpZW50KHt9KSwge1xuICAgIG1hcnNoYWxsT3B0aW9uczoge1xuICAgICAgY29udmVydEVtcHR5VmFsdWVzOiB0cnVlLFxuICAgIH0sXG4gIH0pXG59XG5cbi8vIFNpbmdsZXRvbiBpbnN0YW5jZVxubGV0IGRvY0NsaWVudEluc3RhbmNlOiBEeW5hbW9EQkRvY3VtZW50Q2xpZW50IHwgbnVsbCA9IG51bGxcblxuZXhwb3J0IGNvbnN0IGdldERvY0NsaWVudCA9ICgpOiBEeW5hbW9EQkRvY3VtZW50Q2xpZW50ID0+IHtcbiAgaWYgKCFkb2NDbGllbnRJbnN0YW5jZSkge1xuICAgIGRvY0NsaWVudEluc3RhbmNlID0gY3JlYXRlRG9jQ2xpZW50KClcbiAgfVxuICByZXR1cm4gZG9jQ2xpZW50SW5zdGFuY2Vcbn1cblxuLy8gRW52aXJvbm1lbnQtYmFzZWQgdGFibGUgbmFtZXMgYW5kIGluZGV4ZXNcbmV4cG9ydCBjb25zdCBnZXRJbmRleE5hbWVCeVR1cnZvTG9jYXRpb25JZCA9ICgpID0+IHByb2Nlc3MuZW52LklOREVYX05BTUVfQllfVFVSVk9fTE9DQVRJT05fSURcbmV4cG9ydCBjb25zdCBnZXRUYWJsZU5hbWUgPSAoKSA9PiBwcm9jZXNzLmVudi5UQUJMRV9OQU1FXG5leHBvcnQgY29uc3QgZ2V0SW5kZXhOYW1lQnlTaG9ydENvZGUgPSAoKSA9PiBwcm9jZXNzLmVudi5JTkRFWF9OQU1FX0JZX1NIT1JUX0NPREVcbmV4cG9ydCBjb25zdCBnZXRSZXRpcmVkRmFjaWxpdHlNYXBwaW5nVGFibGVOYW1lID0gKCkgPT4gcHJvY2Vzcy5lbnYuUkVUSVJFRF9GQUNJTElUWV9NQVBQSU5HU19UQUJMRV9OQU1FXG5leHBvcnQgY29uc3QgZ2V0RmFjaWxpdHlDb2RlTWFwVGFibGUgPSAoKSA9PiBwcm9jZXNzLmVudi5GQUNJTElUWV9DT0RFX01BUF9UQUJMRVxuZXhwb3J0IGNvbnN0IGdldEluZGV4TmFtZUJ5RmFjaWxpdHlDb2RlID0gKCkgPT4gcHJvY2Vzcy5lbnYuSU5ERVhfTkFNRV9CWV9GQUNJTElUWV9DT0RFXG4iXX0=
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Facility mapping functions for Turvo location to Veho facility mapping
|
|
3
|
+
*
|
|
4
|
+
* This file contains methods for mapping between Turvo locations and Veho facilities.
|
|
5
|
+
* It abstracts over three different tables:
|
|
6
|
+
* 1. FACILITY_CODE_MAP_TABLE: stores the map using the current facilityCode naming scheme
|
|
7
|
+
* 2. SHORT_CODE_MAP_TABLE: stores the map using the old shortCode naming scheme
|
|
8
|
+
* 3. RETIRED_FACILITY_MAPPING_TABLE_NAME: stores retired facility mappings
|
|
9
|
+
*/
|
|
10
|
+
import { VehoTurvoLocationMap } from '../types/facilityMapping';
|
|
11
|
+
/**
|
|
12
|
+
* Get facility mapping for a Turvo location ID
|
|
13
|
+
* Checks both facility code and short code mappings
|
|
14
|
+
*/
|
|
15
|
+
export declare const getFacilityMappingForTurvoLocationId: (turvoLocationId: number) => Promise<VehoTurvoLocationMap | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Get retired facility mapping for a Turvo location ID
|
|
18
|
+
*/
|
|
19
|
+
export declare const getRetiredFacilityMappingForTurvoLocationId: (turvoLocationId: number) => Promise<VehoTurvoLocationMap | null>;
|
|
20
|
+
/**
|
|
21
|
+
* Get retired facility mapping by human identifier (facility code or short code)
|
|
22
|
+
*/
|
|
23
|
+
export declare const getRetiredFacilityMappingByHumanIdentifier: (humanIdentifier: string) => Promise<VehoTurvoLocationMap | null>;
|
|
24
|
+
/**
|
|
25
|
+
* Get facility mapping by human identifier (facility code)
|
|
26
|
+
*/
|
|
27
|
+
export declare const getFacilityMappingByHumanIdentifier: (identifier: string) => Promise<VehoTurvoLocationMap | null>;
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Facility mapping functions for Turvo location to Veho facility mapping
|
|
3
|
+
*
|
|
4
|
+
* This file contains methods for mapping between Turvo locations and Veho facilities.
|
|
5
|
+
* It abstracts over three different tables:
|
|
6
|
+
* 1. FACILITY_CODE_MAP_TABLE: stores the map using the current facilityCode naming scheme
|
|
7
|
+
* 2. SHORT_CODE_MAP_TABLE: stores the map using the old shortCode naming scheme
|
|
8
|
+
* 3. RETIRED_FACILITY_MAPPING_TABLE_NAME: stores retired facility mappings
|
|
9
|
+
*/
|
|
10
|
+
import { QueryCommand } from '@aws-sdk/lib-dynamodb';
|
|
11
|
+
import { getDocClient, getFacilityCodeMapTable, getIndexNameByFacilityCode, getIndexNameByShortCode, getIndexNameByTurvoLocationId, getRetiredFacilityMappingTableName, getTableName, } from './client';
|
|
12
|
+
/**
|
|
13
|
+
* Get facility mapping for a Turvo location ID
|
|
14
|
+
* Checks both facility code and short code mappings
|
|
15
|
+
*/
|
|
16
|
+
export const getFacilityMappingForTurvoLocationId = async (turvoLocationId) => {
|
|
17
|
+
if (typeof turvoLocationId !== 'number') {
|
|
18
|
+
return null;
|
|
19
|
+
}
|
|
20
|
+
// Check new FACILITY_CODE_MAP_TABLE first
|
|
21
|
+
const facilityCodeMapping = await getFacilityCodeMappingForTurvoLocationId(turvoLocationId);
|
|
22
|
+
if (facilityCodeMapping) {
|
|
23
|
+
return facilityCodeMapping;
|
|
24
|
+
}
|
|
25
|
+
// Then check the SHORT_CODE_MAP_TABLE
|
|
26
|
+
const shortCodeMapping = await getShortCodeMappingForTurvoLocationId(turvoLocationId);
|
|
27
|
+
if (shortCodeMapping) {
|
|
28
|
+
return shortCodeMapping;
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Get retired facility mapping for a Turvo location ID
|
|
34
|
+
*/
|
|
35
|
+
export const getRetiredFacilityMappingForTurvoLocationId = async (turvoLocationId) => {
|
|
36
|
+
if (typeof turvoLocationId !== 'number') {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
const tableName = getRetiredFacilityMappingTableName();
|
|
40
|
+
const indexName = getIndexNameByTurvoLocationId();
|
|
41
|
+
if (!tableName || !indexName) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const dbQuery = new QueryCommand({
|
|
45
|
+
TableName: tableName,
|
|
46
|
+
IndexName: indexName,
|
|
47
|
+
KeyConditionExpression: 'turvoLocationId = :turvoLocationId',
|
|
48
|
+
ExpressionAttributeValues: {
|
|
49
|
+
':turvoLocationId': turvoLocationId,
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
const response = await getDocClient().send(dbQuery);
|
|
53
|
+
if (!response.Items?.length) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return response.Items[0];
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Get retired facility mapping by human identifier (facility code or short code)
|
|
60
|
+
*/
|
|
61
|
+
export const getRetiredFacilityMappingByHumanIdentifier = async (humanIdentifier) => {
|
|
62
|
+
if (typeof humanIdentifier !== 'string' || humanIdentifier === '') {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const tableName = getRetiredFacilityMappingTableName();
|
|
66
|
+
const indexName = getIndexNameByShortCode();
|
|
67
|
+
if (!tableName || !indexName) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const dbQuery = new QueryCommand({
|
|
71
|
+
TableName: tableName,
|
|
72
|
+
IndexName: indexName,
|
|
73
|
+
KeyConditionExpression: 'shortCode = :shortCode',
|
|
74
|
+
ExpressionAttributeValues: {
|
|
75
|
+
':shortCode': humanIdentifier,
|
|
76
|
+
},
|
|
77
|
+
});
|
|
78
|
+
const response = await getDocClient().send(dbQuery);
|
|
79
|
+
if (!response.Items?.length) {
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
return response.Items[0];
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* Get facility mapping by human identifier (facility code)
|
|
86
|
+
*/
|
|
87
|
+
export const getFacilityMappingByHumanIdentifier = async (identifier) => {
|
|
88
|
+
if (typeof identifier !== 'string' || identifier === '') {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
return getFacilityMappingByFacilityCode(identifier);
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Get facility code mapping for a Turvo location ID
|
|
95
|
+
*/
|
|
96
|
+
const getFacilityCodeMappingForTurvoLocationId = async (turvoLocationId) => {
|
|
97
|
+
if (typeof turvoLocationId !== 'number') {
|
|
98
|
+
return null;
|
|
99
|
+
}
|
|
100
|
+
const tableName = getFacilityCodeMapTable();
|
|
101
|
+
const indexName = getIndexNameByTurvoLocationId();
|
|
102
|
+
if (!tableName || !indexName) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const dbQuery = new QueryCommand({
|
|
106
|
+
TableName: tableName,
|
|
107
|
+
IndexName: indexName,
|
|
108
|
+
KeyConditionExpression: 'turvoLocationId = :turvoLocationId',
|
|
109
|
+
ExpressionAttributeValues: {
|
|
110
|
+
':turvoLocationId': turvoLocationId,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
const response = await getDocClient().send(dbQuery);
|
|
114
|
+
if (!response.Items?.length || response.Items.length !== 1) {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
return response.Items[0];
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Get short code mapping for a Turvo location ID
|
|
121
|
+
*/
|
|
122
|
+
const getShortCodeMappingForTurvoLocationId = async (turvoLocationId) => {
|
|
123
|
+
if (typeof turvoLocationId !== 'number') {
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
const tableName = getTableName();
|
|
127
|
+
const indexName = getIndexNameByTurvoLocationId();
|
|
128
|
+
if (!tableName || !indexName) {
|
|
129
|
+
return null;
|
|
130
|
+
}
|
|
131
|
+
const dbQuery = new QueryCommand({
|
|
132
|
+
TableName: tableName,
|
|
133
|
+
IndexName: indexName,
|
|
134
|
+
KeyConditionExpression: 'turvoLocationId = :turvoLocationId',
|
|
135
|
+
ExpressionAttributeValues: {
|
|
136
|
+
':turvoLocationId': turvoLocationId,
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
const response = await getDocClient().send(dbQuery);
|
|
140
|
+
if (!response.Items?.length) {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
return response.Items[0];
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Get facility mapping by facility code
|
|
147
|
+
*/
|
|
148
|
+
const getFacilityMappingByFacilityCode = async (facilityCode) => {
|
|
149
|
+
if (typeof facilityCode !== 'string' || facilityCode === '') {
|
|
150
|
+
return null;
|
|
151
|
+
}
|
|
152
|
+
const tableName = getFacilityCodeMapTable();
|
|
153
|
+
const indexName = getIndexNameByFacilityCode();
|
|
154
|
+
if (!tableName || !indexName) {
|
|
155
|
+
return null;
|
|
156
|
+
}
|
|
157
|
+
const dbQuery = new QueryCommand({
|
|
158
|
+
TableName: tableName,
|
|
159
|
+
IndexName: indexName,
|
|
160
|
+
KeyConditionExpression: 'facilityCode = :facilityCode',
|
|
161
|
+
ExpressionAttributeValues: {
|
|
162
|
+
':facilityCode': facilityCode,
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
const response = await getDocClient().send(dbQuery);
|
|
166
|
+
if (!response.Items?.length) {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
return response.Items[0];
|
|
170
|
+
};
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjaWxpdHlNYXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RiL2ZhY2lsaXR5TWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQTtBQUdwRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLDZCQUE2QixFQUM3QixrQ0FBa0MsRUFDbEMsWUFBWSxHQUNiLE1BQU0sVUFBVSxDQUFBO0FBRWpCOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9DQUFvQyxHQUFHLEtBQUssRUFDdkQsZUFBdUIsRUFDZSxFQUFFO0lBQ3hDLElBQUksT0FBTyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsMENBQTBDO0lBQzFDLE1BQU0sbUJBQW1CLEdBQUcsTUFBTSx3Q0FBd0MsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUMzRixJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDeEIsT0FBTyxtQkFBbUIsQ0FBQTtJQUM1QixDQUFDO0lBRUQsc0NBQXNDO0lBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxxQ0FBcUMsQ0FBQyxlQUFlLENBQUMsQ0FBQTtJQUNyRixJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDckIsT0FBTyxnQkFBZ0IsQ0FBQTtJQUN6QixDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUE7QUFDYixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLDJDQUEyQyxHQUFHLEtBQUssRUFDOUQsZUFBdUIsRUFDZSxFQUFFO0lBQ3hDLElBQUksT0FBTyxlQUFlLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsTUFBTSxTQUFTLEdB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Q0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBeUIsQ0FBQTtBQUNsRCxDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sZ0NBQWdDLEdBQUcsS0FBSyxFQUFFLFlBQW9CLEVBQXdDLEVBQUU7SUFDNUcsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksWUFBWSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLHVCQUF1QixFQUFFLENBQUE7SUFDM0MsTUFBTSxTQUFTLEdBQUcsMEJBQTBCLEVBQUUsQ0FBQTtJQUU5QyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxZQUFZLENBQUM7UUFDL0IsU0FBUyxFQUFFLFNBQVM7UUFDcEIsU0FBUyxFQUFFLFNBQVM7UUFDcEIsc0JBQXNCLEVBQUUsOEJBQThCO1FBQ3RELHlCQUF5QixFQUFFO1lBQ3pCLGVBQWUsRUFBRSxZQUFZO1NBQzlCO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsTUFBTSxRQUFRLEdBQUcsTUFBTSxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUE7SUFDYixDQUFDO0lBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBeUIsQ0FBQTtBQUNsRCxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZhY2lsaXR5IG1hcHBpbmcgZnVuY3Rpb25zIGZvciBUdXJ2byBsb2NhdGlvbiB0byBWZWhvIGZhY2lsaXR5IG1hcHBpbmdcbiAqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgbWV0aG9kcyBmb3IgbWFwcGluZyBiZXR3ZWVuIFR1cnZvIGxvY2F0aW9ucyBhbmQgVmVobyBmYWNpbGl0aWVzLlxuICogSXQgYWJzdHJhY3RzIG92ZXIgdGhyZWUgZGlmZmVyZW50IHRhYmxlczpcbiAqIDEuIEZBQ0lMSVRZX0NPREVfTUFQX1RBQkxFOiBzdG9yZXMgdGhlIG1hcCB1c2luZyB0aGUgY3VycmVudCBmYWNpbGl0eUNvZGUgbmFtaW5nIHNjaGVtZVxuICogMi4gU0hPUlRfQ09ERV9NQVBfVEFCTEU6IHN0b3JlcyB0aGUgbWFwIHVzaW5nIHRoZSBvbGQgc2hvcnRDb2RlIG5hbWluZyBzY2hlbWVcbiAqIDMuIFJFVElSRURfRkFDSUxJVFlfTUFQUElOR19UQUJMRV9OQU1FOiBzdG9yZXMgcmV0aXJlZCBmYWNpbGl0eSBtYXBwaW5nc1xuICovXG5cbmltcG9ydCB7IFF1ZXJ5Q29tbWFuZCB9IGZyb20gJ0Bhd3Mtc2RrL2xpYi1keW5hbW9kYidcblxuaW1wb3J0IHsgVmVob1R1cnZvTG9jYXRpb25NYXAgfSBmcm9tICcuLi90eXBlcy9mYWNpbGl0eU1hcHBpbmcnXG5pbXBvcnQge1xuICBnZXREb2NDbGllbnQsXG4gIGdldEZhY2lsaXR5Q29kZU1hcFRhYmxlLFxuICBnZXRJbmRleE5hbWVCeUZhY2lsaXR5Q29kZSxcbiAgZ2V0SW5kZXhOYW1lQnlTaG9ydENvZGUsXG4gIGdldEluZGV4TmFtZUJ5VHVydm9Mb2NhdGlvbklkLFxuICBnZXRSZXRpcmVkRmFjaWxpdHlNYXBwaW5nVGFibGVOYW1lLFxuICBnZXRUYWJsZU5hbWUsXG59IGZyb20gJy4vY2xpZW50J1xuXG4vKipcbiAqIEdldCBmYWNpbGl0eSBtYXBwaW5nIGZvciBhIFR1cnZvIGxvY2F0aW9uIElEXG4gKiBDaGVja3MgYm90aCBmYWNpbGl0eSBjb2RlIGFuZCBzaG9ydCBjb2RlIG1hcHBpbmdzXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGYWNpbGl0eU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQgPSBhc3luYyAoXG4gIHR1cnZvTG9jYXRpb25JZDogbnVtYmVyXG4pOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIHR1cnZvTG9jYXRpb25JZCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLy8gQ2hlY2sgbmV3IEZBQ0lMSVRZX0NPREVfTUFQX1RBQkxFIGZpcnN0XG4gIGNvbnN0IGZhY2lsaXR5Q29kZU1hcHBpbmcgPSBhd2FpdCBnZXRGYWNpbGl0eUNvZGVNYXBwaW5nRm9yVHVydm9Mb2NhdGlvbklkKHR1cnZvTG9jYXRpb25JZClcbiAgaWYgKGZhY2lsaXR5Q29kZU1hcHBpbmcpIHtcbiAgICByZXR1cm4gZmFjaWxpdHlDb2RlTWFwcGluZ1xuICB9XG5cbiAgLy8gVGhlbiBjaGVjayB0aGUgU0hPUlRfQ09ERV9NQVBfVEFCTEVcbiAgY29uc3Qgc2hvcnRDb2RlTWFwcGluZyA9IGF3YWl0IGdldFNob3J0Q29kZU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQodHVydm9Mb2NhdGlvbklkKVxuICBpZiAoc2hvcnRDb2RlTWFwcGluZykge1xuICAgIHJldHVybiBzaG9ydENvZGVNYXBwaW5nXG4gIH1cblxuICByZXR1cm4gbnVsbFxufVxuXG4vKipcbiAqIEdldCByZXRpcmVkIGZhY2lsaXR5IG1hcHBpbmcgZm9yIGEgVHVydm8gbG9jYXRpb24gSURcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFJldGlyZWRGYWNpbGl0eU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQgPSBhc3luYyAoXG4gIHR1cnZvTG9jYXRpb25JZDogbnVtYmVyXG4pOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIHR1cnZvTG9jYXRpb25JZCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgdGFibGVOYW1lID0gZ2V0UmV0aXJlZEZhY2lsaXR5TWFwcGluZ1RhYmxlTmFtZSgpXG4gIGNvbnN0IGluZGV4TmFtZSA9IGdldEluZGV4TmFtZUJ5VHVydm9Mb2NhdGlvbklkKClcblxuICBpZiAoIXRhYmxlTmFtZSB8fCAhaW5kZXhOYW1lKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGRiUXVlcnkgPSBuZXcgUXVlcnlDb21tYW5kKHtcbiAgICBUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICBJbmRleE5hbWU6IGluZGV4TmFtZSxcbiAgICBLZXlDb25kaXRpb25FeHByZXNzaW9uOiAndHVydm9Mb2NhdGlvbklkID0gOnR1cnZvTG9jYXRpb25JZCcsXG4gICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgJzp0dXJ2b0xvY2F0aW9uSWQnOiB0dXJ2b0xvY2F0aW9uSWQsXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldERvY0NsaWVudCgpLnNlbmQoZGJRdWVyeSlcbiAgaWYgKCFyZXNwb25zZS5JdGVtcz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gcmVzcG9uc2UuSXRlbXNbMF0gYXMgVmVob1R1cnZvTG9jYXRpb25NYXBcbn1cblxuLyoqXG4gKiBHZXQgcmV0aXJlZCBmYWNpbGl0eSBtYXBwaW5nIGJ5IGh1bWFuIGlkZW50aWZpZXIgKGZhY2lsaXR5IGNvZGUgb3Igc2hvcnQgY29kZSlcbiAqL1xuZXhwb3J0IGNvbnN0IGdldFJldGlyZWRGYWNpbGl0eU1hcHBpbmdCeUh1bWFuSWRlbnRpZmllciA9IGFzeW5jIChcbiAgaHVtYW5JZGVudGlmaWVyOiBzdHJpbmdcbik6IFByb21pc2U8VmVob1R1cnZvTG9jYXRpb25NYXAgfCBudWxsPiA9PiB7XG4gIGlmICh0eXBlb2YgaHVtYW5JZGVudGlmaWVyICE9PSAnc3RyaW5nJyB8fCBodW1hbklkZW50aWZpZXIgPT09ICcnKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHRhYmxlTmFtZSA9IGdldFJldGlyZWRGYWNpbGl0eU1hcHBpbmdUYWJsZU5hbWUoKVxuICBjb25zdCBpbmRleE5hbWUgPSBnZXRJbmRleE5hbWVCeVNob3J0Q29kZSgpXG5cbiAgaWYgKCF0YWJsZU5hbWUgfHwgIWluZGV4TmFtZSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBkYlF1ZXJ5ID0gbmV3IFF1ZXJ5Q29tbWFuZCh7XG4gICAgVGFibGVOYW1lOiB0YWJsZU5hbWUsXG4gICAgSW5kZXhOYW1lOiBpbmRleE5hbWUsXG4gICAgS2V5Q29uZGl0aW9uRXhwcmVzc2lvbjogJ3Nob3J0Q29kZSA9IDpzaG9ydENvZGUnLFxuICAgIEV4cHJlc3Npb25BdHRyaWJ1dGVWYWx1ZXM6IHtcbiAgICAgICc6c2hvcnRDb2RlJzogaHVtYW5JZGVudGlmaWVyLFxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBnZXREb2NDbGllbnQoKS5zZW5kKGRiUXVlcnkpXG4gIGlmICghcmVzcG9uc2UuSXRlbXM/Lmxlbmd0aCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlLkl0ZW1zWzBdIGFzIFZlaG9UdXJ2b0xvY2F0aW9uTWFwXG59XG5cbi8qKlxuICogR2V0IGZhY2lsaXR5IG1hcHBpbmcgYnkgaHVtYW4gaWRlbnRpZmllciAoZmFjaWxpdHkgY29kZSlcbiAqL1xuZXhwb3J0IGNvbnN0IGdldEZhY2lsaXR5TWFwcGluZ0J5SHVtYW5JZGVudGlmaWVyID0gYXN5bmMgKGlkZW50aWZpZXI6IHN0cmluZyk6IFByb21pc2U8VmVob1R1cnZvTG9jYXRpb25NYXAgfCBudWxsPiA9PiB7XG4gIGlmICh0eXBlb2YgaWRlbnRpZmllciAhPT0gJ3N0cmluZycgfHwgaWRlbnRpZmllciA9PT0gJycpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIGdldEZhY2lsaXR5TWFwcGluZ0J5RmFjaWxpdHlDb2RlKGlkZW50aWZpZXIpXG59XG5cbi8qKlxuICogR2V0IGZhY2lsaXR5IGNvZGUgbWFwcGluZyBmb3IgYSBUdXJ2byBsb2NhdGlvbiBJRFxuICovXG5jb25zdCBnZXRGYWNpbGl0eUNvZGVNYXBwaW5nRm9yVHVydm9Mb2NhdGlvbklkID0gYXN5bmMgKFxuICB0dXJ2b0xvY2F0aW9uSWQ6IG51bWJlclxuKTogUHJvbWlzZTxWZWhvVHVydm9Mb2NhdGlvbk1hcCB8IG51bGw+ID0+IHtcbiAgaWYgKHR5cGVvZiB0dXJ2b0xvY2F0aW9uSWQgIT09ICdudW1iZXInKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IHRhYmxlTmFtZSA9IGdldEZhY2lsaXR5Q29kZU1hcFRhYmxlKClcbiAgY29uc3QgaW5kZXhOYW1lID0gZ2V0SW5kZXhOYW1lQnlUdXJ2b0xvY2F0aW9uSWQoKVxuXG4gIGlmICghdGFibGVOYW1lIHx8ICFpbmRleE5hbWUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgZGJRdWVyeSA9IG5ldyBRdWVyeUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEluZGV4TmFtZTogaW5kZXhOYW1lLFxuICAgIEtleUNvbmRpdGlvbkV4cHJlc3Npb246ICd0dXJ2b0xvY2F0aW9uSWQgPSA6dHVydm9Mb2NhdGlvbklkJyxcbiAgICBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAgICAnOnR1cnZvTG9jYXRpb25JZCc6IHR1cnZvTG9jYXRpb25JZCxcbiAgICB9LFxuICB9KVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RG9jQ2xpZW50KCkuc2VuZChkYlF1ZXJ5KVxuICBpZiAoIXJlc3BvbnNlLkl0ZW1zPy5sZW5ndGggfHwgcmVzcG9uc2UuSXRlbXMubGVuZ3RoICE9PSAxKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gcmVzcG9uc2UuSXRlbXNbMF0gYXMgVmVob1R1cnZvTG9jYXRpb25NYXBcbn1cblxuLyoqXG4gKiBHZXQgc2hvcnQgY29kZSBtYXBwaW5nIGZvciBhIFR1cnZvIGxvY2F0aW9uIElEXG4gKi9cbmNvbnN0IGdldFNob3J0Q29kZU1hcHBpbmdGb3JUdXJ2b0xvY2F0aW9uSWQgPSBhc3luYyAodHVydm9Mb2NhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIHR1cnZvTG9jYXRpb25JZCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgdGFibGVOYW1lID0gZ2V0VGFibGVOYW1lKClcbiAgY29uc3QgaW5kZXhOYW1lID0gZ2V0SW5kZXhOYW1lQnlUdXJ2b0xvY2F0aW9uSWQoKVxuXG4gIGlmICghdGFibGVOYW1lIHx8ICFpbmRleE5hbWUpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgY29uc3QgZGJRdWVyeSA9IG5ldyBRdWVyeUNvbW1hbmQoe1xuICAgIFRhYmxlTmFtZTogdGFibGVOYW1lLFxuICAgIEluZGV4TmFtZTogaW5kZXhOYW1lLFxuICAgIEtleUNvbmRpdGlvbkV4cHJlc3Npb246ICd0dXJ2b0xvY2F0aW9uSWQgPSA6dHVydm9Mb2NhdGlvbklkJyxcbiAgICBFeHByZXNzaW9uQXR0cmlidXRlVmFsdWVzOiB7XG4gICAgICAnOnR1cnZvTG9jYXRpb25JZCc6IHR1cnZvTG9jYXRpb25JZCxcbiAgICB9LFxuICB9KVxuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZ2V0RG9jQ2xpZW50KCkuc2VuZChkYlF1ZXJ5KVxuICBpZiAoIXJlc3BvbnNlLkl0ZW1zPy5sZW5ndGgpIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG4gIHJldHVybiByZXNwb25zZS5JdGVtc1swXSBhcyBWZWhvVHVydm9Mb2NhdGlvbk1hcFxufVxuXG4vKipcbiAqIEdldCBmYWNpbGl0eSBtYXBwaW5nIGJ5IGZhY2lsaXR5IGNvZGVcbiAqL1xuY29uc3QgZ2V0RmFjaWxpdHlNYXBwaW5nQnlGYWNpbGl0eUNvZGUgPSBhc3luYyAoZmFjaWxpdHlDb2RlOiBzdHJpbmcpOiBQcm9taXNlPFZlaG9UdXJ2b0xvY2F0aW9uTWFwIHwgbnVsbD4gPT4ge1xuICBpZiAodHlwZW9mIGZhY2lsaXR5Q29kZSAhPT0gJ3N0cmluZycgfHwgZmFjaWxpdHlDb2RlID09PSAnJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCB0YWJsZU5hbWUgPSBnZXRGYWNpbGl0eUNvZGVNYXBUYWJsZSgpXG4gIGNvbnN0IGluZGV4TmFtZSA9IGdldEluZGV4TmFtZUJ5RmFjaWxpdHlDb2RlKClcblxuICBpZiAoIXRhYmxlTmFtZSB8fCAhaW5kZXhOYW1lKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGRiUXVlcnkgPSBuZXcgUXVlcnlDb21tYW5kKHtcbiAgICBUYWJsZU5hbWU6IHRhYmxlTmFtZSxcbiAgICBJbmRleE5hbWU6IGluZGV4TmFtZSxcbiAgICBLZXlDb25kaXRpb25FeHByZXNzaW9uOiAnZmFjaWxpdHlDb2RlID0gOmZhY2lsaXR5Q29kZScsXG4gICAgRXhwcmVzc2lvbkF0dHJpYnV0ZVZhbHVlczoge1xuICAgICAgJzpmYWNpbGl0eUNvZGUnOiBmYWNpbGl0eUNvZGUsXG4gICAgfSxcbiAgfSlcblxuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGdldERvY0NsaWVudCgpLnNlbmQoZGJRdWVyeSlcbiAgaWYgKCFyZXNwb25zZS5JdGVtcz8ubGVuZ3RoKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuICByZXR1cm4gcmVzcG9uc2UuSXRlbXNbMF0gYXMgVmVob1R1cnZvTG9jYXRpb25NYXBcbn1cbiJdfQ==
|