{"ast":null,"code":"/* MIT license */\nvar cssKeywords = require('color-name'); // NOTE: conversions should only return primitive values (i.e. arrays, or\n//       values that give correct `typeof` results).\n//       do not use box values types (i.e. Number(), String(), etc.)\n\n\nvar reverseKeywords = {};\n\nfor (var key in cssKeywords) {\n  if (cssKeywords.hasOwnProperty(key)) {\n    reverseKeywords[cssKeywords[key]] = key;\n  }\n}\n\nvar convert = module.exports = {\n  rgb: {\n    channels: 3,\n    labels: 'rgb'\n  },\n  hsl: {\n    channels: 3,\n    labels: 'hsl'\n  },\n  hsv: {\n    channels: 3,\n    labels: 'hsv'\n  },\n  hwb: {\n    channels: 3,\n    labels: 'hwb'\n  },\n  cmyk: {\n    channels: 4,\n    labels: 'cmyk'\n  },\n  xyz: {\n    channels: 3,\n    labels: 'xyz'\n  },\n  lab: {\n    channels: 3,\n    labels: 'lab'\n  },\n  lch: {\n    channels: 3,\n    labels: 'lch'\n  },\n  hex: {\n    channels: 1,\n    labels: ['hex']\n  },\n  keyword: {\n    channels: 1,\n    labels: ['keyword']\n  },\n  ansi16: {\n    channels: 1,\n    labels: ['ansi16']\n  },\n  ansi256: {\n    channels: 1,\n    labels: ['ansi256']\n  },\n  hcg: {\n    channels: 3,\n    labels: ['h', 'c', 'g']\n  },\n  apple: {\n    channels: 3,\n    labels: ['r16', 'g16', 'b16']\n  },\n  gray: {\n    channels: 1,\n    labels: ['gray']\n  }\n}; // hide .channels and .labels properties\n\nfor (var model in convert) {\n  if (convert.hasOwnProperty(model)) {\n    if (!('channels' in convert[model])) {\n      throw new Error('missing channels property: ' + model);\n    }\n\n    if (!('labels' in convert[model])) {\n      throw new Error('missing channel labels property: ' + model);\n    }\n\n    if (convert[model].labels.length !== convert[model].channels) {\n      throw new Error('channel and label counts mismatch: ' + model);\n    }\n\n    var channels = convert[model].channels;\n    var labels = convert[model].labels;\n    delete convert[model].channels;\n    delete convert[model].labels;\n    Object.defineProperty(convert[model], 'channels', {\n      value: channels\n    });\n    Object.defineProperty(convert[model], 'labels', {\n      value: labels\n    });\n  }\n}\n\nconvert.rgb.hsl = function (rgb) {\n  var r = rgb[0] / 255;\n  var g = rgb[1] / 255;\n  var b = rgb[2] / 255;\n  var min = Math.min(r, g, b);\n  var max = Math.max(r, g, b);\n  var delta = max - min;\n  var h;\n  var s;\n  var l;\n\n  if (max === min) {\n    h = 0;\n  } else if (r === max) {\n    h = (g - b) / delta;\n  } else if (g === max) {\n    h = 2 + (b - r) / delta;\n  } else if (b === max) {\n    h = 4 + (r - g) / delta;\n  }\n\n  h = Math.min(h * 60, 360);\n\n  if (h < 0) {\n    h += 360;\n  }\n\n  l = (min + max) / 2;\n\n  if (max === min) {\n    s = 0;\n  } else if (l <= 0.5) {\n    s = delta / (max + min);\n  } else {\n    s = delta / (2 - max - min);\n  }\n\n  return [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n  var rdif;\n  var gdif;\n  var bdif;\n  var h;\n  var s;\n  var r = rgb[0] / 255;\n  var g = rgb[1] / 255;\n  var b = rgb[2] / 255;\n  var v = Math.max(r, g, b);\n  var diff = v - Math.min(r, g, b);\n\n  var diffc = function (c) {\n    return (v - c) / 6 / diff + 1 / 2;\n  };\n\n  if (diff === 0) {\n    h = s = 0;\n  } else {\n    s = diff / v;\n    rdif = diffc(r);\n    gdif = diffc(g);\n    bdif = diffc(b);\n\n    if (r === v) {\n      h = bdif - gdif;\n    } else if (g === v) {\n      h = 1 / 3 + rdif - bdif;\n    } else if (b === v) {\n      h = 2 / 3 + gdif - rdif;\n    }\n\n    if (h < 0) {\n      h += 1;\n    } else if (h > 1) {\n      h -= 1;\n    }\n  }\n\n  return [h * 360, s * 100, v * 100];\n};\n\nconvert.rgb.hwb = function (rgb) {\n  var r = rgb[0];\n  var g = rgb[1];\n  var b = rgb[2];\n  var h = convert.rgb.hsl(rgb)[0];\n  var w = 1 / 255 * Math.min(r, Math.min(g, b));\n  b = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n  return [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n  var r = rgb[0] / 255;\n  var g = rgb[1] / 255;\n  var b = rgb[2] / 255;\n  var c;\n  var m;\n  var y;\n  var k;\n  k = Math.min(1 - r, 1 - g, 1 - b);\n  c = (1 - r - k) / (1 - k) || 0;\n  m = (1 - g - k) / (1 - k) || 0;\n  y = (1 - b - k) / (1 - k) || 0;\n  return [c * 100, m * 100, y * 100, k * 100];\n};\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\n\n\nfunction comparativeDistance(x, y) {\n  return Math.pow(x[0] - y[0], 2) + Math.pow(x[1] - y[1], 2) + Math.pow(x[2] - y[2], 2);\n}\n\nconvert.rgb.keyword = function (rgb) {\n  var reversed = reverseKeywords[rgb];\n\n  if (reversed) {\n    return reversed;\n  }\n\n  var currentClosestDistance = Infinity;\n  var currentClosestKeyword;\n\n  for (var keyword in cssKeywords) {\n    if (cssKeywords.hasOwnProperty(keyword)) {\n      var value = cssKeywords[keyword]; // Compute comparative distance\n\n      var distance = comparativeDistance(rgb, value); // Check if its less, if so set as closest\n\n      if (distance < currentClosestDistance) {\n        currentClosestDistance = distance;\n        currentClosestKeyword = keyword;\n      }\n    }\n  }\n\n  return currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n  return cssKeywords[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n  var r = rgb[0] / 255;\n  var g = rgb[1] / 255;\n  var b = rgb[2] / 255; // assume sRGB\n\n  r = r > 0.04045 ? Math.pow((r + 0.055) / 1.055, 2.4) : r / 12.92;\n  g = g > 0.04045 ? Math.pow((g + 0.055) / 1.055, 2.4) : g / 12.92;\n  b = b > 0.04045 ? Math.pow((b + 0.055) / 1.055, 2.4) : b / 12.92;\n  var x = r * 0.4124 + g * 0.3576 + b * 0.1805;\n  var y = r * 0.2126 + g * 0.7152 + b * 0.0722;\n  var z = r * 0.0193 + g * 0.1192 + b * 0.9505;\n  return [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n  var xyz = convert.rgb.xyz(rgb);\n  var x = xyz[0];\n  var y = xyz[1];\n  var z = xyz[2];\n  var l;\n  var a;\n  var b;\n  x /= 95.047;\n  y /= 100;\n  z /= 108.883;\n  x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n  y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n  z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n  l = 116 * y - 16;\n  a = 500 * (x - y);\n  b = 200 * (y - z);\n  return [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n  var h = hsl[0] / 360;\n  var s = hsl[1] / 100;\n  var l = hsl[2] / 100;\n  var t1;\n  var t2;\n  var t3;\n  var rgb;\n  var val;\n\n  if (s === 0) {\n    val = l * 255;\n    return [val, val, val];\n  }\n\n  if (l < 0.5) {\n    t2 = l * (1 + s);\n  } else {\n    t2 = l + s - l * s;\n  }\n\n  t1 = 2 * l - t2;\n  rgb = [0, 0, 0];\n\n  for (var i = 0; i < 3; i++) {\n    t3 = h + 1 / 3 * -(i - 1);\n\n    if (t3 < 0) {\n      t3++;\n    }\n\n    if (t3 > 1) {\n      t3--;\n    }\n\n    if (6 * t3 < 1) {\n      val = t1 + (t2 - t1) * 6 * t3;\n    } else if (2 * t3 < 1) {\n      val = t2;\n    } else if (3 * t3 < 2) {\n      val = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n    } else {\n      val = t1;\n    }\n\n    rgb[i] = val * 255;\n  }\n\n  return rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n  var h = hsl[0];\n  var s = hsl[1] / 100;\n  var l = hsl[2] / 100;\n  var smin = s;\n  var lmin = Math.max(l, 0.01);\n  var sv;\n  var v;\n  l *= 2;\n  s *= l <= 1 ? l : 2 - l;\n  smin *= lmin <= 1 ? lmin : 2 - lmin;\n  v = (l + s) / 2;\n  sv = l === 0 ? 2 * smin / (lmin + smin) : 2 * s / (l + s);\n  return [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n  var h = hsv[0] / 60;\n  var s = hsv[1] / 100;\n  var v = hsv[2] / 100;\n  var hi = Math.floor(h) % 6;\n  var f = h - Math.floor(h);\n  var p = 255 * v * (1 - s);\n  var q = 255 * v * (1 - s * f);\n  var t = 255 * v * (1 - s * (1 - f));\n  v *= 255;\n\n  switch (hi) {\n    case 0:\n      return [v, t, p];\n\n    case 1:\n      return [q, v, p];\n\n    case 2:\n      return [p, v, t];\n\n    case 3:\n      return [p, q, v];\n\n    case 4:\n      return [t, p, v];\n\n    case 5:\n      return [v, p, q];\n  }\n};\n\nconvert.hsv.hsl = function (hsv) {\n  var h = hsv[0];\n  var s = hsv[1] / 100;\n  var v = hsv[2] / 100;\n  var vmin = Math.max(v, 0.01);\n  var lmin;\n  var sl;\n  var l;\n  l = (2 - s) * v;\n  lmin = (2 - s) * vmin;\n  sl = s * vmin;\n  sl /= lmin <= 1 ? lmin : 2 - lmin;\n  sl = sl || 0;\n  l /= 2;\n  return [h, sl * 100, l * 100];\n}; // http://dev.w3.org/csswg/css-color/#hwb-to-rgb\n\n\nconvert.hwb.rgb = function (hwb) {\n  var h = hwb[0] / 360;\n  var wh = hwb[1] / 100;\n  var bl = hwb[2] / 100;\n  var ratio = wh + bl;\n  var i;\n  var v;\n  var f;\n  var n; // wh + bl cant be > 1\n\n  if (ratio > 1) {\n    wh /= ratio;\n    bl /= ratio;\n  }\n\n  i = Math.floor(6 * h);\n  v = 1 - bl;\n  f = 6 * h - i;\n\n  if ((i & 0x01) !== 0) {\n    f = 1 - f;\n  }\n\n  n = wh + f * (v - wh); // linear interpolation\n\n  var r;\n  var g;\n  var b;\n\n  switch (i) {\n    default:\n    case 6:\n    case 0:\n      r = v;\n      g = n;\n      b = wh;\n      break;\n\n    case 1:\n      r = n;\n      g = v;\n      b = wh;\n      break;\n\n    case 2:\n      r = wh;\n      g = v;\n      b = n;\n      break;\n\n    case 3:\n      r = wh;\n      g = n;\n      b = v;\n      break;\n\n    case 4:\n      r = n;\n      g = wh;\n      b = v;\n      break;\n\n    case 5:\n      r = v;\n      g = wh;\n      b = n;\n      break;\n  }\n\n  return [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n  var c = cmyk[0] / 100;\n  var m = cmyk[1] / 100;\n  var y = cmyk[2] / 100;\n  var k = cmyk[3] / 100;\n  var r;\n  var g;\n  var b;\n  r = 1 - Math.min(1, c * (1 - k) + k);\n  g = 1 - Math.min(1, m * (1 - k) + k);\n  b = 1 - Math.min(1, y * (1 - k) + k);\n  return [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n  var x = xyz[0] / 100;\n  var y = xyz[1] / 100;\n  var z = xyz[2] / 100;\n  var r;\n  var g;\n  var b;\n  r = x * 3.2406 + y * -1.5372 + z * -0.4986;\n  g = x * -0.9689 + y * 1.8758 + z * 0.0415;\n  b = x * 0.0557 + y * -0.2040 + z * 1.0570; // assume sRGB\n\n  r = r > 0.0031308 ? 1.055 * Math.pow(r, 1.0 / 2.4) - 0.055 : r * 12.92;\n  g = g > 0.0031308 ? 1.055 * Math.pow(g, 1.0 / 2.4) - 0.055 : g * 12.92;\n  b = b > 0.0031308 ? 1.055 * Math.pow(b, 1.0 / 2.4) - 0.055 : b * 12.92;\n  r = Math.min(Math.max(0, r), 1);\n  g = Math.min(Math.max(0, g), 1);\n  b = Math.min(Math.max(0, b), 1);\n  return [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n  var x = xyz[0];\n  var y = xyz[1];\n  var z = xyz[2];\n  var l;\n  var a;\n  var b;\n  x /= 95.047;\n  y /= 100;\n  z /= 108.883;\n  x = x > 0.008856 ? Math.pow(x, 1 / 3) : 7.787 * x + 16 / 116;\n  y = y > 0.008856 ? Math.pow(y, 1 / 3) : 7.787 * y + 16 / 116;\n  z = z > 0.008856 ? Math.pow(z, 1 / 3) : 7.787 * z + 16 / 116;\n  l = 116 * y - 16;\n  a = 500 * (x - y);\n  b = 200 * (y - z);\n  return [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n  var l = lab[0];\n  var a = lab[1];\n  var b = lab[2];\n  var x;\n  var y;\n  var z;\n  y = (l + 16) / 116;\n  x = a / 500 + y;\n  z = y - b / 200;\n  var y2 = Math.pow(y, 3);\n  var x2 = Math.pow(x, 3);\n  var z2 = Math.pow(z, 3);\n  y = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n  x = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n  z = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n  x *= 95.047;\n  y *= 100;\n  z *= 108.883;\n  return [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n  var l = lab[0];\n  var a = lab[1];\n  var b = lab[2];\n  var hr;\n  var h;\n  var c;\n  hr = Math.atan2(b, a);\n  h = hr * 360 / 2 / Math.PI;\n\n  if (h < 0) {\n    h += 360;\n  }\n\n  c = Math.sqrt(a * a + b * b);\n  return [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n  var l = lch[0];\n  var c = lch[1];\n  var h = lch[2];\n  var a;\n  var b;\n  var hr;\n  hr = h / 360 * 2 * Math.PI;\n  a = c * Math.cos(hr);\n  b = c * Math.sin(hr);\n  return [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n  var r = args[0];\n  var g = args[1];\n  var b = args[2];\n  var value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n  value = Math.round(value / 50);\n\n  if (value === 0) {\n    return 30;\n  }\n\n  var ansi = 30 + (Math.round(b / 255) << 2 | Math.round(g / 255) << 1 | Math.round(r / 255));\n\n  if (value === 2) {\n    ansi += 60;\n  }\n\n  return ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n  // optimization here; we already know the value and don't need to get\n  // it converted for us.\n  return convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n  var r = args[0];\n  var g = args[1];\n  var b = args[2]; // we use the extended greyscale palette here, with the exception of\n  // black and white. normal palette only has 4 greyscale shades.\n\n  if (r === g && g === b) {\n    if (r < 8) {\n      return 16;\n    }\n\n    if (r > 248) {\n      return 231;\n    }\n\n    return Math.round((r - 8) / 247 * 24) + 232;\n  }\n\n  var ansi = 16 + 36 * Math.round(r / 255 * 5) + 6 * Math.round(g / 255 * 5) + Math.round(b / 255 * 5);\n  return ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n  var color = args % 10; // handle greyscale\n\n  if (color === 0 || color === 7) {\n    if (args > 50) {\n      color += 3.5;\n    }\n\n    color = color / 10.5 * 255;\n    return [color, color, color];\n  }\n\n  var mult = (~~(args > 50) + 1) * 0.5;\n  var r = (color & 1) * mult * 255;\n  var g = (color >> 1 & 1) * mult * 255;\n  var b = (color >> 2 & 1) * mult * 255;\n  return [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n  // handle greyscale\n  if (args >= 232) {\n    var c = (args - 232) * 10 + 8;\n    return [c, c, c];\n  }\n\n  args -= 16;\n  var rem;\n  var r = Math.floor(args / 36) / 5 * 255;\n  var g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n  var b = rem % 6 / 5 * 255;\n  return [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n  var integer = ((Math.round(args[0]) & 0xFF) << 16) + ((Math.round(args[1]) & 0xFF) << 8) + (Math.round(args[2]) & 0xFF);\n  var string = integer.toString(16).toUpperCase();\n  return '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n  var match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\n  if (!match) {\n    return [0, 0, 0];\n  }\n\n  var colorString = match[0];\n\n  if (match[0].length === 3) {\n    colorString = colorString.split('').map(function (char) {\n      return char + char;\n    }).join('');\n  }\n\n  var integer = parseInt(colorString, 16);\n  var r = integer >> 16 & 0xFF;\n  var g = integer >> 8 & 0xFF;\n  var b = integer & 0xFF;\n  return [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n  var r = rgb[0] / 255;\n  var g = rgb[1] / 255;\n  var b = rgb[2] / 255;\n  var max = Math.max(Math.max(r, g), b);\n  var min = Math.min(Math.min(r, g), b);\n  var chroma = max - min;\n  var grayscale;\n  var hue;\n\n  if (chroma < 1) {\n    grayscale = min / (1 - chroma);\n  } else {\n    grayscale = 0;\n  }\n\n  if (chroma <= 0) {\n    hue = 0;\n  } else if (max === r) {\n    hue = (g - b) / chroma % 6;\n  } else if (max === g) {\n    hue = 2 + (b - r) / chroma;\n  } else {\n    hue = 4 + (r - g) / chroma + 4;\n  }\n\n  hue /= 6;\n  hue %= 1;\n  return [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n  var s = hsl[1] / 100;\n  var l = hsl[2] / 100;\n  var c = 1;\n  var f = 0;\n\n  if (l < 0.5) {\n    c = 2.0 * s * l;\n  } else {\n    c = 2.0 * s * (1.0 - l);\n  }\n\n  if (c < 1.0) {\n    f = (l - 0.5 * c) / (1.0 - c);\n  }\n\n  return [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n  var s = hsv[1] / 100;\n  var v = hsv[2] / 100;\n  var c = s * v;\n  var f = 0;\n\n  if (c < 1.0) {\n    f = (v - c) / (1 - c);\n  }\n\n  return [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n  var h = hcg[0] / 360;\n  var c = hcg[1] / 100;\n  var g = hcg[2] / 100;\n\n  if (c === 0.0) {\n    return [g * 255, g * 255, g * 255];\n  }\n\n  var pure = [0, 0, 0];\n  var hi = h % 1 * 6;\n  var v = hi % 1;\n  var w = 1 - v;\n  var mg = 0;\n\n  switch (Math.floor(hi)) {\n    case 0:\n      pure[0] = 1;\n      pure[1] = v;\n      pure[2] = 0;\n      break;\n\n    case 1:\n      pure[0] = w;\n      pure[1] = 1;\n      pure[2] = 0;\n      break;\n\n    case 2:\n      pure[0] = 0;\n      pure[1] = 1;\n      pure[2] = v;\n      break;\n\n    case 3:\n      pure[0] = 0;\n      pure[1] = w;\n      pure[2] = 1;\n      break;\n\n    case 4:\n      pure[0] = v;\n      pure[1] = 0;\n      pure[2] = 1;\n      break;\n\n    default:\n      pure[0] = 1;\n      pure[1] = 0;\n      pure[2] = w;\n  }\n\n  mg = (1.0 - c) * g;\n  return [(c * pure[0] + mg) * 255, (c * pure[1] + mg) * 255, (c * pure[2] + mg) * 255];\n};\n\nconvert.hcg.hsv = function (hcg) {\n  var c = hcg[1] / 100;\n  var g = hcg[2] / 100;\n  var v = c + g * (1.0 - c);\n  var f = 0;\n\n  if (v > 0.0) {\n    f = c / v;\n  }\n\n  return [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n  var c = hcg[1] / 100;\n  var g = hcg[2] / 100;\n  var l = g * (1.0 - c) + 0.5 * c;\n  var s = 0;\n\n  if (l > 0.0 && l < 0.5) {\n    s = c / (2 * l);\n  } else if (l >= 0.5 && l < 1.0) {\n    s = c / (2 * (1 - l));\n  }\n\n  return [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n  var c = hcg[1] / 100;\n  var g = hcg[2] / 100;\n  var v = c + g * (1.0 - c);\n  return [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n  var w = hwb[1] / 100;\n  var b = hwb[2] / 100;\n  var v = 1 - b;\n  var c = v - w;\n  var g = 0;\n\n  if (c < 1) {\n    g = (v - c) / (1 - c);\n  }\n\n  return [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n  return [apple[0] / 65535 * 255, apple[1] / 65535 * 255, apple[2] / 65535 * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n  return [rgb[0] / 255 * 65535, rgb[1] / 255 * 65535, rgb[2] / 255 * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n  return [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n  return [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n  return [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n  return [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n  return [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n  var val = Math.round(gray[0] / 100 * 255) & 0xFF;\n  var integer = (val << 16) + (val << 8) + val;\n  var string = integer.toString(16).toUpperCase();\n  return '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n  var val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n  return [val / 255 * 100];\n};","map":null,"metadata":{},"sourceType":"script"}