kwikui
Version:
KwikID's UI Component Library in Angular
188 lines • 38.6 kB
JavaScript
import { EKwikUIButtonApiCallTimerFormat } from "./button-api-call.definitions";
export const paddedTime = (time) => {
return time.toString().padStart(2, "0");
};
export const getTimerMessage = (messageWithTimerPlaceholder = "{{time}}", format = EKwikUIButtonApiCallTimerFormat.ss, time) => {
const formattedTime = getFormattedTimeDuration(Number(time), format);
return messageWithTimerPlaceholder.replace("{{time}}", formattedTime);
};
export const getFormattedTimeDuration = (value, format) => {
let years;
let months;
let weeks;
let days;
let hours;
let minutes;
let seconds;
switch (format) {
case EKwikUIButtonApiCallTimerFormat.ss:
return `${value}`;
case EKwikUIButtonApiCallTimerFormat.SS:
return `${value} Seconds`;
case EKwikUIButtonApiCallTimerFormat.mm:
minutes = Math.floor(value / 60);
return `${minutes}`;
case EKwikUIButtonApiCallTimerFormat.MM:
minutes = Math.floor(value / 60);
return `${minutes} Minutes`;
case EKwikUIButtonApiCallTimerFormat.mm_ss:
minutes = Math.floor(value / 60);
seconds = value % 60;
return `${paddedTime(minutes)}:${paddedTime(seconds)}`;
case EKwikUIButtonApiCallTimerFormat.MM_SS:
minutes = Math.floor(value / 60);
seconds = value % 60;
return `${minutes} Minutes and ${seconds} Seconds`;
case EKwikUIButtonApiCallTimerFormat.hh:
hours = Math.floor(value / 3600);
return `${hours}`;
case EKwikUIButtonApiCallTimerFormat.hh_mm:
hours = Math.floor(value / 3600);
minutes = Math.floor((value % 3600) / 60);
return `${paddedTime(hours)}:${paddedTime(minutes)}`;
case EKwikUIButtonApiCallTimerFormat.hh_mm_ss:
hours = Math.floor(value / 3600);
minutes = Math.floor((value % 3600) / 60);
seconds = value % 60;
return `${paddedTime(hours)}:${paddedTime(minutes)}:${paddedTime(seconds)}`;
case EKwikUIButtonApiCallTimerFormat.HH:
hours = Math.floor(value / 3600);
return `${hours} Hours`;
case EKwikUIButtonApiCallTimerFormat.HH_MM:
hours = Math.floor(value / 3600);
minutes = Math.floor((value % 3600) / 60);
return `${hours} Hours and ${minutes} Minutes`;
case EKwikUIButtonApiCallTimerFormat.HH_MM_SS:
hours = Math.floor(value / 3600);
minutes = Math.floor((value % 3600) / 60);
seconds = value % 60;
return `${hours} Hours, ${minutes} Minutes and ${seconds} Seconds`;
case EKwikUIButtonApiCallTimerFormat.DAYS:
days = Math.floor(value / 86400);
return `${days} Days`;
case EKwikUIButtonApiCallTimerFormat.DAYS_HH:
days = Math.floor(value / 86400);
hours = Math.floor((value % 86400) / 3600);
return `${days} Days and ${hours} Hours`;
case EKwikUIButtonApiCallTimerFormat.DAYS_HH_MM:
days = Math.floor(value / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
return `${days} Days, ${hours} Hours and ${minutes} Minutes`;
case EKwikUIButtonApiCallTimerFormat.DAYS_HH_MM_SS:
days = Math.floor(value / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
seconds = value % 60;
return `${days} Days, ${hours} Hours, ${minutes} Minutes and ${seconds} Seconds`;
case EKwikUIButtonApiCallTimerFormat.WEEKS:
weeks = Math.floor(value / 604800);
return `${weeks} Weeks`;
case EKwikUIButtonApiCallTimerFormat.WEEKS_DAYS:
weeks = Math.floor(value / 604800);
days = Math.floor((value % 604800) / 86400);
return `${weeks} Weeks and ${days} Days`;
case EKwikUIButtonApiCallTimerFormat.WEEKS_DAYS_HH:
weeks = Math.floor(value / 604800);
days = Math.floor((value % 604800) / 86400);
hours = Math.floor((value % 86400) / 3600);
return `${weeks} Weeks, ${days} Days and ${hours} Hours`;
case EKwikUIButtonApiCallTimerFormat.WEEKS_DAYS_HH_MM:
weeks = Math.floor(value / 604800);
days = Math.floor((value % 604800) / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
return `${weeks} Weeks, ${days} Days, ${hours} Hours and ${minutes} Minutes`;
case EKwikUIButtonApiCallTimerFormat.MONTHS:
months = Math.floor(value / (86400 * 30.44));
return `${months} Months`;
case EKwikUIButtonApiCallTimerFormat.MONTHS_DAYS:
months = Math.floor(value / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
return `${months} Months and ${days} Days`;
case EKwikUIButtonApiCallTimerFormat.MONTHS_DAYS_HH:
months = Math.floor(value / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
hours = Math.floor((value % 86400) / 3600);
return `${months} Months, ${days} Days and ${hours} Hours`;
case EKwikUIButtonApiCallTimerFormat.MONTHS_DAYS_HH_MM:
months = Math.floor(value / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
return `${months} Months, ${days} Days, ${hours} Hours and ${minutes} Minutes`;
case EKwikUIButtonApiCallTimerFormat.MONTHS_DAYS_HH_MM_SS:
months = Math.floor(value / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
seconds = value % 60;
return `${months} Months, ${days} Days, ${hours} Hours, ${minutes} Minutes and ${seconds} Seconds`;
case EKwikUIButtonApiCallTimerFormat.YEARS:
years = Math.floor(value / (86400 * 365.25));
return `${years} Years`;
case EKwikUIButtonApiCallTimerFormat.YEARS_WEEKS:
years = Math.floor(value / (86400 * 365.25));
weeks = Math.floor((value % (86400 * 365.25)) / 604800);
return `${years} Years and ${weeks} Weeks`;
case EKwikUIButtonApiCallTimerFormat.YEARS_WEEKS_DAYS:
years = Math.floor(value / (86400 * 365.25));
weeks = Math.floor((value % (86400 * 365.25)) / 604800);
days = Math.floor((value % 604800) / 86400);
return `${years} Years, ${weeks} Weeks and ${days} Days`;
case EKwikUIButtonApiCallTimerFormat.YEARS_WEEKS_DAYS_HH:
years = Math.floor(value / (86400 * 365.25));
weeks = Math.floor((value % (86400 * 365.25)) / 604800);
days = Math.floor((value % 604800) / 86400);
hours = Math.floor((value % 86400) / 3600);
return `${years} Years, ${weeks} Weeks, ${days} Days and ${hours} Hours`;
case EKwikUIButtonApiCallTimerFormat.YEARS_WEEKS_DAYS_HH_MM:
years = Math.floor(value / (86400 * 365.25));
weeks = Math.floor((value % (86400 * 365.25)) / 604800);
days = Math.floor((value % 604800) / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
return `${years} Years, ${weeks} Weeks, ${days} Days, ${hours} Hours and ${minutes} Minutes`;
case EKwikUIButtonApiCallTimerFormat.YEARS_WEEKS_DAYS_HH_MM_SS:
years = Math.floor(value / (86400 * 365.25));
weeks = Math.floor((value % (86400 * 365.25)) / 604800);
days = Math.floor((value % 604800) / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
seconds = value % 60;
return `${years} Years, ${weeks} Weeks, ${days} Days, ${hours} Hours, ${minutes} Minutes and ${seconds} Seconds`;
case EKwikUIButtonApiCallTimerFormat.YEARS_MONTHS:
years = Math.floor(value / (86400 * 365.25));
months = Math.floor((value % (86400 * 365.25)) / (86400 * 30.44));
return `${years} Years and ${months} Months`;
case EKwikUIButtonApiCallTimerFormat.YEARS_MONTHS_DAYS:
years = Math.floor(value / (86400 * 365.25));
months = Math.floor((value % (86400 * 365.25)) / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
return `${years} Years, ${months} Months and ${days} Days`;
case EKwikUIButtonApiCallTimerFormat.YEARS_MONTHS_DAYS_HH:
years = Math.floor(value / (86400 * 365.25));
months = Math.floor((value % (86400 * 365.25)) / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
hours = Math.floor((value % 86400) / 3600);
return `${years} Years, ${months} Months, ${days} Days and ${hours} Hours`;
case EKwikUIButtonApiCallTimerFormat.YEARS_MONTHS_DAYS_HH_MM:
years = Math.floor(value / (86400 * 365.25));
months = Math.floor((value % (86400 * 365.25)) / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
return `${years} Years, ${months} Months, ${days} Days, ${hours} Hours and ${minutes} Minutes`;
case EKwikUIButtonApiCallTimerFormat.YEARS_MONTHS_DAYS_HH_MM_SS:
years = Math.floor(value / (86400 * 365.25));
months = Math.floor((value % (86400 * 365.25)) / (86400 * 30.44));
days = Math.floor((value % (86400 * 30.44)) / 86400);
hours = Math.floor((value % 86400) / 3600);
minutes = Math.floor((value % 3600) / 60);
seconds = value % 60;
return `${years} Years, ${months} Months, ${days} Days, ${hours} Hours, ${minutes} Minutes and ${seconds} Seconds`;
default:
return `${value}`;
}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWFwaS1jYWxsLmhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2t3aWt1aS9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tL2J1dHRvbi1hcGktY2FsbC9idXR0b24tYXBpLWNhbGwuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCwrQkFBK0IsRUFFaEMsTUFBTSwrQkFBK0IsQ0FBQztBQUV2QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUN6QyxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQzFDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxDQUM3QiwyQkFBMkIsR0FBRyxVQUFVLEVBQ3hDLE1BQU0sR0FBRywrQkFBK0IsQ0FBQyxFQUFFLEVBQzNDLElBQUksRUFDSixFQUFFO0lBQ0YsTUFBTSxhQUFhLEdBQUcsd0JBQXdCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLE9BQU8sMkJBQTJCLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUN4RSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUN0QyxLQUFhLEVBQ2IsTUFBdUMsRUFDL0IsRUFBRTtJQUNWLElBQUksS0FBSyxDQUFDO0lBQ1YsSUFBSSxNQUFNLENBQUM7SUFDWCxJQUFJLEtBQUssQ0FBQztJQUNWLElBQUksSUFBSSxDQUFDO0lBQ1QsSUFBSSxLQUFLLENBQUM7SUFDVixJQUFJLE9BQU8sQ0FBQztJQUNaLElBQUksT0FBTyxDQUFDO0lBRVosUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLCtCQUErQixDQUFDLEVBQUU7WUFDckMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBRXBCLEtBQUssK0JBQStCLENBQUMsRUFBRTtZQUNyQyxPQUFPLEdBQUcsS0FBSyxVQUFVLENBQUM7UUFFNUIsS0FBSywrQkFBK0IsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNqQyxPQUFPLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFFdEIsS0FBSywrQkFBK0IsQ0FBQyxFQUFFO1lBQ3JDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNqQyxPQUFPLEdBQUcsT0FBTyxVQUFVLENBQUM7UUFFOUIsS0FBSywrQkFBK0IsQ0FBQyxLQUFLO1lBQ3hDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNqQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQixPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBRXpELEtBQUssK0JBQStCLENBQUMsS0FBSztZQUN4QyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDakMsT0FBTyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDckIsT0FBTyxHQUFHLE9BQU8sZ0JBQWdCLE9BQU8sVUFBVSxDQUFDO1FBRXJELEtBQUssK0JBQStCLENBQUMsRUFBRTtZQUNyQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDakMsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBRXBCLEtBQUssK0JBQStCLENBQUMsS0FBSztZQUN4QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUV2RCxLQUFLLCtCQUErQixDQUFDLFFBQVE7WUFDM0MsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLFVBQVUsQ0FDOUQsT0FBTyxDQUNSLEVBQUUsQ0FBQztRQUVOLEtBQUssK0JBQStCLENBQUMsRUFBRTtZQUNyQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDakMsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO1FBRTFCLEtBQUssK0JBQStCLENBQUMsS0FBSztZQUN4QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDakMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxHQUFHLEtBQUssY0FBYyxPQUFPLFVBQVUsQ0FBQztRQUVqRCxLQUFLLCtCQUErQixDQUFDLFFBQVE7WUFDM0MsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxLQUFLLFdBQVcsT0FBTyxnQkFBZ0IsT0FBTyxVQUFVLENBQUM7UUFFckUsS0FBSywrQkFBK0IsQ0FBQyxJQUFJO1lBQ3ZDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNqQyxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUM7UUFFeEIsS0FBSywrQkFBK0IsQ0FBQyxPQUFPO1lBQzFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNqQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxhQUFhLEtBQUssUUFBUSxDQUFDO1FBRTNDLEtBQUssK0JBQStCLENBQUMsVUFBVTtZQUM3QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDakMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDM0MsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxHQUFHLElBQUksVUFBVSxLQUFLLGNBQWMsT0FBTyxVQUFVLENBQUM7UUFFL0QsS0FBSywrQkFBK0IsQ0FBQyxhQUFhO1lBQ2hELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNqQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMxQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQixPQUFPLEdBQUcsSUFBSSxVQUFVLEtBQUssV0FBVyxPQUFPLGdCQUFnQixPQUFPLFVBQVUsQ0FBQztRQUVuRixLQUFLLCtCQUErQixDQUFDLEtBQUs7WUFDeEMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQztRQUUxQixLQUFLLCtCQUErQixDQUFDLFVBQVU7WUFDN0MsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzVDLE9BQU8sR0FBRyxLQUFLLGNBQWMsSUFBSSxPQUFPLENBQUM7UUFFM0MsS0FBSywrQkFBK0IsQ0FBQyxhQUFhO1lBQ2hELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQztZQUNuQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsS0FBSyxXQUFXLElBQUksYUFBYSxLQUFLLFFBQVEsQ0FBQztRQUUzRCxLQUFLLCtCQUErQixDQUFDLGdCQUFnQjtZQUNuRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUM7WUFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDNUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDM0MsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxHQUFHLEtBQUssV0FBVyxJQUFJLFVBQVUsS0FBSyxjQUFjLE9BQU8sVUFBVSxDQUFDO1FBRS9FLEtBQUssK0JBQStCLENBQUMsTUFBTTtZQUN6QyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM3QyxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUM7UUFFNUIsS0FBSywrQkFBK0IsQ0FBQyxXQUFXO1lBQzlDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzdDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDckQsT0FBTyxHQUFHLE1BQU0sZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUU3QyxLQUFLLCtCQUErQixDQUFDLGNBQWM7WUFDakQsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDN0MsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNyRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsTUFBTSxZQUFZLElBQUksYUFBYSxLQUFLLFFBQVEsQ0FBQztRQUU3RCxLQUFLLCtCQUErQixDQUFDLGlCQUFpQjtZQUNwRCxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3JELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sR0FBRyxNQUFNLFlBQVksSUFBSSxVQUFVLEtBQUssY0FBYyxPQUFPLFVBQVUsQ0FBQztRQUVqRixLQUFLLCtCQUErQixDQUFDLG9CQUFvQjtZQUN2RCxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQ3JELEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sR0FBRyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxNQUFNLFlBQVksSUFBSSxVQUFVLEtBQUssV0FBVyxPQUFPLGdCQUFnQixPQUFPLFVBQVUsQ0FBQztRQUVyRyxLQUFLLCtCQUErQixDQUFDLEtBQUs7WUFDeEMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0MsT0FBTyxHQUFHLEtBQUssUUFBUSxDQUFDO1FBRTFCLEtBQUssK0JBQStCLENBQUMsV0FBVztZQUM5QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELE9BQU8sR0FBRyxLQUFLLGNBQWMsS0FBSyxRQUFRLENBQUM7UUFFN0MsS0FBSywrQkFBK0IsQ0FBQyxnQkFBZ0I7WUFDbkQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0MsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUN4RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1QyxPQUFPLEdBQUcsS0FBSyxXQUFXLEtBQUssY0FBYyxJQUFJLE9BQU8sQ0FBQztRQUUzRCxLQUFLLCtCQUErQixDQUFDLG1CQUFtQjtZQUN0RCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzVDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzNDLE9BQU8sR0FBRyxLQUFLLFdBQVcsS0FBSyxXQUFXLElBQUksYUFBYSxLQUFLLFFBQVEsQ0FBQztRQUUzRSxLQUFLLCtCQUErQixDQUFDLHNCQUFzQjtZQUN6RCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDO1lBQ3hELElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1lBQzVDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1lBQzNDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQzFDLE9BQU8sR0FBRyxLQUFLLFdBQVcsS0FBSyxXQUFXLElBQUksVUFBVSxLQUFLLGNBQWMsT0FBTyxVQUFVLENBQUM7UUFFL0YsS0FBSywrQkFBK0IsQ0FBQyx5QkFBeUI7WUFDNUQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0MsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQztZQUN4RCxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUM1QyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMxQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQixPQUFPLEdBQUcsS0FBSyxXQUFXLEtBQUssV0FBVyxJQUFJLFVBQVUsS0FBSyxXQUFXLE9BQU8sZ0JBQWdCLE9BQU8sVUFBVSxDQUFDO1FBRW5ILEtBQUssK0JBQStCLENBQUMsWUFBWTtZQUMvQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsT0FBTyxHQUFHLEtBQUssY0FBYyxNQUFNLFNBQVMsQ0FBQztRQUUvQyxLQUFLLCtCQUErQixDQUFDLGlCQUFpQjtZQUNwRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNyRCxPQUFPLEdBQUcsS0FBSyxXQUFXLE1BQU0sZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUU3RCxLQUFLLCtCQUErQixDQUFDLG9CQUFvQjtZQUN2RCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNyRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsS0FBSyxXQUFXLE1BQU0sWUFBWSxJQUFJLGFBQWEsS0FBSyxRQUFRLENBQUM7UUFFN0UsS0FBSywrQkFBK0IsQ0FBQyx1QkFBdUI7WUFDMUQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0MsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7WUFDckQsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDM0MsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDMUMsT0FBTyxHQUFHLEtBQUssV0FBVyxNQUFNLFlBQVksSUFBSSxVQUFVLEtBQUssY0FBYyxPQUFPLFVBQVUsQ0FBQztRQUVqRyxLQUFLLCtCQUErQixDQUFDLDBCQUEwQjtZQUM3RCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUM3QyxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDbEUsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUNyRCxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUMzQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUMxQyxPQUFPLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNyQixPQUFPLEdBQUcsS0FBSyxXQUFXLE1BQU0sWUFBWSxJQUFJLFVBQVUsS0FBSyxXQUFXLE9BQU8sZ0JBQWdCLE9BQU8sVUFBVSxDQUFDO1FBRXJIO1lBQ0UsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO0tBQ3JCO0FBQ0gsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdCxcbiAgVEt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdFxufSBmcm9tIFwiLi9idXR0b24tYXBpLWNhbGwuZGVmaW5pdGlvbnNcIjtcblxuZXhwb3J0IGNvbnN0IHBhZGRlZFRpbWUgPSAodGltZTogbnVtYmVyKSA9PiB7XG4gIHJldHVybiB0aW1lLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgXCIwXCIpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFRpbWVyTWVzc2FnZSA9IChcbiAgbWVzc2FnZVdpdGhUaW1lclBsYWNlaG9sZGVyID0gXCJ7e3RpbWV9fVwiLFxuICBmb3JtYXQgPSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LnNzLFxuICB0aW1lXG4pID0+IHtcbiAgY29uc3QgZm9ybWF0dGVkVGltZSA9IGdldEZvcm1hdHRlZFRpbWVEdXJhdGlvbihOdW1iZXIodGltZSksIGZvcm1hdCk7XG4gIHJldHVybiBtZXNzYWdlV2l0aFRpbWVyUGxhY2Vob2xkZXIucmVwbGFjZShcInt7dGltZX19XCIsIGZvcm1hdHRlZFRpbWUpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZvcm1hdHRlZFRpbWVEdXJhdGlvbiA9IChcbiAgdmFsdWU6IG51bWJlcixcbiAgZm9ybWF0OiBUS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0XG4pOiBzdHJpbmcgPT4ge1xuICBsZXQgeWVhcnM7XG4gIGxldCBtb250aHM7XG4gIGxldCB3ZWVrcztcbiAgbGV0IGRheXM7XG4gIGxldCBob3VycztcbiAgbGV0IG1pbnV0ZXM7XG4gIGxldCBzZWNvbmRzO1xuXG4gIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LnNzOlxuICAgICAgcmV0dXJuIGAke3ZhbHVlfWA7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuU1M6XG4gICAgICByZXR1cm4gYCR7dmFsdWV9IFNlY29uZHNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0Lm1tOlxuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IodmFsdWUgLyA2MCk7XG4gICAgICByZXR1cm4gYCR7bWludXRlc31gO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0Lk1NOlxuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IodmFsdWUgLyA2MCk7XG4gICAgICByZXR1cm4gYCR7bWludXRlc30gTWludXRlc2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQubW1fc3M6XG4gICAgICBtaW51dGVzID0gTWF0aC5mbG9vcih2YWx1ZSAvIDYwKTtcbiAgICAgIHNlY29uZHMgPSB2YWx1ZSAlIDYwO1xuICAgICAgcmV0dXJuIGAke3BhZGRlZFRpbWUobWludXRlcyl9OiR7cGFkZGVkVGltZShzZWNvbmRzKX1gO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0Lk1NX1NTOlxuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IodmFsdWUgLyA2MCk7XG4gICAgICBzZWNvbmRzID0gdmFsdWUgJSA2MDtcbiAgICAgIHJldHVybiBgJHttaW51dGVzfSBNaW51dGVzIGFuZCAke3NlY29uZHN9IFNlY29uZHNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LmhoOlxuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gMzYwMCk7XG4gICAgICByZXR1cm4gYCR7aG91cnN9YDtcblxuICAgIGNhc2UgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdC5oaF9tbTpcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcih2YWx1ZSAvIDM2MDApO1xuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IoKHZhbHVlICUgMzYwMCkgLyA2MCk7XG4gICAgICByZXR1cm4gYCR7cGFkZGVkVGltZShob3Vycyl9OiR7cGFkZGVkVGltZShtaW51dGVzKX1gO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LmhoX21tX3NzOlxuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gMzYwMCk7XG4gICAgICBtaW51dGVzID0gTWF0aC5mbG9vcigodmFsdWUgJSAzNjAwKSAvIDYwKTtcbiAgICAgIHNlY29uZHMgPSB2YWx1ZSAlIDYwO1xuICAgICAgcmV0dXJuIGAke3BhZGRlZFRpbWUoaG91cnMpfToke3BhZGRlZFRpbWUobWludXRlcyl9OiR7cGFkZGVkVGltZShcbiAgICAgICAgc2Vjb25kc1xuICAgICAgKX1gO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LkhIOlxuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gMzYwMCk7XG4gICAgICByZXR1cm4gYCR7aG91cnN9IEhvdXJzYDtcblxuICAgIGNhc2UgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdC5ISF9NTTpcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcih2YWx1ZSAvIDM2MDApO1xuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IoKHZhbHVlICUgMzYwMCkgLyA2MCk7XG4gICAgICByZXR1cm4gYCR7aG91cnN9IEhvdXJzIGFuZCAke21pbnV0ZXN9IE1pbnV0ZXNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LkhIX01NX1NTOlxuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gMzYwMCk7XG4gICAgICBtaW51dGVzID0gTWF0aC5mbG9vcigodmFsdWUgJSAzNjAwKSAvIDYwKTtcbiAgICAgIHNlY29uZHMgPSB2YWx1ZSAlIDYwO1xuICAgICAgcmV0dXJuIGAke2hvdXJzfSBIb3VycywgJHttaW51dGVzfSBNaW51dGVzIGFuZCAke3NlY29uZHN9IFNlY29uZHNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LkRBWVM6XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcih2YWx1ZSAvIDg2NDAwKTtcbiAgICAgIHJldHVybiBgJHtkYXlzfSBEYXlzYDtcblxuICAgIGNhc2UgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdC5EQVlTX0hIOlxuICAgICAgZGF5cyA9IE1hdGguZmxvb3IodmFsdWUgLyA4NjQwMCk7XG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKHZhbHVlICUgODY0MDApIC8gMzYwMCk7XG4gICAgICByZXR1cm4gYCR7ZGF5c30gRGF5cyBhbmQgJHtob3Vyc30gSG91cnNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LkRBWVNfSEhfTU06XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcih2YWx1ZSAvIDg2NDAwKTtcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcigodmFsdWUgJSA4NjQwMCkgLyAzNjAwKTtcbiAgICAgIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDM2MDApIC8gNjApO1xuICAgICAgcmV0dXJuIGAke2RheXN9IERheXMsICR7aG91cnN9IEhvdXJzIGFuZCAke21pbnV0ZXN9IE1pbnV0ZXNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LkRBWVNfSEhfTU1fU1M6XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcih2YWx1ZSAvIDg2NDAwKTtcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcigodmFsdWUgJSA4NjQwMCkgLyAzNjAwKTtcbiAgICAgIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDM2MDApIC8gNjApO1xuICAgICAgc2Vjb25kcyA9IHZhbHVlICUgNjA7XG4gICAgICByZXR1cm4gYCR7ZGF5c30gRGF5cywgJHtob3Vyc30gSG91cnMsICR7bWludXRlc30gTWludXRlcyBhbmQgJHtzZWNvbmRzfSBTZWNvbmRzYDtcblxuICAgIGNhc2UgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdC5XRUVLUzpcbiAgICAgIHdlZWtzID0gTWF0aC5mbG9vcih2YWx1ZSAvIDYwNDgwMCk7XG4gICAgICByZXR1cm4gYCR7d2Vla3N9IFdlZWtzYDtcblxuICAgIGNhc2UgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdC5XRUVLU19EQVlTOlxuICAgICAgd2Vla3MgPSBNYXRoLmZsb29yKHZhbHVlIC8gNjA0ODAwKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDYwNDgwMCkgLyA4NjQwMCk7XG4gICAgICByZXR1cm4gYCR7d2Vla3N9IFdlZWtzIGFuZCAke2RheXN9IERheXNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LldFRUtTX0RBWVNfSEg6XG4gICAgICB3ZWVrcyA9IE1hdGguZmxvb3IodmFsdWUgLyA2MDQ4MDApO1xuICAgICAgZGF5cyA9IE1hdGguZmxvb3IoKHZhbHVlICUgNjA0ODAwKSAvIDg2NDAwKTtcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcigodmFsdWUgJSA4NjQwMCkgLyAzNjAwKTtcbiAgICAgIHJldHVybiBgJHt3ZWVrc30gV2Vla3MsICR7ZGF5c30gRGF5cyBhbmQgJHtob3Vyc30gSG91cnNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LldFRUtTX0RBWVNfSEhfTU06XG4gICAgICB3ZWVrcyA9IE1hdGguZmxvb3IodmFsdWUgLyA2MDQ4MDApO1xuICAgICAgZGF5cyA9IE1hdGguZmxvb3IoKHZhbHVlICUgNjA0ODAwKSAvIDg2NDAwKTtcbiAgICAgIGhvdXJzID0gTWF0aC5mbG9vcigodmFsdWUgJSA4NjQwMCkgLyAzNjAwKTtcbiAgICAgIG1pbnV0ZXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDM2MDApIC8gNjApO1xuICAgICAgcmV0dXJuIGAke3dlZWtzfSBXZWVrcywgJHtkYXlzfSBEYXlzLCAke2hvdXJzfSBIb3VycyBhbmQgJHttaW51dGVzfSBNaW51dGVzYDtcblxuICAgIGNhc2UgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdC5NT05USFM6XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIHJldHVybiBgJHttb250aHN9IE1vbnRoc2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuTU9OVEhTX0RBWVM6XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDMwLjQ0KSkgLyA4NjQwMCk7XG4gICAgICByZXR1cm4gYCR7bW9udGhzfSBNb250aHMgYW5kICR7ZGF5c30gRGF5c2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuTU9OVEhTX0RBWVNfSEg6XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDMwLjQ0KSkgLyA4NjQwMCk7XG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKHZhbHVlICUgODY0MDApIC8gMzYwMCk7XG4gICAgICByZXR1cm4gYCR7bW9udGhzfSBNb250aHMsICR7ZGF5c30gRGF5cyBhbmQgJHtob3Vyc30gSG91cnNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0Lk1PTlRIU19EQVlTX0hIX01NOlxuICAgICAgbW9udGhzID0gTWF0aC5mbG9vcih2YWx1ZSAvICg4NjQwMCAqIDMwLjQ0KSk7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigodmFsdWUgJSAoODY0MDAgKiAzMC40NCkpIC8gODY0MDApO1xuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDg2NDAwKSAvIDM2MDApO1xuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IoKHZhbHVlICUgMzYwMCkgLyA2MCk7XG4gICAgICByZXR1cm4gYCR7bW9udGhzfSBNb250aHMsICR7ZGF5c30gRGF5cywgJHtob3Vyc30gSG91cnMgYW5kICR7bWludXRlc30gTWludXRlc2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuTU9OVEhTX0RBWVNfSEhfTU1fU1M6XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDMwLjQ0KSkgLyA4NjQwMCk7XG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKHZhbHVlICUgODY0MDApIC8gMzYwMCk7XG4gICAgICBtaW51dGVzID0gTWF0aC5mbG9vcigodmFsdWUgJSAzNjAwKSAvIDYwKTtcbiAgICAgIHNlY29uZHMgPSB2YWx1ZSAlIDYwO1xuICAgICAgcmV0dXJuIGAke21vbnRoc30gTW9udGhzLCAke2RheXN9IERheXMsICR7aG91cnN9IEhvdXJzLCAke21pbnV0ZXN9IE1pbnV0ZXMgYW5kICR7c2Vjb25kc30gU2Vjb25kc2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuWUVBUlM6XG4gICAgICB5ZWFycyA9IE1hdGguZmxvb3IodmFsdWUgLyAoODY0MDAgKiAzNjUuMjUpKTtcbiAgICAgIHJldHVybiBgJHt5ZWFyc30gWWVhcnNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LllFQVJTX1dFRUtTOlxuICAgICAgeWVhcnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzY1LjI1KSk7XG4gICAgICB3ZWVrcyA9IE1hdGguZmxvb3IoKHZhbHVlICUgKDg2NDAwICogMzY1LjI1KSkgLyA2MDQ4MDApO1xuICAgICAgcmV0dXJuIGAke3llYXJzfSBZZWFycyBhbmQgJHt3ZWVrc30gV2Vla3NgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LllFQVJTX1dFRUtTX0RBWVM6XG4gICAgICB5ZWFycyA9IE1hdGguZmxvb3IodmFsdWUgLyAoODY0MDAgKiAzNjUuMjUpKTtcbiAgICAgIHdlZWtzID0gTWF0aC5mbG9vcigodmFsdWUgJSAoODY0MDAgKiAzNjUuMjUpKSAvIDYwNDgwMCk7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigodmFsdWUgJSA2MDQ4MDApIC8gODY0MDApO1xuICAgICAgcmV0dXJuIGAke3llYXJzfSBZZWFycywgJHt3ZWVrc30gV2Vla3MgYW5kICR7ZGF5c30gRGF5c2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuWUVBUlNfV0VFS1NfREFZU19ISDpcbiAgICAgIHllYXJzID0gTWF0aC5mbG9vcih2YWx1ZSAvICg4NjQwMCAqIDM2NS4yNSkpO1xuICAgICAgd2Vla3MgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDM2NS4yNSkpIC8gNjA0ODAwKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDYwNDgwMCkgLyA4NjQwMCk7XG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKHZhbHVlICUgODY0MDApIC8gMzYwMCk7XG4gICAgICByZXR1cm4gYCR7eWVhcnN9IFllYXJzLCAke3dlZWtzfSBXZWVrcywgJHtkYXlzfSBEYXlzIGFuZCAke2hvdXJzfSBIb3Vyc2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuWUVBUlNfV0VFS1NfREFZU19ISF9NTTpcbiAgICAgIHllYXJzID0gTWF0aC5mbG9vcih2YWx1ZSAvICg4NjQwMCAqIDM2NS4yNSkpO1xuICAgICAgd2Vla3MgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDM2NS4yNSkpIC8gNjA0ODAwKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDYwNDgwMCkgLyA4NjQwMCk7XG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKHZhbHVlICUgODY0MDApIC8gMzYwMCk7XG4gICAgICBtaW51dGVzID0gTWF0aC5mbG9vcigodmFsdWUgJSAzNjAwKSAvIDYwKTtcbiAgICAgIHJldHVybiBgJHt5ZWFyc30gWWVhcnMsICR7d2Vla3N9IFdlZWtzLCAke2RheXN9IERheXMsICR7aG91cnN9IEhvdXJzIGFuZCAke21pbnV0ZXN9IE1pbnV0ZXNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LllFQVJTX1dFRUtTX0RBWVNfSEhfTU1fU1M6XG4gICAgICB5ZWFycyA9IE1hdGguZmxvb3IodmFsdWUgLyAoODY0MDAgKiAzNjUuMjUpKTtcbiAgICAgIHdlZWtzID0gTWF0aC5mbG9vcigodmFsdWUgJSAoODY0MDAgKiAzNjUuMjUpKSAvIDYwNDgwMCk7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigodmFsdWUgJSA2MDQ4MDApIC8gODY0MDApO1xuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDg2NDAwKSAvIDM2MDApO1xuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IoKHZhbHVlICUgMzYwMCkgLyA2MCk7XG4gICAgICBzZWNvbmRzID0gdmFsdWUgJSA2MDtcbiAgICAgIHJldHVybiBgJHt5ZWFyc30gWWVhcnMsICR7d2Vla3N9IFdlZWtzLCAke2RheXN9IERheXMsICR7aG91cnN9IEhvdXJzLCAke21pbnV0ZXN9IE1pbnV0ZXMgYW5kICR7c2Vjb25kc30gU2Vjb25kc2A7XG5cbiAgICBjYXNlIEVLd2lrVUlCdXR0b25BcGlDYWxsVGltZXJGb3JtYXQuWUVBUlNfTU9OVEhTOlxuICAgICAgeWVhcnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzY1LjI1KSk7XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDM2NS4yNSkpIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIHJldHVybiBgJHt5ZWFyc30gWWVhcnMgYW5kICR7bW9udGhzfSBNb250aHNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LllFQVJTX01PTlRIU19EQVlTOlxuICAgICAgeWVhcnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzY1LjI1KSk7XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDM2NS4yNSkpIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDMwLjQ0KSkgLyA4NjQwMCk7XG4gICAgICByZXR1cm4gYCR7eWVhcnN9IFllYXJzLCAke21vbnRoc30gTW9udGhzIGFuZCAke2RheXN9IERheXNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LllFQVJTX01PTlRIU19EQVlTX0hIOlxuICAgICAgeWVhcnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzY1LjI1KSk7XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDM2NS4yNSkpIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDMwLjQ0KSkgLyA4NjQwMCk7XG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKHZhbHVlICUgODY0MDApIC8gMzYwMCk7XG4gICAgICByZXR1cm4gYCR7eWVhcnN9IFllYXJzLCAke21vbnRoc30gTW9udGhzLCAke2RheXN9IERheXMgYW5kICR7aG91cnN9IEhvdXJzYDtcblxuICAgIGNhc2UgRUt3aWtVSUJ1dHRvbkFwaUNhbGxUaW1lckZvcm1hdC5ZRUFSU19NT05USFNfREFZU19ISF9NTTpcbiAgICAgIHllYXJzID0gTWF0aC5mbG9vcih2YWx1ZSAvICg4NjQwMCAqIDM2NS4yNSkpO1xuICAgICAgbW9udGhzID0gTWF0aC5mbG9vcigodmFsdWUgJSAoODY0MDAgKiAzNjUuMjUpKSAvICg4NjQwMCAqIDMwLjQ0KSk7XG4gICAgICBkYXlzID0gTWF0aC5mbG9vcigodmFsdWUgJSAoODY0MDAgKiAzMC40NCkpIC8gODY0MDApO1xuICAgICAgaG91cnMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlIDg2NDAwKSAvIDM2MDApO1xuICAgICAgbWludXRlcyA9IE1hdGguZmxvb3IoKHZhbHVlICUgMzYwMCkgLyA2MCk7XG4gICAgICByZXR1cm4gYCR7eWVhcnN9IFllYXJzLCAke21vbnRoc30gTW9udGhzLCAke2RheXN9IERheXMsICR7aG91cnN9IEhvdXJzIGFuZCAke21pbnV0ZXN9IE1pbnV0ZXNgO1xuXG4gICAgY2FzZSBFS3dpa1VJQnV0dG9uQXBpQ2FsbFRpbWVyRm9ybWF0LllFQVJTX01PTlRIU19EQVlTX0hIX01NX1NTOlxuICAgICAgeWVhcnMgPSBNYXRoLmZsb29yKHZhbHVlIC8gKDg2NDAwICogMzY1LjI1KSk7XG4gICAgICBtb250aHMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDM2NS4yNSkpIC8gKDg2NDAwICogMzAuNDQpKTtcbiAgICAgIGRheXMgPSBNYXRoLmZsb29yKCh2YWx1ZSAlICg4NjQwMCAqIDMwLjQ0KSkgLyA4NjQwMCk7XG4gICAgICBob3VycyA9IE1hdGguZmxvb3IoKHZhbHVlICUgODY0MDApIC8gMzYwMCk7XG4gICAgICBtaW51dGVzID0gTWF0aC5mbG9vcigodmFsdWUgJSAzNjAwKSAvIDYwKTtcbiAgICAgIHNlY29uZHMgPSB2YWx1ZSAlIDYwO1xuICAgICAgcmV0dXJuIGAke3llYXJzfSBZZWFycywgJHttb250aHN9IE1vbnRocywgJHtkYXlzfSBEYXlzLCAke2hvdXJzfSBIb3VycywgJHttaW51dGVzfSBNaW51dGVzIGFuZCAke3NlY29uZHN9IFNlY29uZHNgO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBgJHt2YWx1ZX1gO1xuICB9XG59O1xuIl19