UNPKG

ng-devui

Version:

DevUI components based on Angular

321 lines 29.4 kB
const monthsOfYear = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ]; export default { locale: 'en-us', common: { searchPlaceholder: 'Enter a keyword.', noData: 'No data available.', noRecordsFound: 'No records found.', btnConfirm: 'Confirm', loading: 'Loading...', checkAll: 'All', btnOk: 'OK', btnCancel: 'Cancel', btnClose: 'Close', reset: 'Reset', btnClickMe: 'click me!', copied: 'Copied', }, autoComplete: { latestInput: 'Latest input', }, datatable: { tableSetting: 'Table Setting', ensure: 'Ensure', cancel: 'Cancel', compact: 'Compact', standard: 'Standard', loose: 'Loose', divideLine: 'Divide Line', striped: 'Striped', tableShadow: 'Table Shadow', styles: 'Table Style', colSelected: 'Selected', colCanSelect: 'Selectable', }, datePicker: { today: 'Today', clear: 'Clear', daysOfWeek: ['Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat'], monthsOfYear: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ], startDate: 'Start Date', endDate: 'End Date', yearDisplay(year) { return `${year}`; }, }, datePickerPro: { placeholder: 'select date', startPlaceholder: 'select start date', endPlaceholder: 'select end date', daysOfWeek: ['Sun', 'Mon', 'Tues', 'Wed', 'Thur', 'Fri', 'Sat'], monthsOfYear: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ], getYearMonthStr(year, month) { return `${monthsOfYear[month - 1]} ${year}`; }, hour: 'Hr', min: 'Min', second: 'Sec', yearDisplay(year) { return `${year}`; }, }, form: { required(val) { return 'The value cannot be empty.'; }, minlength(len) { return `The length cannot be less than ${len}.`; }, maxlength(len) { return `The length cannot be greater than ${len}.`; }, min(val) { return `The value cannot be less than ${val}.`; }, max(val) { return `The value cannot be greater than ${val}.`; }, requiredTrue(val) { return 'The value needs to be true.'; }, email(val) { return 'Email format verification failed.'; }, whitespace(val) { return 'The value cannot only has whitespace.'; }, }, gantt: { today: 'Today', day: 'Day', week: 'Week', month: 'Month', milestone: 'milestone', monthsOfYear: [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sept', 'Oct', 'Nov', 'Dec', ], yearDisplay(year) { return `${year}`; }, monthDisplay(strMonthIndex) { return this.monthsOfYear[Number(strMonthIndex) - 1]; }, yearAndMonthDisplay(year, strMonthIndex) { return this.monthDisplay(strMonthIndex) + ' ' + this.yearDisplay(year); }, }, pagination: { goTo: 'Go To', pageSize: 'Page Size', page: 'Page', perPage: ' / Page', totalItem(total) { return `Total Records: ${total}`; } }, quadrant: { xAxisLabel: 'Urgency', yAxisLabel: 'Importance', defaultTitleConf: [ { title: 'Important and urgent' }, { title: 'Important not urgent' }, { title: 'Not important not urgent' }, { title: 'Not important urgent' }, ], }, upload: { warning: 'Warning', upload: 'Upload', chooseFile: '--select--', chooseFiles: '--select--', preload: 'Selected', uploading: 'Uploading...', uploaded: 'Upload successful', uploadFailed: 'Upload failed', uploadSuccess: 'Upload Successful', delete: 'Delete', reUpload: 'reupload', cancelUpload: 'Upload cancel', getNotAllowedFileTypeMsg(filename, scope) { return `Files with unsupported types: ${filename}. Supported file types: ${scope}`; }, getBeyondMaximalFileSizeMsg(filename, maximalSize) { return `Maximum file size (MB): ${maximalSize}. Files whose size exceeds the maximum value: ${filename}`; }, getBeyondMaximumFileCountMsg(maximalSize) { return `Maximum file count: ${maximalSize}. Files exceeds the maximum value`; }, getAllFilesBeyondMaximalFileSizeMsg(maximalSize) { return `Maximum file size (MB): ${maximalSize}. The selected files exceed the maximum value`; }, getExistSameNameFilesMsg(sameNames) { return `Duplicate files exist : "${sameNames}"`; }, getSelectedFilesCount(filesCount) { return `${filesCount} files added`; }, getUploadingFilesCount(uploadingCount, filesCount) { return `${uploadingCount}/${filesCount} is uploading`; }, getFailedFilesCount(failedCount) { return `${failedCount} files upload failed`; }, }, modal: { warning: 'Warning', error: 'Error', fail: 'Fail', info: 'Information', success: 'Success', }, imagePreview: { rotate: 'Rotate', zoomIn: 'Zoom In', zoomOut: 'Zoom Out', bestScale: 'Best Ratio', originScale: 'Original Ratio', pre: 'Previous', next: 'Next', origin: 'View the original image', download: 'Download' }, colorPicker: { recentlyUsed: 'Recently Used', basicColors: 'Basic Colors', moreColors: 'More Colors', }, stepsGuide: { previous: 'Previous', next: 'Continue', finish: 'OK', }, splitter: { collapse: 'Collapse', expand: 'Expand', }, relativeTime: { yearsAgo(num) { return num === 1 ? 'last year' : `${num} years ago`; }, monthsAgo(num) { return num === 1 ? 'last month' : `${num} months ago`; }, weeksAgo(num) { return num === 1 ? 'last week' : `${num} weeks ago`; }, daysAgo(num) { return num === 1 ? 'yesterday' : `${num} days ago`; }, daysLater(num) { return num === 1 ? 'tomorrow' : `${num} days later`; }, weeksLater(num) { return num === 1 ? 'next week' : `${num} weeks later`; }, monthsLater(num) { return num === 1 ? 'next month' : `${num} months later`; }, yearsLater(num) { return num === 1 ? 'next year' : `${num} years later`; }, hoursAgo(num) { return num === 1 ? `1 hour ago` : `${num} hours ago`; }, minutesAgo(num) { return num === 1 ? `1 minute ago` : `${num} minutes ago`; }, minutesLater(num) { return num === 1 ? `1 minute later` : `${num} minutes later`; }, hoursLater(num) { return num === 1 ? `1 hours later` : `${num} hours later`; }, justnow: 'just now', later: 'later', }, tagsInput: { tagsReachMaxLength: 'The length of tags has reached maxTags', tagsReachMaxNumber: 'Maximum number reached: ', create: 'Create' }, categorySearch: { confirm: 'Confirm', cancel: 'Cancel', selectFilterCondition: 'Please select a filter condition:', getFindingMessage(msg) { return `find in '${msg}'`; }, getSearchMessage(msg) { return `only search '${msg}'`; }, saveFilter: 'Save Filter', filterTitle: 'Filter Title', placeholder: 'Please enter...', searchPlaceholder: 'Click here to choose a filter condition', noFilterConditions: 'No filter conditions', clearFilterCondition: 'Clear Filter Condition', seeMore: 'See more', selected: 'Selected', switchToStart: 'Switch To Start', switchToEnd: 'Switch To End', keyword: 'Keyword', }, userGuide: { guide: 'Guide', prev: 'Prev', next: 'Next', finish: 'Finish', autoFill: 'Click here to auto-populate' } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW4tdXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9kZXZ1aS9pMThuL2VuLXVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sWUFBWSxHQUFHO0lBQ25CLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztDQUNOLENBQUM7QUFDRixlQUFlO0lBQ2IsTUFBTSxFQUFFLE9BQU87SUFDZixNQUFNLEVBQUU7UUFDTixpQkFBaUIsRUFBRSxrQkFBa0I7UUFDckMsTUFBTSxFQUFFLG9CQUFvQjtRQUM1QixjQUFjLEVBQUUsbUJBQW1CO1FBQ25DLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFFBQVEsRUFBRSxLQUFLO1FBQ2YsS0FBSyxFQUFFLElBQUk7UUFDWCxTQUFTLEVBQUUsUUFBUTtRQUNuQixRQUFRLEVBQUUsT0FBTztRQUNqQixLQUFLLEVBQUUsT0FBTztRQUNkLFVBQVUsRUFBRSxXQUFXO1FBQ3ZCLE1BQU0sRUFBRSxRQUFRO0tBQ2pCO0lBQ0QsWUFBWSxFQUFFO1FBQ1osV0FBVyxFQUFFLGNBQWM7S0FDNUI7SUFDRCxTQUFTLEVBQUU7UUFDVCxZQUFZLEVBQUUsZUFBZTtRQUM3QixNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsUUFBUTtRQUNoQixPQUFPLEVBQUUsU0FBUztRQUNsQixRQUFRLEVBQUUsVUFBVTtRQUNwQixLQUFLLEVBQUUsT0FBTztRQUNkLFVBQVUsRUFBRSxhQUFhO1FBQ3pCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFdBQVcsRUFBRSxjQUFjO1FBQzNCLE1BQU0sRUFBRSxhQUFhO1FBQ3JCLFdBQVcsRUFBRSxVQUFVO1FBQ3ZCLFlBQVksRUFBRSxZQUFZO0tBQzNCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsS0FBSyxFQUFFLE9BQU87UUFDZCxLQUFLLEVBQUUsT0FBTztRQUNkLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUMvRCxZQUFZLEVBQUU7WUFDWixLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7U0FDTjtRQUNELFNBQVMsRUFBRSxZQUFZO1FBQ3ZCLE9BQU8sRUFBRSxVQUFVO1FBQ25CLFdBQVcsQ0FBQyxJQUFJO1lBQ2QsT0FBTyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ25CLENBQUM7S0FDRjtJQUNELGFBQWEsRUFBRTtRQUNiLFdBQVcsRUFBRSxhQUFhO1FBQzFCLGdCQUFnQixFQUFFLG1CQUFtQjtRQUNyQyxjQUFjLEVBQUUsaUJBQWlCO1FBQ2pDLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQztRQUMvRCxZQUFZLEVBQUU7WUFDWixLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7U0FDTjtRQUNELGVBQWUsQ0FBQyxJQUFJLEVBQUUsS0FBSztZQUN6QixPQUFPLEdBQUcsWUFBWSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxFQUFFLElBQUk7UUFDVixHQUFHLEVBQUUsS0FBSztRQUNWLE1BQU0sRUFBRSxLQUFLO1FBQ2IsV0FBVyxDQUFDLElBQUk7WUFDZCxPQUFPLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDbkIsQ0FBQztLQUNGO0lBQ0QsSUFBSSxFQUFFO1FBQ0osUUFBUSxDQUFDLEdBQUc7WUFDVixPQUFPLDRCQUE0QixDQUFDO1FBQ3RDLENBQUM7UUFDRCxTQUFTLENBQUMsR0FBRztZQUNYLE9BQU8sa0NBQWtDLEdBQUcsR0FBRyxDQUFDO1FBQ2xELENBQUM7UUFDRCxTQUFTLENBQUMsR0FBRztZQUNYLE9BQU8scUNBQXFDLEdBQUcsR0FBRyxDQUFDO1FBQ3JELENBQUM7UUFDRCxHQUFHLENBQUMsR0FBRztZQUNMLE9BQU8saUNBQWlDLEdBQUcsR0FBRyxDQUFDO1FBQ2pELENBQUM7UUFDRCxHQUFHLENBQUMsR0FBRztZQUNMLE9BQU8sb0NBQW9DLEdBQUcsR0FBRyxDQUFDO1FBQ3BELENBQUM7UUFDRCxZQUFZLENBQUMsR0FBRztZQUNkLE9BQU8sNkJBQTZCLENBQUM7UUFDdkMsQ0FBQztRQUNELEtBQUssQ0FBQyxHQUFHO1lBQ1AsT0FBTyxtQ0FBbUMsQ0FBQztRQUM3QyxDQUFDO1FBQ0QsVUFBVSxDQUFDLEdBQUc7WUFDWixPQUFPLHVDQUF1QyxDQUFDO1FBQ2pELENBQUM7S0FDRjtJQUNELEtBQUssRUFBRTtRQUNMLEtBQUssRUFBRSxPQUFPO1FBQ2QsR0FBRyxFQUFFLEtBQUs7UUFDVixJQUFJLEVBQUUsTUFBTTtRQUNaLEtBQUssRUFBRSxPQUFPO1FBQ2QsU0FBUyxFQUFFLFdBQVc7UUFDdEIsWUFBWSxFQUFFO1lBQ1osS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1lBQ0wsS0FBSztZQUNMLEtBQUs7WUFDTCxNQUFNO1lBQ04sS0FBSztZQUNMLEtBQUs7WUFDTCxLQUFLO1NBQ047UUFDRCxXQUFXLENBQUMsSUFBSTtZQUNkLE9BQU8sR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUNuQixDQUFDO1FBQ0QsWUFBWSxDQUFDLGFBQXFCO1lBQ2hDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUNELG1CQUFtQixDQUFDLElBQVksRUFBRSxhQUFxQjtZQUNyRCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekUsQ0FBQztLQUNGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE9BQU87UUFDYixRQUFRLEVBQUUsV0FBVztRQUNyQixJQUFJLEVBQUUsTUFBTTtRQUNaLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFNBQVMsQ0FBQyxLQUFLO1lBQ2IsT0FBTyxrQkFBa0IsS0FBSyxFQUFFLENBQUM7UUFDbkMsQ0FBQztLQUNGO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsVUFBVSxFQUFFLFNBQVM7UUFDckIsVUFBVSxFQUFFLFlBQVk7UUFDeEIsZ0JBQWdCLEVBQUU7WUFDaEIsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7WUFDakMsRUFBRSxLQUFLLEVBQUUsMEJBQTBCLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsc0JBQXNCLEVBQUU7U0FDbEM7S0FDRjtJQUNELE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLFVBQVUsRUFBRSxZQUFZO1FBQ3hCLFdBQVcsRUFBRSxZQUFZO1FBQ3pCLE9BQU8sRUFBRSxVQUFVO1FBQ25CLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLFFBQVEsRUFBRSxtQkFBbUI7UUFDN0IsWUFBWSxFQUFFLGVBQWU7UUFDN0IsYUFBYSxFQUFFLG1CQUFtQjtRQUNsQyxNQUFNLEVBQUUsUUFBUTtRQUNoQixRQUFRLEVBQUUsVUFBVTtRQUNwQixZQUFZLEVBQUUsZUFBZTtRQUM3Qix3QkFBd0IsQ0FBQyxRQUFRLEVBQUUsS0FBSztZQUN0QyxPQUFPLGlDQUFpQyxRQUFRLDJCQUEyQixLQUFLLEVBQUUsQ0FBQztRQUNyRixDQUFDO1FBQ0QsMkJBQTJCLENBQUMsUUFBUSxFQUFFLFdBQVc7WUFDL0MsT0FBTywyQkFBMkIsV0FBVyxpREFBaUQsUUFBUSxFQUFFLENBQUM7UUFDM0csQ0FBQztRQUNELDRCQUE0QixDQUFDLFdBQVc7WUFDdEMsT0FBTyx1QkFBdUIsV0FBVyxtQ0FBbUMsQ0FBQztRQUMvRSxDQUFDO1FBQ0QsbUNBQW1DLENBQUMsV0FBVztZQUM3QyxPQUFPLDJCQUEyQixXQUFXLCtDQUErQyxDQUFDO1FBQy9GLENBQUM7UUFDRCx3QkFBd0IsQ0FBQyxTQUFTO1lBQ2hDLE9BQU8sNEJBQTRCLFNBQVMsR0FBRyxDQUFDO1FBQ2xELENBQUM7UUFDRCxxQkFBcUIsQ0FBQyxVQUFVO1lBQzlCLE9BQU8sR0FBRyxVQUFVLGNBQWMsQ0FBQztRQUNyQyxDQUFDO1FBQ0Qsc0JBQXNCLENBQUMsY0FBYyxFQUFFLFVBQVU7WUFDL0MsT0FBTyxHQUFHLGNBQWMsSUFBSSxVQUFVLGVBQWUsQ0FBQztRQUN4RCxDQUFDO1FBQ0QsbUJBQW1CLENBQUMsV0FBVztZQUM3QixPQUFPLEdBQUcsV0FBVyxzQkFBc0IsQ0FBQztRQUM5QyxDQUFDO0tBQ0Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxPQUFPLEVBQUUsU0FBUztRQUNsQixLQUFLLEVBQUUsT0FBTztRQUNkLElBQUksRUFBRSxNQUFNO1FBQ1osSUFBSSxFQUFFLGFBQWE7UUFDbkIsT0FBTyxFQUFFLFNBQVM7S0FDbkI7SUFDRCxZQUFZLEVBQUU7UUFDWixNQUFNLEVBQUUsUUFBUTtRQUNoQixNQUFNLEVBQUUsU0FBUztRQUNqQixPQUFPLEVBQUUsVUFBVTtRQUNuQixTQUFTLEVBQUUsWUFBWTtRQUN2QixXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLEdBQUcsRUFBRSxVQUFVO1FBQ2YsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUseUJBQXlCO1FBQ2pDLFFBQVEsRUFBRSxVQUFVO0tBQ3JCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsWUFBWSxFQUFFLGVBQWU7UUFDN0IsV0FBVyxFQUFFLGNBQWM7UUFDM0IsVUFBVSxFQUFFLGFBQWE7S0FDMUI7SUFDRCxVQUFVLEVBQUU7UUFDVixRQUFRLEVBQUUsVUFBVTtRQUNwQixJQUFJLEVBQUUsVUFBVTtRQUNoQixNQUFNLEVBQUUsSUFBSTtLQUNiO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsUUFBUSxFQUFFLFVBQVU7UUFDcEIsTUFBTSxFQUFFLFFBQVE7S0FDakI7SUFDRCxZQUFZLEVBQUU7UUFDWixRQUFRLENBQUMsR0FBVztZQUNsQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFlBQVksQ0FBQztRQUN0RCxDQUFDO1FBQ0QsU0FBUyxDQUFDLEdBQVc7WUFDbkIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUM7UUFDeEQsQ0FBQztRQUNELFFBQVEsQ0FBQyxHQUFXO1lBQ2xCLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3RELENBQUM7UUFDRCxPQUFPLENBQUMsR0FBVztZQUNqQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsU0FBUyxDQUFDLEdBQVc7WUFDbkIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxhQUFhLENBQUM7UUFDdEQsQ0FBQztRQUNELFVBQVUsQ0FBQyxHQUFXO1lBQ3BCLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsY0FBYyxDQUFDO1FBQ3hELENBQUM7UUFDRCxXQUFXLENBQUMsR0FBVztZQUNyQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLGVBQWUsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsVUFBVSxDQUFDLEdBQVc7WUFDcEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxjQUFjLENBQUM7UUFDeEQsQ0FBQztRQUNELFFBQVEsQ0FBQyxHQUFXO1lBQ2xCLE9BQU8sR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsWUFBWSxDQUFDO1FBQ3ZELENBQUM7UUFDRCxVQUFVLENBQUMsR0FBVztZQUNwQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsWUFBWSxDQUFDLEdBQVc7WUFDdEIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLGdCQUFnQixDQUFDO1FBQy9ELENBQUM7UUFDRCxVQUFVLENBQUMsR0FBVztZQUNwQixPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLGNBQWMsQ0FBQztRQUM1RCxDQUFDO1FBQ0QsT0FBTyxFQUFFLFVBQVU7UUFDbkIsS0FBSyxFQUFFLE9BQU87S0FDZjtJQUNELFNBQVMsRUFBRTtRQUNULGtCQUFrQixFQUFFLHdDQUF3QztRQUM1RCxrQkFBa0IsRUFBRSwwQkFBMEI7UUFDOUMsTUFBTSxFQUFFLFFBQVE7S0FDakI7SUFDRCxjQUFjLEVBQUU7UUFDZCxPQUFPLEVBQUUsU0FBUztRQUNsQixNQUFNLEVBQUUsUUFBUTtRQUNoQixxQkFBcUIsRUFBRSxtQ0FBbUM7UUFDMUQsaUJBQWlCLENBQUMsR0FBRztZQUNuQixPQUFPLFlBQVksR0FBRyxHQUFHLENBQUM7UUFDNUIsQ0FBQztRQUNELGdCQUFnQixDQUFDLEdBQUc7WUFDbEIsT0FBTyxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDaEMsQ0FBQztRQUNELFVBQVUsRUFBRSxhQUFhO1FBQ3pCLFdBQVcsRUFBRSxjQUFjO1FBQzNCLFdBQVcsRUFBRSxpQkFBaUI7UUFDOUIsaUJBQWlCLEVBQUUseUNBQXlDO1FBQzVELGtCQUFrQixFQUFFLHNCQUFzQjtRQUMxQyxvQkFBb0IsRUFBRSx3QkFBd0I7UUFDOUMsT0FBTyxFQUFFLFVBQVU7UUFDbkIsUUFBUSxFQUFFLFVBQVU7UUFDcEIsYUFBYSxFQUFFLGlCQUFpQjtRQUNoQyxXQUFXLEVBQUUsZUFBZTtRQUM1QixPQUFPLEVBQUUsU0FBUztLQUNuQjtJQUNELFNBQVMsRUFBRTtRQUNULEtBQUssRUFBRSxPQUFPO1FBQ2QsSUFBSSxFQUFFLE1BQU07UUFDWixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLFFBQVEsRUFBRSw2QkFBNkI7S0FDeEM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgbW9udGhzT2ZZZWFyID0gW1xuICAnSmFuJyxcbiAgJ0ZlYicsXG4gICdNYXInLFxuICAnQXByJyxcbiAgJ01heScsXG4gICdKdW4nLFxuICAnSnVsJyxcbiAgJ0F1ZycsXG4gICdTZXAnLFxuICAnT2N0JyxcbiAgJ05vdicsXG4gICdEZWMnLFxuXTtcbmV4cG9ydCBkZWZhdWx0IHtcbiAgbG9jYWxlOiAnZW4tdXMnLFxuICBjb21tb246IHtcbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogJ0VudGVyIGEga2V5d29yZC4nLFxuICAgIG5vRGF0YTogJ05vIGRhdGEgYXZhaWxhYmxlLicsXG4gICAgbm9SZWNvcmRzRm91bmQ6ICdObyByZWNvcmRzIGZvdW5kLicsXG4gICAgYnRuQ29uZmlybTogJ0NvbmZpcm0nLFxuICAgIGxvYWRpbmc6ICdMb2FkaW5nLi4uJyxcbiAgICBjaGVja0FsbDogJ0FsbCcsXG4gICAgYnRuT2s6ICdPSycsXG4gICAgYnRuQ2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBidG5DbG9zZTogJ0Nsb3NlJyxcbiAgICByZXNldDogJ1Jlc2V0JyxcbiAgICBidG5DbGlja01lOiAnY2xpY2sgbWUhJyxcbiAgICBjb3BpZWQ6ICdDb3BpZWQnLFxuICB9LFxuICBhdXRvQ29tcGxldGU6IHtcbiAgICBsYXRlc3RJbnB1dDogJ0xhdGVzdCBpbnB1dCcsXG4gIH0sXG4gIGRhdGF0YWJsZToge1xuICAgIHRhYmxlU2V0dGluZzogJ1RhYmxlIFNldHRpbmcnLFxuICAgIGVuc3VyZTogJ0Vuc3VyZScsXG4gICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBjb21wYWN0OiAnQ29tcGFjdCcsXG4gICAgc3RhbmRhcmQ6ICdTdGFuZGFyZCcsXG4gICAgbG9vc2U6ICdMb29zZScsXG4gICAgZGl2aWRlTGluZTogJ0RpdmlkZSBMaW5lJyxcbiAgICBzdHJpcGVkOiAnU3RyaXBlZCcsXG4gICAgdGFibGVTaGFkb3c6ICdUYWJsZSBTaGFkb3cnLFxuICAgIHN0eWxlczogJ1RhYmxlIFN0eWxlJyxcbiAgICBjb2xTZWxlY3RlZDogJ1NlbGVjdGVkJyxcbiAgICBjb2xDYW5TZWxlY3Q6ICdTZWxlY3RhYmxlJyxcbiAgfSxcbiAgZGF0ZVBpY2tlcjoge1xuICAgIHRvZGF5OiAnVG9kYXknLFxuICAgIGNsZWFyOiAnQ2xlYXInLFxuICAgIGRheXNPZldlZWs6IFsnU3VuJywgJ01vbicsICdUdWVzJywgJ1dlZCcsICdUaHVyJywgJ0ZyaScsICdTYXQnXSxcbiAgICBtb250aHNPZlllYXI6IFtcbiAgICAgICdKYW4nLFxuICAgICAgJ0ZlYicsXG4gICAgICAnTWFyJyxcbiAgICAgICdBcHInLFxuICAgICAgJ01heScsXG4gICAgICAnSnVuJyxcbiAgICAgICdKdWwnLFxuICAgICAgJ0F1ZycsXG4gICAgICAnU2VwJyxcbiAgICAgICdPY3QnLFxuICAgICAgJ05vdicsXG4gICAgICAnRGVjJyxcbiAgICBdLFxuICAgIHN0YXJ0RGF0ZTogJ1N0YXJ0IERhdGUnLFxuICAgIGVuZERhdGU6ICdFbmQgRGF0ZScsXG4gICAgeWVhckRpc3BsYXkoeWVhcikge1xuICAgICAgcmV0dXJuIGAke3llYXJ9YDtcbiAgICB9LFxuICB9LFxuICBkYXRlUGlja2VyUHJvOiB7XG4gICAgcGxhY2Vob2xkZXI6ICdzZWxlY3QgZGF0ZScsXG4gICAgc3RhcnRQbGFjZWhvbGRlcjogJ3NlbGVjdCBzdGFydCBkYXRlJyxcbiAgICBlbmRQbGFjZWhvbGRlcjogJ3NlbGVjdCBlbmQgZGF0ZScsXG4gICAgZGF5c09mV2VlazogWydTdW4nLCAnTW9uJywgJ1R1ZXMnLCAnV2VkJywgJ1RodXInLCAnRnJpJywgJ1NhdCddLFxuICAgIG1vbnRoc09mWWVhcjogW1xuICAgICAgJ0phbicsXG4gICAgICAnRmViJyxcbiAgICAgICdNYXInLFxuICAgICAgJ0FwcicsXG4gICAgICAnTWF5JyxcbiAgICAgICdKdW4nLFxuICAgICAgJ0p1bCcsXG4gICAgICAnQXVnJyxcbiAgICAgICdTZXAnLFxuICAgICAgJ09jdCcsXG4gICAgICAnTm92JyxcbiAgICAgICdEZWMnLFxuICAgIF0sXG4gICAgZ2V0WWVhck1vbnRoU3RyKHllYXIsIG1vbnRoKSB7XG4gICAgICByZXR1cm4gYCR7bW9udGhzT2ZZZWFyW21vbnRoIC0gMV19ICR7eWVhcn1gO1xuICAgIH0sXG4gICAgaG91cjogJ0hyJyxcbiAgICBtaW46ICdNaW4nLFxuICAgIHNlY29uZDogJ1NlYycsXG4gICAgeWVhckRpc3BsYXkoeWVhcikge1xuICAgICAgcmV0dXJuIGAke3llYXJ9YDtcbiAgICB9LFxuICB9LFxuICBmb3JtOiB7XG4gICAgcmVxdWlyZWQodmFsKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAnVGhlIHZhbHVlIGNhbm5vdCBiZSBlbXB0eS4nO1xuICAgIH0sXG4gICAgbWlubGVuZ3RoKGxlbik6IHN0cmluZyB7XG4gICAgICByZXR1cm4gYFRoZSBsZW5ndGggY2Fubm90IGJlIGxlc3MgdGhhbiAke2xlbn0uYDtcbiAgICB9LFxuICAgIG1heGxlbmd0aChsZW4pOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIGBUaGUgbGVuZ3RoIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJHtsZW59LmA7XG4gICAgfSxcbiAgICBtaW4odmFsKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgVGhlIHZhbHVlIGNhbm5vdCBiZSBsZXNzIHRoYW4gJHt2YWx9LmA7XG4gICAgfSxcbiAgICBtYXgodmFsKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBgVGhlIHZhbHVlIGNhbm5vdCBiZSBncmVhdGVyIHRoYW4gJHt2YWx9LmA7XG4gICAgfSxcbiAgICByZXF1aXJlZFRydWUodmFsKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiAnVGhlIHZhbHVlIG5lZWRzIHRvIGJlIHRydWUuJztcbiAgICB9LFxuICAgIGVtYWlsKHZhbCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ0VtYWlsIGZvcm1hdCB2ZXJpZmljYXRpb24gZmFpbGVkLic7XG4gICAgfSxcbiAgICB3aGl0ZXNwYWNlKHZhbCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gJ1RoZSB2YWx1ZSBjYW5ub3Qgb25seSBoYXMgd2hpdGVzcGFjZS4nO1xuICAgIH0sXG4gIH0sXG4gIGdhbnR0OiB7XG4gICAgdG9kYXk6ICdUb2RheScsXG4gICAgZGF5OiAnRGF5JyxcbiAgICB3ZWVrOiAnV2VlaycsXG4gICAgbW9udGg6ICdNb250aCcsXG4gICAgbWlsZXN0b25lOiAnbWlsZXN0b25lJyxcbiAgICBtb250aHNPZlllYXI6IFtcbiAgICAgICdKYW4nLFxuICAgICAgJ0ZlYicsXG4gICAgICAnTWFyJyxcbiAgICAgICdBcHInLFxuICAgICAgJ01heScsXG4gICAgICAnSnVuJyxcbiAgICAgICdKdWwnLFxuICAgICAgJ0F1ZycsXG4gICAgICAnU2VwdCcsXG4gICAgICAnT2N0JyxcbiAgICAgICdOb3YnLFxuICAgICAgJ0RlYycsXG4gICAgXSxcbiAgICB5ZWFyRGlzcGxheSh5ZWFyKSB7XG4gICAgICByZXR1cm4gYCR7eWVhcn1gO1xuICAgIH0sXG4gICAgbW9udGhEaXNwbGF5KHN0ck1vbnRoSW5kZXg6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHRoaXMubW9udGhzT2ZZZWFyW051bWJlcihzdHJNb250aEluZGV4KSAtIDFdO1xuICAgIH0sXG4gICAgeWVhckFuZE1vbnRoRGlzcGxheSh5ZWFyOiBzdHJpbmcsIHN0ck1vbnRoSW5kZXg6IHN0cmluZykge1xuICAgICAgcmV0dXJuIHRoaXMubW9udGhEaXNwbGF5KHN0ck1vbnRoSW5kZXgpICsgJyAnICsgdGhpcy55ZWFyRGlzcGxheSh5ZWFyKTtcbiAgICB9LFxuICB9LFxuICBwYWdpbmF0aW9uOiB7XG4gICAgZ29UbzogJ0dvIFRvJyxcbiAgICBwYWdlU2l6ZTogJ1BhZ2UgU2l6ZScsXG4gICAgcGFnZTogJ1BhZ2UnLFxuICAgIHBlclBhZ2U6ICcgLyBQYWdlJyxcbiAgICB0b3RhbEl0ZW0odG90YWwpIHtcbiAgICAgIHJldHVybiBgVG90YWwgUmVjb3JkczogJHt0b3RhbH1gO1xuICAgIH1cbiAgfSxcbiAgcXVhZHJhbnQ6IHtcbiAgICB4QXhpc0xhYmVsOiAnVXJnZW5jeScsXG4gICAgeUF4aXNMYWJlbDogJ0ltcG9ydGFuY2UnLFxuICAgIGRlZmF1bHRUaXRsZUNvbmY6IFtcbiAgICAgIHsgdGl0bGU6ICdJbXBvcnRhbnQgYW5kIHVyZ2VudCcgfSxcbiAgICAgIHsgdGl0bGU6ICdJbXBvcnRhbnQgbm90IHVyZ2VudCcgfSxcbiAgICAgIHsgdGl0bGU6ICdOb3QgaW1wb3J0YW50IG5vdCB1cmdlbnQnIH0sXG4gICAgICB7IHRpdGxlOiAnTm90IGltcG9ydGFudCB1cmdlbnQnIH0sXG4gICAgXSxcbiAgfSxcbiAgdXBsb2FkOiB7XG4gICAgd2FybmluZzogJ1dhcm5pbmcnLFxuICAgIHVwbG9hZDogJ1VwbG9hZCcsXG4gICAgY2hvb3NlRmlsZTogJy0tc2VsZWN0LS0nLFxuICAgIGNob29zZUZpbGVzOiAnLS1zZWxlY3QtLScsXG4gICAgcHJlbG9hZDogJ1NlbGVjdGVkJyxcbiAgICB1cGxvYWRpbmc6ICdVcGxvYWRpbmcuLi4nLFxuICAgIHVwbG9hZGVkOiAnVXBsb2FkIHN1Y2Nlc3NmdWwnLFxuICAgIHVwbG9hZEZhaWxlZDogJ1VwbG9hZCBmYWlsZWQnLFxuICAgIHVwbG9hZFN1Y2Nlc3M6ICdVcGxvYWQgU3VjY2Vzc2Z1bCcsXG4gICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICByZVVwbG9hZDogJ3JldXBsb2FkJyxcbiAgICBjYW5jZWxVcGxvYWQ6ICdVcGxvYWQgY2FuY2VsJyxcbiAgICBnZXROb3RBbGxvd2VkRmlsZVR5cGVNc2coZmlsZW5hbWUsIHNjb3BlKSB7XG4gICAgICByZXR1cm4gYEZpbGVzIHdpdGggdW5zdXBwb3J0ZWQgdHlwZXM6ICR7ZmlsZW5hbWV9LiBTdXBwb3J0ZWQgZmlsZSB0eXBlczogJHtzY29wZX1gO1xuICAgIH0sXG4gICAgZ2V0QmV5b25kTWF4aW1hbEZpbGVTaXplTXNnKGZpbGVuYW1lLCBtYXhpbWFsU2l6ZSkge1xuICAgICAgcmV0dXJuIGBNYXhpbXVtIGZpbGUgc2l6ZSAoTUIpOiAke21heGltYWxTaXplfS4gRmlsZXMgd2hvc2Ugc2l6ZSBleGNlZWRzIHRoZSBtYXhpbXVtIHZhbHVlOiAke2ZpbGVuYW1lfWA7XG4gICAgfSxcbiAgICBnZXRCZXlvbmRNYXhpbXVtRmlsZUNvdW50TXNnKG1heGltYWxTaXplKXtcbiAgICAgIHJldHVybiBgTWF4aW11bSBmaWxlIGNvdW50OiAke21heGltYWxTaXplfS4gRmlsZXMgZXhjZWVkcyB0aGUgbWF4aW11bSB2YWx1ZWA7XG4gICAgfSxcbiAgICBnZXRBbGxGaWxlc0JleW9uZE1heGltYWxGaWxlU2l6ZU1zZyhtYXhpbWFsU2l6ZSkge1xuICAgICAgcmV0dXJuIGBNYXhpbXVtIGZpbGUgc2l6ZSAoTUIpOiAke21heGltYWxTaXplfS4gVGhlIHNlbGVjdGVkIGZpbGVzIGV4Y2VlZCB0aGUgbWF4aW11bSB2YWx1ZWA7XG4gICAgfSxcbiAgICBnZXRFeGlzdFNhbWVOYW1lRmlsZXNNc2coc2FtZU5hbWVzKSB7XG4gICAgICByZXR1cm4gYER1cGxpY2F0ZSBmaWxlcyBleGlzdCA6IFwiJHtzYW1lTmFtZXN9XCJgO1xuICAgIH0sXG4gICAgZ2V0U2VsZWN0ZWRGaWxlc0NvdW50KGZpbGVzQ291bnQpIHtcbiAgICAgIHJldHVybiBgJHtmaWxlc0NvdW50fSBmaWxlcyBhZGRlZGA7XG4gICAgfSxcbiAgICBnZXRVcGxvYWRpbmdGaWxlc0NvdW50KHVwbG9hZGluZ0NvdW50LCBmaWxlc0NvdW50KSB7XG4gICAgICByZXR1cm4gYCR7dXBsb2FkaW5nQ291bnR9LyR7ZmlsZXNDb3VudH0gaXMgdXBsb2FkaW5nYDtcbiAgICB9LFxuICAgIGdldEZhaWxlZEZpbGVzQ291bnQoZmFpbGVkQ291bnQpIHtcbiAgICAgIHJldHVybiBgJHtmYWlsZWRDb3VudH0gZmlsZXMgdXBsb2FkIGZhaWxlZGA7XG4gICAgfSxcbiAgfSxcbiAgbW9kYWw6IHtcbiAgICB3YXJuaW5nOiAnV2FybmluZycsXG4gICAgZXJyb3I6ICdFcnJvcicsXG4gICAgZmFpbDogJ0ZhaWwnLFxuICAgIGluZm86ICdJbmZvcm1hdGlvbicsXG4gICAgc3VjY2VzczogJ1N1Y2Nlc3MnLFxuICB9LFxuICBpbWFnZVByZXZpZXc6IHtcbiAgICByb3RhdGU6ICdSb3RhdGUnLFxuICAgIHpvb21JbjogJ1pvb20gSW4nLFxuICAgIHpvb21PdXQ6ICdab29tIE91dCcsXG4gICAgYmVzdFNjYWxlOiAnQmVzdCBSYXRpbycsXG4gICAgb3JpZ2luU2NhbGU6ICdPcmlnaW5hbCBSYXRpbycsXG4gICAgcHJlOiAnUHJldmlvdXMnLFxuICAgIG5leHQ6ICdOZXh0JyxcbiAgICBvcmlnaW46ICdWaWV3IHRoZSBvcmlnaW5hbCBpbWFnZScsXG4gICAgZG93bmxvYWQ6ICdEb3dubG9hZCdcbiAgfSxcbiAgY29sb3JQaWNrZXI6IHtcbiAgICByZWNlbnRseVVzZWQ6ICdSZWNlbnRseSBVc2VkJyxcbiAgICBiYXNpY0NvbG9yczogJ0Jhc2ljIENvbG9ycycsXG4gICAgbW9yZUNvbG9yczogJ01vcmUgQ29sb3JzJyxcbiAgfSxcbiAgc3RlcHNHdWlkZToge1xuICAgIHByZXZpb3VzOiAnUHJldmlvdXMnLFxuICAgIG5leHQ6ICdDb250aW51ZScsXG4gICAgZmluaXNoOiAnT0snLFxuICB9LFxuICBzcGxpdHRlcjoge1xuICAgIGNvbGxhcHNlOiAnQ29sbGFwc2UnLFxuICAgIGV4cGFuZDogJ0V4cGFuZCcsXG4gIH0sXG4gIHJlbGF0aXZlVGltZToge1xuICAgIHllYXJzQWdvKG51bTogbnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVtID09PSAxID8gJ2xhc3QgeWVhcicgOiBgJHtudW19IHllYXJzIGFnb2A7XG4gICAgfSxcbiAgICBtb250aHNBZ28obnVtOiBudW1iZXIpIHtcbiAgICAgIHJldHVybiBudW0gPT09IDEgPyAnbGFzdCBtb250aCcgOiBgJHtudW19IG1vbnRocyBhZ29gO1xuICAgIH0sXG4gICAgd2Vla3NBZ28obnVtOiBudW1iZXIpIHtcbiAgICAgIHJldHVybiBudW0gPT09IDEgPyAnbGFzdCB3ZWVrJyA6IGAke251bX0gd2Vla3MgYWdvYDtcbiAgICB9LFxuICAgIGRheXNBZ28obnVtOiBudW1iZXIpIHtcbiAgICAgIHJldHVybiBudW0gPT09IDEgPyAneWVzdGVyZGF5JyA6IGAke251bX0gZGF5cyBhZ29gO1xuICAgIH0sXG4gICAgZGF5c0xhdGVyKG51bTogbnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVtID09PSAxID8gJ3RvbW9ycm93JyA6IGAke251bX0gZGF5cyBsYXRlcmA7XG4gICAgfSxcbiAgICB3ZWVrc0xhdGVyKG51bTogbnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVtID09PSAxID8gJ25leHQgd2VlaycgOiBgJHtudW19IHdlZWtzIGxhdGVyYDtcbiAgICB9LFxuICAgIG1vbnRoc0xhdGVyKG51bTogbnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVtID09PSAxID8gJ25leHQgbW9udGgnIDogYCR7bnVtfSBtb250aHMgbGF0ZXJgO1xuICAgIH0sXG4gICAgeWVhcnNMYXRlcihudW06IG51bWJlcikge1xuICAgICAgcmV0dXJuIG51bSA9PT0gMSA/ICduZXh0IHllYXInIDogYCR7bnVtfSB5ZWFycyBsYXRlcmA7XG4gICAgfSxcbiAgICBob3Vyc0FnbyhudW06IG51bWJlcikge1xuICAgICAgcmV0dXJuIG51bSA9PT0gMSA/IGAxIGhvdXIgYWdvYCA6IGAke251bX0gaG91cnMgYWdvYDtcbiAgICB9LFxuICAgIG1pbnV0ZXNBZ28obnVtOiBudW1iZXIpIHtcbiAgICAgIHJldHVybiBudW0gPT09IDEgPyBgMSBtaW51dGUgYWdvYCA6IGAke251bX0gbWludXRlcyBhZ29gO1xuICAgIH0sXG4gICAgbWludXRlc0xhdGVyKG51bTogbnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVtID09PSAxID8gYDEgbWludXRlIGxhdGVyYCA6IGAke251bX0gbWludXRlcyBsYXRlcmA7XG4gICAgfSxcbiAgICBob3Vyc0xhdGVyKG51bTogbnVtYmVyKSB7XG4gICAgICByZXR1cm4gbnVtID09PSAxID8gYDEgaG91cnMgbGF0ZXJgIDogYCR7bnVtfSBob3VycyBsYXRlcmA7XG4gICAgfSxcbiAgICBqdXN0bm93OiAnanVzdCBub3cnLFxuICAgIGxhdGVyOiAnbGF0ZXInLFxuICB9LFxuICB0YWdzSW5wdXQ6IHtcbiAgICB0YWdzUmVhY2hNYXhMZW5ndGg6ICdUaGUgbGVuZ3RoIG9mIHRhZ3MgaGFzIHJlYWNoZWQgbWF4VGFncycsXG4gICAgdGFnc1JlYWNoTWF4TnVtYmVyOiAnTWF4aW11bSBudW1iZXIgcmVhY2hlZDogJyxcbiAgICBjcmVhdGU6ICdDcmVhdGUnXG4gIH0sXG4gIGNhdGVnb3J5U2VhcmNoOiB7XG4gICAgY29uZmlybTogJ0NvbmZpcm0nLFxuICAgIGNhbmNlbDogJ0NhbmNlbCcsXG4gICAgc2VsZWN0RmlsdGVyQ29uZGl0aW9uOiAnUGxlYXNlIHNlbGVjdCBhIGZpbHRlciBjb25kaXRpb246JyxcbiAgICBnZXRGaW5kaW5nTWVzc2FnZShtc2cpIHtcbiAgICAgIHJldHVybiBgZmluZCBpbiAnJHttc2d9J2A7XG4gICAgfSxcbiAgICBnZXRTZWFyY2hNZXNzYWdlKG1zZykge1xuICAgICAgcmV0dXJuIGBvbmx5IHNlYXJjaCAnJHttc2d9J2A7XG4gICAgfSxcbiAgICBzYXZlRmlsdGVyOiAnU2F2ZSBGaWx0ZXInLFxuICAgIGZpbHRlclRpdGxlOiAnRmlsdGVyIFRpdGxlJyxcbiAgICBwbGFjZWhvbGRlcjogJ1BsZWFzZSBlbnRlci4uLicsXG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6ICdDbGljayBoZXJlIHRvIGNob29zZSBhIGZpbHRlciBjb25kaXRpb24nLFxuICAgIG5vRmlsdGVyQ29uZGl0aW9uczogJ05vIGZpbHRlciBjb25kaXRpb25zJyxcbiAgICBjbGVhckZpbHRlckNvbmRpdGlvbjogJ0NsZWFyIEZpbHRlciBDb25kaXRpb24nLFxuICAgIHNlZU1vcmU6ICdTZWUgbW9yZScsXG4gICAgc2VsZWN0ZWQ6ICdTZWxlY3RlZCcsXG4gICAgc3dpdGNoVG9TdGFydDogJ1N3aXRjaCBUbyBTdGFydCcsXG4gICAgc3dpdGNoVG9FbmQ6ICdTd2l0Y2ggVG8gRW5kJyxcbiAgICBrZXl3b3JkOiAnS2V5d29yZCcsXG4gIH0sXG4gIHVzZXJHdWlkZToge1xuICAgIGd1aWRlOiAnR3VpZGUnLFxuICAgIHByZXY6ICdQcmV2JyxcbiAgICBuZXh0OiAnTmV4dCcsXG4gICAgZmluaXNoOiAnRmluaXNoJyxcbiAgICBhdXRvRmlsbDogJ0NsaWNrIGhlcmUgdG8gYXV0by1wb3B1bGF0ZSdcbiAgfVxufTtcbiJdfQ==