UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

137 lines 13.4 kB
const RESOURCE_MARKS = { Namespace: { abbr: 'NS', colors: { light: '#CFAF0F', dark: '#B59618' }, }, Project: { abbr: 'PR', colors: { light: '#2A5ADF', dark: '#2D54D3' }, }, Service: { abbr: 'SVC', colors: { light: '#CC9213', dark: '#CC9827' }, }, Prometheus: { abbr: 'PROM', colors: { light: '#8D4EDA', dark: '#9257DA' }, }, PrometheusRule: { abbr: 'PROR', colors: { light: '#722ED1', dark: '#6229BF' }, }, Dashboard: { abbr: 'DASH', colors: { light: '#3C4DC3', dark: '#4656C3' }, }, ServiceMonitor: { abbr: 'SVCM', colors: { light: '#C98612', dark: '#B77B22' }, }, Container: { abbr: 'C', colors: { light: '#0ABD78', dark: '#19AD74' }, }, 'app.k8s.io/Application': { abbr: 'APP', colors: { light: '#00AB28', dark: '#1BAB3D' }, }, 'core.oam.dev/Application': { abbr: 'OAM', colors: { light: '#009A29', dark: '#129334' }, }, 'argoproj.io/Application': { abbr: 'GOPS', colors: { light: '#008026', dark: '#0A7C2C' }, }, Deployment: { abbr: 'D', colors: { light: '#3170FF', dark: '#325FD9' }, }, DaemonSet: { abbr: 'DS', colors: { light: '#54B38D', dark: '#3C9977' }, }, StatefulSet: { abbr: 'SS', colors: { light: '#EF7A0A', dark: '#D67517' }, }, Job: { abbr: 'J', colors: { light: '#4661C1', dark: '#3D56B3' }, }, CronJob: { abbr: 'CJ', colors: { light: '#5A7BDC', dark: '#5475D5' }, }, Ingress: { abbr: 'I', colors: { light: '#14C9C9', dark: '#2CC1C1' }, }, ConfigMap: { abbr: 'CM', colors: { light: '#8E4AA9', dark: '#7D4095' }, }, Secret: { abbr: 'S', colors: { light: '#31BFFF', dark: '#2FB4F1' }, }, HorizontalPodAutoscaler: { abbr: 'HPA', colors: { light: '#3491FA', dark: '#358CEE' }, }, MonitorDashboard: { abbr: 'MD', colors: { light: '#AE6F83', dark: '#AE6D82' }, }, ReplicaSet: { abbr: 'RS', colors: { light: '#9A6632', dark: '#9A6A3A' }, }, Node: { abbr: 'N', colors: { light: '#8D4EDA', dark: '#9257DA' }, }, Group: { abbr: 'G', colors: { light: '#429456', dark: '#328248' }, }, Operator: { abbr: 'O', colors: { light: '#0DA5AA', dark: '#25A6AA' }, }, PersistentVolumeClaim: { abbr: 'PVC', colors: { light: '#F5B433', dark: '#E1A938' }, }, Pod: { abbr: 'P', colors: { light: '#437802', dark: '#4B7814' }, }, }; // 获取资源的缩写标记 export function getResourceMark(kind, apiGroup) { if (!kind) { return ''; } // 检查是否有预定义的缩写 const matchKey = apiGroup ? `${apiGroup}/${kind}` : kind; const config = RESOURCE_MARKS[matchKey]; if (config) { return config.abbr; } // 处理全小写的情况 if (kind === kind.toLowerCase()) { return kind.slice(0, 4); } // 获取大写字母组成缩写 const upperChars = kind.match(/[A-Z]/g) || []; return upperChars.slice(0, 4).join(''); } export function getResourceColor(kind, theme) { const config = RESOURCE_MARKS[kind]; if (!config) { return theme === 'light' ? '#0067D0' : '#1974D0'; } return config.colors[theme]; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL3NyYy9rOHMtc2hhcmVkL3Jlc291cmNlLW1hcmsvdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLGNBQWMsR0FBdUM7SUFDekQsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsSUFBSTtRQUNWLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxNQUFNO1FBQ1osTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLE1BQU07UUFDWixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxTQUFTLEVBQUU7UUFDVCxJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELHdCQUF3QixFQUFFO1FBQ3hCLElBQUksRUFBRSxLQUFLO1FBQ1gsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsMEJBQTBCLEVBQUU7UUFDMUIsSUFBSSxFQUFFLEtBQUs7UUFDWCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCx5QkFBeUIsRUFBRTtRQUN6QixJQUFJLEVBQUUsTUFBTTtRQUNaLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELFVBQVUsRUFBRTtRQUNWLElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsSUFBSTtRQUNWLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsTUFBTSxFQUFFO1FBQ04sSUFBSSxFQUFFLEdBQUc7UUFDVCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCx1QkFBdUIsRUFBRTtRQUN2QixJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSxJQUFJO1FBQ1YsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLElBQUk7UUFDVixNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUUsR0FBRztRQUNULE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsSUFBSSxFQUFFLEdBQUc7UUFDVCxNQUFNLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUU7S0FDOUM7SUFDRCxxQkFBcUIsRUFBRTtRQUNyQixJQUFJLEVBQUUsS0FBSztRQUNYLE1BQU0sRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRTtLQUM5QztJQUNELEdBQUcsRUFBRTtRQUNILElBQUksRUFBRSxHQUFHO1FBQ1QsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFO0tBQzlDO0NBQ0YsQ0FBQztBQUVGLFlBQVk7QUFDWixNQUFNLFVBQVUsZUFBZSxDQUFDLElBQVksRUFBRSxRQUFpQjtJQUM3RCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDVixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxjQUFjO0lBQ2QsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3pELE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXO0lBQ1gsSUFBSSxJQUFJLEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQsYUFBYTtJQUNiLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlDLE9BQU8sVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pDLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLEtBQWE7SUFDMUQsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE9BQU8sS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFtQyxDQUFDLENBQUM7QUFDNUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImludGVyZmFjZSBSZXNvdXJjZU1hcmtDb25maWcge1xuICBhYmJyOiBzdHJpbmc7XG4gIGNvbG9yczoge1xuICAgIGxpZ2h0OiBzdHJpbmc7XG4gICAgZGFyazogc3RyaW5nO1xuICB9O1xufVxuXG5jb25zdCBSRVNPVVJDRV9NQVJLUzogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VNYXJrQ29uZmlnPiA9IHtcbiAgTmFtZXNwYWNlOiB7XG4gICAgYWJicjogJ05TJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjQ0ZBRjBGJywgZGFyazogJyNCNTk2MTgnIH0sXG4gIH0sXG4gIFByb2plY3Q6IHtcbiAgICBhYmJyOiAnUFInLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMyQTVBREYnLCBkYXJrOiAnIzJENTREMycgfSxcbiAgfSxcbiAgU2VydmljZToge1xuICAgIGFiYnI6ICdTVkMnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyNDQzkyMTMnLCBkYXJrOiAnI0NDOTgyNycgfSxcbiAgfSxcbiAgUHJvbWV0aGV1czoge1xuICAgIGFiYnI6ICdQUk9NJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjOEQ0RURBJywgZGFyazogJyM5MjU3REEnIH0sXG4gIH0sXG4gIFByb21ldGhldXNSdWxlOiB7XG4gICAgYWJicjogJ1BST1InLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM3MjJFRDEnLCBkYXJrOiAnIzYyMjlCRicgfSxcbiAgfSxcbiAgRGFzaGJvYXJkOiB7XG4gICAgYWJicjogJ0RBU0gnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMzQzREQzMnLCBkYXJrOiAnIzQ2NTZDMycgfSxcbiAgfSxcbiAgU2VydmljZU1vbml0b3I6IHtcbiAgICBhYmJyOiAnU1ZDTScsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnI0M5ODYxMicsIGRhcms6ICcjQjc3QjIyJyB9LFxuICB9LFxuICBDb250YWluZXI6IHtcbiAgICBhYmJyOiAnQycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzBBQkQ3OCcsIGRhcms6ICcjMTlBRDc0JyB9LFxuICB9LFxuICAnYXBwLms4cy5pby9BcHBsaWNhdGlvbic6IHtcbiAgICBhYmJyOiAnQVBQJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMDBBQjI4JywgZGFyazogJyMxQkFCM0QnIH0sXG4gIH0sXG4gICdjb3JlLm9hbS5kZXYvQXBwbGljYXRpb24nOiB7XG4gICAgYWJicjogJ09BTScsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzAwOUEyOScsIGRhcms6ICcjMTI5MzM0JyB9LFxuICB9LFxuICAnYXJnb3Byb2ouaW8vQXBwbGljYXRpb24nOiB7XG4gICAgYWJicjogJ0dPUFMnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMwMDgwMjYnLCBkYXJrOiAnIzBBN0MyQycgfSxcbiAgfSxcbiAgRGVwbG95bWVudDoge1xuICAgIGFiYnI6ICdEJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMzE3MEZGJywgZGFyazogJyMzMjVGRDknIH0sXG4gIH0sXG4gIERhZW1vblNldDoge1xuICAgIGFiYnI6ICdEUycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzU0QjM4RCcsIGRhcms6ICcjM0M5OTc3JyB9LFxuICB9LFxuICBTdGF0ZWZ1bFNldDoge1xuICAgIGFiYnI6ICdTUycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnI0VGN0EwQScsIGRhcms6ICcjRDY3NTE3JyB9LFxuICB9LFxuICBKb2I6IHtcbiAgICBhYmJyOiAnSicsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzQ2NjFDMScsIGRhcms6ICcjM0Q1NkIzJyB9LFxuICB9LFxuICBDcm9uSm9iOiB7XG4gICAgYWJicjogJ0NKJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjNUE3QkRDJywgZGFyazogJyM1NDc1RDUnIH0sXG4gIH0sXG4gIEluZ3Jlc3M6IHtcbiAgICBhYmJyOiAnSScsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzE0QzlDOScsIGRhcms6ICcjMkNDMUMxJyB9LFxuICB9LFxuICBDb25maWdNYXA6IHtcbiAgICBhYmJyOiAnQ00nLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM4RTRBQTknLCBkYXJrOiAnIzdENDA5NScgfSxcbiAgfSxcbiAgU2VjcmV0OiB7XG4gICAgYWJicjogJ1MnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyMzMUJGRkYnLCBkYXJrOiAnIzJGQjRGMScgfSxcbiAgfSxcbiAgSG9yaXpvbnRhbFBvZEF1dG9zY2FsZXI6IHtcbiAgICBhYmJyOiAnSFBBJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMzQ5MUZBJywgZGFyazogJyMzNThDRUUnIH0sXG4gIH0sXG4gIE1vbml0b3JEYXNoYm9hcmQ6IHtcbiAgICBhYmJyOiAnTUQnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyNBRTZGODMnLCBkYXJrOiAnI0FFNkQ4MicgfSxcbiAgfSxcbiAgUmVwbGljYVNldDoge1xuICAgIGFiYnI6ICdSUycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzlBNjYzMicsIGRhcms6ICcjOUE2QTNBJyB9LFxuICB9LFxuICBOb2RlOiB7XG4gICAgYWJicjogJ04nLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM4RDRFREEnLCBkYXJrOiAnIzkyNTdEQScgfSxcbiAgfSxcbiAgR3JvdXA6IHtcbiAgICBhYmJyOiAnRycsXG4gICAgY29sb3JzOiB7IGxpZ2h0OiAnIzQyOTQ1NicsIGRhcms6ICcjMzI4MjQ4JyB9LFxuICB9LFxuICBPcGVyYXRvcjoge1xuICAgIGFiYnI6ICdPJyxcbiAgICBjb2xvcnM6IHsgbGlnaHQ6ICcjMERBNUFBJywgZGFyazogJyMyNUE2QUEnIH0sXG4gIH0sXG4gIFBlcnNpc3RlbnRWb2x1bWVDbGFpbToge1xuICAgIGFiYnI6ICdQVkMnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyNGNUI0MzMnLCBkYXJrOiAnI0UxQTkzOCcgfSxcbiAgfSxcbiAgUG9kOiB7XG4gICAgYWJicjogJ1AnLFxuICAgIGNvbG9yczogeyBsaWdodDogJyM0Mzc4MDInLCBkYXJrOiAnIzRCNzgxNCcgfSxcbiAgfSxcbn07XG5cbi8vIOiOt+WPlui1hOa6kOeahOe8qeWGmeagh+iusFxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlTWFyayhraW5kOiBzdHJpbmcsIGFwaUdyb3VwPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgaWYgKCFraW5kKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgLy8g5qOA5p+l5piv5ZCm5pyJ6aKE5a6a5LmJ55qE57yp5YaZXG4gIGNvbnN0IG1hdGNoS2V5ID0gYXBpR3JvdXAgPyBgJHthcGlHcm91cH0vJHtraW5kfWAgOiBraW5kO1xuICBjb25zdCBjb25maWcgPSBSRVNPVVJDRV9NQVJLU1ttYXRjaEtleV07XG4gIGlmIChjb25maWcpIHtcbiAgICByZXR1cm4gY29uZmlnLmFiYnI7XG4gIH1cblxuICAvLyDlpITnkIblhajlsI/lhpnnmoTmg4XlhrVcbiAgaWYgKGtpbmQgPT09IGtpbmQudG9Mb3dlckNhc2UoKSkge1xuICAgIHJldHVybiBraW5kLnNsaWNlKDAsIDQpO1xuICB9XG5cbiAgLy8g6I635Y+W5aSn5YaZ5a2X5q+N57uE5oiQ57yp5YaZXG4gIGNvbnN0IHVwcGVyQ2hhcnMgPSBraW5kLm1hdGNoKC9bQS1aXS9nKSB8fCBbXTtcbiAgcmV0dXJuIHVwcGVyQ2hhcnMuc2xpY2UoMCwgNCkuam9pbignJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUNvbG9yKGtpbmQ6IHN0cmluZywgdGhlbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGNvbmZpZyA9IFJFU09VUkNFX01BUktTW2tpbmRdO1xuICBpZiAoIWNvbmZpZykge1xuICAgIHJldHVybiB0aGVtZSA9PT0gJ2xpZ2h0JyA/ICcjMDA2N0QwJyA6ICcjMTk3NEQwJztcbiAgfVxuICByZXR1cm4gY29uZmlnLmNvbG9yc1t0aGVtZSBhcyBrZXlvZiB0eXBlb2YgY29uZmlnLmNvbG9yc107XG59XG4iXX0=