UNPKG

styled-string-builder

Version:

String Styler class based on a builder design pattern

151 lines (149 loc) 16.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.styles = exports.BrightBackgroundColors = exports.StandardBackgroundColors = exports.BrightForegroundColors = exports.StandardForegroundColors = exports.AnsiReset = void 0; /** * @description ANSI escape code for resetting text formatting. * @summary This constant holds the ANSI escape sequence used to reset all text formatting to default. * @const AnsiReset * @memberOf module:StyledString */ exports.AnsiReset = "\x1b[0m"; /** * @description Standard foreground color codes for ANSI text formatting. * @summary This object maps color names to their corresponding ANSI color codes for standard foreground colors. * @const StandardForegroundColors * @property {number} black - ANSI code for black text (30). * @property {number} red - ANSI code for red text (31). * @property {number} green - ANSI code for green text (32). * @property {number} yellow - ANSI code for yellow text (33). * @property {number} blue - ANSI code for blue text (34). * @property {number} magenta - ANSI code for magenta text (35). * @property {number} cyan - ANSI code for cyan text (36). * @property {number} white - ANSI code for white text (37). * @memberOf module:StyledString */ exports.StandardForegroundColors = { black: 30, red: 31, green: 32, yellow: 33, blue: 34, magenta: 35, cyan: 36, white: 37, }; /** * @description Bright foreground color codes for ANSI text formatting. * @summary This object maps color names to their corresponding ANSI color codes for bright foreground colors. * @const BrightForegroundColors * @property {number} black - ANSI code for bright black text (90). * @property {number} red - ANSI code for bright red text (91). * @property {number} green - ANSI code for bright green text (92). * @property {number} yellow - ANSI code for bright yellow text (93). * @property {number} blue - ANSI code for bright blue text (94). * @property {number} magenta - ANSI code for bright magenta text (95). * @property {number} cyan - ANSI code for bright cyan text (96). * @property {number} white - ANSI code for bright white text (97). * @memberOf module:@StyledString */ exports.BrightForegroundColors = { brightBlack: 90, brightRed: 91, brightGreen: 92, brightYellow: 93, brightBlue: 94, brightMagenta: 95, brightCyan: 96, brightWhite: 97, }; /** * @description Standard background color codes for ANSI text formatting. * @summary This object maps color names to their corresponding ANSI color codes for standard background colors. * @const StandardBackgroundColors * @property {number} bgBlack - ANSI code for black background (40). * @property {number} bgRed - ANSI code for red background (41). * @property {number} bgGreen - ANSI code for green background (42). * @property {number} bgYellow - ANSI code for yellow background (43). * @property {number} bgBlue - ANSI code for blue background (44). * @property {number} bgMagenta - ANSI code for magenta background (45). * @property {number} bgCyan - ANSI code for cyan background (46). * @property {number} bgWhite - ANSI code for white background (47). * @memberOf module:@StyledString */ exports.StandardBackgroundColors = { bgBlack: 40, bgRed: 41, bgGreen: 42, bgYellow: 43, bgBlue: 44, bgMagenta: 45, bgCyan: 46, bgWhite: 47, }; /** * @description Bright background color codes for ANSI text formatting. * @summary This object maps color names to their corresponding ANSI color codes for bright background colors. * @const BrightBackgroundColors * @property {number} bgBrightBlack - ANSI code for bright black background (100). * @property {number} bgBrightRed - ANSI code for bright red background (101). * @property {number} bgBrightGreen - ANSI code for bright green background (102). * @property {number} bgBrightYellow - ANSI code for bright yellow background (103). * @property {number} bgBrightBlue - ANSI code for bright blue background (104). * @property {number} bgBrightMagenta - ANSI code for bright magenta background (105). * @property {number} bgBrightCyan - ANSI code for bright cyan background (106). * @property {number} bgBrightWhite - ANSI code for bright white background (107). * @memberOf module:@StyledString */ exports.BrightBackgroundColors = { bgBrightBlack: 100, bgBrightRed: 101, bgBrightGreen: 102, bgBrightYellow: 103, bgBrightBlue: 104, bgBrightMagenta: 105, bgBrightCyan: 106, bgBrightWhite: 107, }; /** * @description Text style codes for ANSI text formatting. * @summary This object maps style names to their corresponding ANSI codes for various text styles. * @const styles * @property {number} reset - ANSI code to reset all styles (0). * @property {number} bold - ANSI code for bold text (1). * @property {number} dim - ANSI code for dim text (2). * @property {number} italic - ANSI code for italic text (3). * @property {number} underline - ANSI code for underlined text (4). * @property {number} blink - ANSI code for blinking text (5). * @property {number} inverse - ANSI code for inverse colors (7). * @property {number} hidden - ANSI code for hidden text (8). * @property {number} strikethrough - ANSI code for strikethrough text (9). * @property {number} doubleUnderline - ANSI code for double underlined text (21). * @property {number} normalColor - ANSI code to reset color to normal (22). * @property {number} noItalicOrFraktur - ANSI code to turn off italic (23). * @property {number} noUnderline - ANSI code to turn off underline (24). * @property {number} noBlink - ANSI code to turn off blink (25). * @property {number} noInverse - ANSI code to turn off inverse (27). * @property {number} noHidden - ANSI code to turn off hidden (28). * @property {number} noStrikethrough - ANSI code to turn off strikethrough (29). * @memberOf module:@StyledString */ exports.styles = { reset: 0, bold: 1, dim: 2, italic: 3, underline: 4, blink: 5, inverse: 7, hidden: 8, strikethrough: 9, doubleUnderline: 21, normalColor: 22, noItalicOrFraktur: 23, noUnderline: 24, noBlink: 25, noInverse: 27, noHidden: 28, noStrikethrough: 29, }; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0E7Ozs7O0dBS0c7QUFDVSxRQUFBLFNBQVMsR0FBRyxTQUFTLENBQUM7QUFFbkM7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNVLFFBQUEsd0JBQXdCLEdBQUc7SUFDdEMsS0FBSyxFQUFFLEVBQUU7SUFDVCxHQUFHLEVBQUUsRUFBRTtJQUNQLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7SUFDVixJQUFJLEVBQUUsRUFBRTtJQUNSLE9BQU8sRUFBRSxFQUFFO0lBQ1gsSUFBSSxFQUFFLEVBQUU7SUFDUixLQUFLLEVBQUUsRUFBRTtDQUNWLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBRztJQUNwQyxXQUFXLEVBQUUsRUFBRTtJQUNmLFNBQVMsRUFBRSxFQUFFO0lBQ2IsV0FBVyxFQUFFLEVBQUU7SUFDZixZQUFZLEVBQUUsRUFBRTtJQUNoQixVQUFVLEVBQUUsRUFBRTtJQUNkLGFBQWEsRUFBRSxFQUFFO0lBQ2pCLFVBQVUsRUFBRSxFQUFFO0lBQ2QsV0FBVyxFQUFFLEVBQUU7Q0FDaEIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDVSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLE9BQU8sRUFBRSxFQUFFO0lBQ1gsS0FBSyxFQUFFLEVBQUU7SUFDVCxPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxFQUFFO0lBQ1osTUFBTSxFQUFFLEVBQUU7SUFDVixTQUFTLEVBQUUsRUFBRTtJQUNiLE1BQU0sRUFBRSxFQUFFO0lBQ1YsT0FBTyxFQUFFLEVBQUU7Q0FDWixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNVLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsYUFBYSxFQUFFLEdBQUc7SUFDbEIsV0FBVyxFQUFFLEdBQUc7SUFDaEIsYUFBYSxFQUFFLEdBQUc7SUFDbEIsY0FBYyxFQUFFLEdBQUc7SUFDbkIsWUFBWSxFQUFFLEdBQUc7SUFDakIsZUFBZSxFQUFFLEdBQUc7SUFDcEIsWUFBWSxFQUFFLEdBQUc7SUFDakIsYUFBYSxFQUFFLEdBQUc7Q0FDbkIsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ1UsUUFBQSxNQUFNLEdBQUc7SUFDcEIsS0FBSyxFQUFFLENBQUM7SUFDUixJQUFJLEVBQUUsQ0FBQztJQUNQLEdBQUcsRUFBRSxDQUFDO0lBQ04sTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsQ0FBQztJQUNaLEtBQUssRUFBRSxDQUFDO0lBQ1IsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULGFBQWEsRUFBRSxDQUFDO0lBQ2hCLGVBQWUsRUFBRSxFQUFFO0lBQ25CLFdBQVcsRUFBRSxFQUFFO0lBQ2YsaUJBQWlCLEVBQUUsRUFBRTtJQUNyQixXQUFXLEVBQUUsRUFBRTtJQUNmLE9BQU8sRUFBRSxFQUFFO0lBQ1gsU0FBUyxFQUFFLEVBQUU7SUFDYixRQUFRLEVBQUUsRUFBRTtJQUNaLGVBQWUsRUFBRSxFQUFFO0NBQ3BCLENBQUMiLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBTlNJIGVzY2FwZSBjb2RlIGZvciByZXNldHRpbmcgdGV4dCBmb3JtYXR0aW5nLlxuICogQHN1bW1hcnkgVGhpcyBjb25zdGFudCBob2xkcyB0aGUgQU5TSSBlc2NhcGUgc2VxdWVuY2UgdXNlZCB0byByZXNldCBhbGwgdGV4dCBmb3JtYXR0aW5nIHRvIGRlZmF1bHQuXG4gKiBAY29uc3QgQW5zaVJlc2V0XG4gKiBAbWVtYmVyT2YgbW9kdWxlOlN0eWxlZFN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgQW5zaVJlc2V0ID0gXCJcXHgxYlswbVwiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBTdGFuZGFyZCBmb3JlZ3JvdW5kIGNvbG9yIGNvZGVzIGZvciBBTlNJIHRleHQgZm9ybWF0dGluZy5cbiAqIEBzdW1tYXJ5IFRoaXMgb2JqZWN0IG1hcHMgY29sb3IgbmFtZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBBTlNJIGNvbG9yIGNvZGVzIGZvciBzdGFuZGFyZCBmb3JlZ3JvdW5kIGNvbG9ycy5cbiAqIEBjb25zdCBTdGFuZGFyZEZvcmVncm91bmRDb2xvcnNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibGFjayAtIEFOU0kgY29kZSBmb3IgYmxhY2sgdGV4dCAoMzApLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHJlZCAtIEFOU0kgY29kZSBmb3IgcmVkIHRleHQgKDMxKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBncmVlbiAtIEFOU0kgY29kZSBmb3IgZ3JlZW4gdGV4dCAoMzIpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHllbGxvdyAtIEFOU0kgY29kZSBmb3IgeWVsbG93IHRleHQgKDMzKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibHVlIC0gQU5TSSBjb2RlIGZvciBibHVlIHRleHQgKDM0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBtYWdlbnRhIC0gQU5TSSBjb2RlIGZvciBtYWdlbnRhIHRleHQgKDM1KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjeWFuIC0gQU5TSSBjb2RlIGZvciBjeWFuIHRleHQgKDM2KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aGl0ZSAtIEFOU0kgY29kZSBmb3Igd2hpdGUgdGV4dCAoMzcpLlxuICogQG1lbWJlck9mIG1vZHVsZTpTdHlsZWRTdHJpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IFN0YW5kYXJkRm9yZWdyb3VuZENvbG9ycyA9IHtcbiAgYmxhY2s6IDMwLFxuICByZWQ6IDMxLFxuICBncmVlbjogMzIsXG4gIHllbGxvdzogMzMsXG4gIGJsdWU6IDM0LFxuICBtYWdlbnRhOiAzNSxcbiAgY3lhbjogMzYsXG4gIHdoaXRlOiAzNyxcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJyaWdodCBmb3JlZ3JvdW5kIGNvbG9yIGNvZGVzIGZvciBBTlNJIHRleHQgZm9ybWF0dGluZy5cbiAqIEBzdW1tYXJ5IFRoaXMgb2JqZWN0IG1hcHMgY29sb3IgbmFtZXMgdG8gdGhlaXIgY29ycmVzcG9uZGluZyBBTlNJIGNvbG9yIGNvZGVzIGZvciBicmlnaHQgZm9yZWdyb3VuZCBjb2xvcnMuXG4gKiBAY29uc3QgQnJpZ2h0Rm9yZWdyb3VuZENvbG9yc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IGJsYWNrIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgYmxhY2sgdGV4dCAoOTApLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHJlZCAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IHJlZCB0ZXh0ICg5MSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gZ3JlZW4gLSBBTlNJIGNvZGUgZm9yIGJyaWdodCBncmVlbiB0ZXh0ICg5MikuXG4gKiBAcHJvcGVydHkge251bWJlcn0geWVsbG93IC0gQU5TSSBjb2RlIGZvciBicmlnaHQgeWVsbG93IHRleHQgKDkzKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibHVlIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgYmx1ZSB0ZXh0ICg5NCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWFnZW50YSAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IG1hZ2VudGEgdGV4dCAoOTUpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGN5YW4gLSBBTlNJIGNvZGUgZm9yIGJyaWdodCBjeWFuIHRleHQgKDk2KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB3aGl0ZSAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IHdoaXRlIHRleHQgKDk3KS5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6QFN0eWxlZFN0cmluZ1xuICovXG5leHBvcnQgY29uc3QgQnJpZ2h0Rm9yZWdyb3VuZENvbG9ycyA9IHtcbiAgYnJpZ2h0QmxhY2s6IDkwLFxuICBicmlnaHRSZWQ6IDkxLFxuICBicmlnaHRHcmVlbjogOTIsXG4gIGJyaWdodFllbGxvdzogOTMsXG4gIGJyaWdodEJsdWU6IDk0LFxuICBicmlnaHRNYWdlbnRhOiA5NSxcbiAgYnJpZ2h0Q3lhbjogOTYsXG4gIGJyaWdodFdoaXRlOiA5Nyxcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFN0YW5kYXJkIGJhY2tncm91bmQgY29sb3IgY29kZXMgZm9yIEFOU0kgdGV4dCBmb3JtYXR0aW5nLlxuICogQHN1bW1hcnkgVGhpcyBvYmplY3QgbWFwcyBjb2xvciBuYW1lcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIEFOU0kgY29sb3IgY29kZXMgZm9yIHN0YW5kYXJkIGJhY2tncm91bmQgY29sb3JzLlxuICogQGNvbnN0IFN0YW5kYXJkQmFja2dyb3VuZENvbG9yc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQmxhY2sgLSBBTlNJIGNvZGUgZm9yIGJsYWNrIGJhY2tncm91bmQgKDQwKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ1JlZCAtIEFOU0kgY29kZSBmb3IgcmVkIGJhY2tncm91bmQgKDQxKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0dyZWVuIC0gQU5TSSBjb2RlIGZvciBncmVlbiBiYWNrZ3JvdW5kICg0MikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdZZWxsb3cgLSBBTlNJIGNvZGUgZm9yIHllbGxvdyBiYWNrZ3JvdW5kICg0MykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCbHVlIC0gQU5TSSBjb2RlIGZvciBibHVlIGJhY2tncm91bmQgKDQ0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ01hZ2VudGEgLSBBTlNJIGNvZGUgZm9yIG1hZ2VudGEgYmFja2dyb3VuZCAoNDUpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQ3lhbiAtIEFOU0kgY29kZSBmb3IgY3lhbiBiYWNrZ3JvdW5kICg0NikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdXaGl0ZSAtIEFOU0kgY29kZSBmb3Igd2hpdGUgYmFja2dyb3VuZCAoNDcpLlxuICogQG1lbWJlck9mIG1vZHVsZTpAU3R5bGVkU3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBTdGFuZGFyZEJhY2tncm91bmRDb2xvcnMgPSB7XG4gIGJnQmxhY2s6IDQwLFxuICBiZ1JlZDogNDEsXG4gIGJnR3JlZW46IDQyLFxuICBiZ1llbGxvdzogNDMsXG4gIGJnQmx1ZTogNDQsXG4gIGJnTWFnZW50YTogNDUsXG4gIGJnQ3lhbjogNDYsXG4gIGJnV2hpdGU6IDQ3LFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQnJpZ2h0IGJhY2tncm91bmQgY29sb3IgY29kZXMgZm9yIEFOU0kgdGV4dCBmb3JtYXR0aW5nLlxuICogQHN1bW1hcnkgVGhpcyBvYmplY3QgbWFwcyBjb2xvciBuYW1lcyB0byB0aGVpciBjb3JyZXNwb25kaW5nIEFOU0kgY29sb3IgY29kZXMgZm9yIGJyaWdodCBiYWNrZ3JvdW5kIGNvbG9ycy5cbiAqIEBjb25zdCBCcmlnaHRCYWNrZ3JvdW5kQ29sb3JzXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCcmlnaHRCbGFjayAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IGJsYWNrIGJhY2tncm91bmQgKDEwMCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCcmlnaHRSZWQgLSBBTlNJIGNvZGUgZm9yIGJyaWdodCByZWQgYmFja2dyb3VuZCAoMTAxKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0JyaWdodEdyZWVuIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgZ3JlZW4gYmFja2dyb3VuZCAoMTAyKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0JyaWdodFllbGxvdyAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IHllbGxvdyBiYWNrZ3JvdW5kICgxMDMpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQnJpZ2h0Qmx1ZSAtIEFOU0kgY29kZSBmb3IgYnJpZ2h0IGJsdWUgYmFja2dyb3VuZCAoMTA0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBiZ0JyaWdodE1hZ2VudGEgLSBBTlNJIGNvZGUgZm9yIGJyaWdodCBtYWdlbnRhIGJhY2tncm91bmQgKDEwNSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gYmdCcmlnaHRDeWFuIC0gQU5TSSBjb2RlIGZvciBicmlnaHQgY3lhbiBiYWNrZ3JvdW5kICgxMDYpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGJnQnJpZ2h0V2hpdGUgLSBBTlNJIGNvZGUgZm9yIGJyaWdodCB3aGl0ZSBiYWNrZ3JvdW5kICgxMDcpLlxuICogQG1lbWJlck9mIG1vZHVsZTpAU3R5bGVkU3RyaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBCcmlnaHRCYWNrZ3JvdW5kQ29sb3JzID0ge1xuICBiZ0JyaWdodEJsYWNrOiAxMDAsXG4gIGJnQnJpZ2h0UmVkOiAxMDEsXG4gIGJnQnJpZ2h0R3JlZW46IDEwMixcbiAgYmdCcmlnaHRZZWxsb3c6IDEwMyxcbiAgYmdCcmlnaHRCbHVlOiAxMDQsXG4gIGJnQnJpZ2h0TWFnZW50YTogMTA1LFxuICBiZ0JyaWdodEN5YW46IDEwNixcbiAgYmdCcmlnaHRXaGl0ZTogMTA3LFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGV4dCBzdHlsZSBjb2RlcyBmb3IgQU5TSSB0ZXh0IGZvcm1hdHRpbmcuXG4gKiBAc3VtbWFyeSBUaGlzIG9iamVjdCBtYXBzIHN0eWxlIG5hbWVzIHRvIHRoZWlyIGNvcnJlc3BvbmRpbmcgQU5TSSBjb2RlcyBmb3IgdmFyaW91cyB0ZXh0IHN0eWxlcy5cbiAqIEBjb25zdCBzdHlsZXNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSByZXNldCAtIEFOU0kgY29kZSB0byByZXNldCBhbGwgc3R5bGVzICgwKS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBib2xkIC0gQU5TSSBjb2RlIGZvciBib2xkIHRleHQgKDEpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGRpbSAtIEFOU0kgY29kZSBmb3IgZGltIHRleHQgKDIpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGl0YWxpYyAtIEFOU0kgY29kZSBmb3IgaXRhbGljIHRleHQgKDMpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHVuZGVybGluZSAtIEFOU0kgY29kZSBmb3IgdW5kZXJsaW5lZCB0ZXh0ICg0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBibGluayAtIEFOU0kgY29kZSBmb3IgYmxpbmtpbmcgdGV4dCAoNSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW52ZXJzZSAtIEFOU0kgY29kZSBmb3IgaW52ZXJzZSBjb2xvcnMgKDcpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGhpZGRlbiAtIEFOU0kgY29kZSBmb3IgaGlkZGVuIHRleHQgKDgpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHN0cmlrZXRocm91Z2ggLSBBTlNJIGNvZGUgZm9yIHN0cmlrZXRocm91Z2ggdGV4dCAoOSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gZG91YmxlVW5kZXJsaW5lIC0gQU5TSSBjb2RlIGZvciBkb3VibGUgdW5kZXJsaW5lZCB0ZXh0ICgyMSkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9ybWFsQ29sb3IgLSBBTlNJIGNvZGUgdG8gcmVzZXQgY29sb3IgdG8gbm9ybWFsICgyMikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9JdGFsaWNPckZyYWt0dXIgLSBBTlNJIGNvZGUgdG8gdHVybiBvZmYgaXRhbGljICgyMykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9VbmRlcmxpbmUgLSBBTlNJIGNvZGUgdG8gdHVybiBvZmYgdW5kZXJsaW5lICgyNCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9CbGluayAtIEFOU0kgY29kZSB0byB0dXJuIG9mZiBibGluayAoMjUpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IG5vSW52ZXJzZSAtIEFOU0kgY29kZSB0byB0dXJuIG9mZiBpbnZlcnNlICgyNykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9IaWRkZW4gLSBBTlNJIGNvZGUgdG8gdHVybiBvZmYgaGlkZGVuICgyOCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbm9TdHJpa2V0aHJvdWdoIC0gQU5TSSBjb2RlIHRvIHR1cm4gb2ZmIHN0cmlrZXRocm91Z2ggKDI5KS5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6QFN0eWxlZFN0cmluZ1xuICovXG5leHBvcnQgY29uc3Qgc3R5bGVzID0ge1xuICByZXNldDogMCxcbiAgYm9sZDogMSxcbiAgZGltOiAyLFxuICBpdGFsaWM6IDMsXG4gIHVuZGVybGluZTogNCxcbiAgYmxpbms6IDUsXG4gIGludmVyc2U6IDcsXG4gIGhpZGRlbjogOCxcbiAgc3RyaWtldGhyb3VnaDogOSxcbiAgZG91YmxlVW5kZXJsaW5lOiAyMSxcbiAgbm9ybWFsQ29sb3I6IDIyLFxuICBub0l0YWxpY09yRnJha3R1cjogMjMsXG4gIG5vVW5kZXJsaW5lOiAyNCxcbiAgbm9CbGluazogMjUsXG4gIG5vSW52ZXJzZTogMjcsXG4gIG5vSGlkZGVuOiAyOCxcbiAgbm9TdHJpa2V0aHJvdWdoOiAyOSxcbn07XG4iXX0=