local MAJOR, MINOR = "DiesalStyle-2.0", 1
---@alias Diesal.Style DiesalStyle-2.0

---@class DiesalStyle-2.0
local DiesalStyle, oldminor = LibStub:NewLibrary(MAJOR, MINOR)

if not DiesalStyle then
    return
end -- No Upgrade needed.
-- ~~| Libraries |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local DiesalTools = LibStub("DiesalTools-2.0")
local LibSharedMedia = LibStub("LibSharedMedia-3.0")

-- ~~| Lib Upvalues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local GetIconCoords, HSL = DiesalTools.GetIconCoords, DiesalTools.HSL

-- ~~| Lua Upvalues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local type, select, pairs, tonumber = type, select, pairs, tonumber
local next = next
local format, sub = string.format, string.sub
local min, max = math.min, math.max

-- ~~| WoW Upvalues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local errorhandler = geterrorhandler()

-- ~~| DiesalStyle Values |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---@type { [string]: { [string]: string } }
DiesalStyle.Media = DiesalStyle.Media or {}
DiesalStyle.ReleasedTextures = DiesalStyle.ReleasedTextures or {}
DiesalStyle.TextureFrame = DiesalStyle.TextureFrame or CreateFrame("Frame")
DiesalStyle.TextureFrame:Hide()
DiesalStyle.Colors = DiesalStyle.Colors or {}
DiesalStyle.Formatters = DiesalStyle.Formatters or {}

-- ~~| DiesalStyle UpValues |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local AddonName = ...
---@type table<Diesal.Style.Texture, boolean>
local ReleasedTextures = DiesalStyle.ReleasedTextures
local TextureFrame = DiesalStyle.TextureFrame
local Media = DiesalStyle.Media
local Colors = DiesalStyle.Colors
local Formatters = DiesalStyle.Formatters

-- ~~| Locals |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local OUTLINES = { "_LEFT", "_RIGHT", "_TOP", "_BOTTOM" }
---@diagnostic disable-next-line: undefined-global
local MEDIA_PATH = MEDIA_PATH
    or type(AddonName) == "table" and string.format("Interface\\AddOns\\Media\\")
    or AddonName == "DiesalLibs" and string.format("Interface\\AddOns\\%s\\%s\\Media\\", AddonName, MAJOR)
    or string.format("Interface\\AddOns\\%s\\Libs\\%s\\Media\\", AddonName, MAJOR)
local DEFAULT_COLOR = "FFFFFF"
local DEFAULT_GRADIENT_ORIENTATION = "horizontal"
local DEFAULT_LAYER = "ARTWORK"

-- ~~| Local Methods |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
local function addMedia(mediaType, name, mediaFile)
    Media[mediaType] = Media[mediaType] or {}
    -- update or create new media entry
    Media[mediaType][name] = MEDIA_PATH .. mediaFile
end

local function getMedia(mediaType, name)
    if not Media[mediaType] then
        error("media type: " .. mediaType .. " does not exist", 2)
        return
    end
    if not Media[mediaType][name] then
        error('media: "' .. name .. '" does not exist', 2)
        return
    end
    return Media[mediaType][name]
end

local function newTexture()
    local nt = next(ReleasedTextures)
    if not nt then
        nt = TextureFrame:CreateTexture() --[[@as Diesal.Style.Texture]]
    else
        nt:Show()
        ReleasedTextures[nt] = nil
    end
    return nt
end

local function releaseTexture(texture)
    -- reset texture
    texture:ClearAllPoints()
    texture:SetDrawLayer("ARTWORK", 0)
    -- texture:SetTexCoord(0,1,0,1)
    -- specific order based on testing! for a close as possible full texture reset
    -- texture:SetGradientAlpha('HORIZONTAL',1,1,1,1,1,1,1,1)
    -- texture:SetColorTexture(0,0,0,0)
    -- texture:SetTexture()
    -- texture:SetVertexColor(1,1,1,1)

    texture:SetParent(TextureFrame)
    texture:Hide()
    texture.style = nil

    if ReleasedTextures[texture] then
        error("Attempt to Release a texture that is already released", 2)
    end
    ReleasedTextures[texture] = true
end

local function round(number, base)
    base = base or 1
    return floor((number + base / 2) / base) * base
end

local function GetBlizzColorValues(value)
    if not value then
        return
    end

    if type(value) == "table" and #value >= 3 then
        return value[1] / 255, value[2] / 255, value[3] / 255
    elseif type(value) == "string" then
        return tonumber(sub(value, 1, 2), 16) / 255, tonumber(sub(value, 3, 4), 16) / 255, tonumber(sub(value, 5, 6), 16) / 255
    end
end

local function formatCoords(coords)
    if type(coords) ~= "table" then
        return
    end

    if #coords == 5 then
        return { GetIconCoords(coords[1], coords[2], coords[3], coords[4], coords[5]) }
    else
        return coords
    end
end

local function formatFile(file)
    if type(file) ~= "string" and type(file) ~= "number" then
        return
    end

    return Media.texture[file] or file
end

local function formatPosition(position)
    if type(position) ~= "table" and type(position) ~= "number" then
        return
    end

    return type(position) == "number" and { position, position, position, position } or position
end

---@param orientation string
local function formatOrientation(orientation)
    if type(orientation) ~= "string" then
        return
    end

    return orientation:upper()
end

local function formatAlpha(alpha)
    if type(alpha) ~= "table" and type(alpha) ~= "number" then
        return
    end

    return type(alpha) == "number" and { alpha, alpha } or alpha
end

local function CreateColor(r, g, b, a)
    return {
        r = r or 0,
        g = g or 0,
        b = b or 0,
        a = a or 1,
    }
end

-- error handling
local function setColor(texture, r, g, b, a)
    local status, err = pcall(texture.SetColorTexture, texture, r, g, b, a)
    if not status then
        errorhandler('error in "' .. (texture.style.name or "texture") .. '" ' .. texture.style.mode .. " or alpha setting", r, g, b, a)
    end
end
local function setGradient(texture, orientation, r1, g1, b1, a1, r2, g2, b2, a2)
    local status, err = pcall(texture.SetGradient, texture, orientation, CreateColor(r1, g1, b1, a1), CreateColor(r2, g2, b2, a2))
    if not status then
        errorhandler('error in "' .. (texture.style.name or "texture") .. '" ' .. texture.style.mode .. " or alpha setting.")
    end
end
-- ~~| Media |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
do -- | Set Colors |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    do -- google material colors
        Colors.red_50 = "fde0dc"
        Colors.red_100 = "f9bdbb"
        Colors.red_200 = "f69988"
        Colors.red_300 = "f36c60"
        Colors.red_400 = "e84e40"
        Colors.red_500 = "e51c23"
        Colors.red_600 = "dd191d"
        Colors.red_700 = "d01716"
        Colors.red_800 = "c41411"
        Colors.red_900 = "b0120a"
        Colors.red_A100 = "FF8A80"
        Colors.red_A200 = "FF5252"
        Colors.red_A400 = "FF1744"
        Colors.red_A700 = "D50000"
        Colors.pink_50 = "fce4ec"
        Colors.pink_100 = "f8bbd0"
        Colors.pink_200 = "f48fb1"
        Colors.pink_300 = "f06292"
        Colors.pink_400 = "ec407a"
        Colors.pink_500 = "e91e63"
        Colors.pink_600 = "d81b60"
        Colors.pink_700 = "c2185b"
        Colors.pink_800 = "ad1457"
        Colors.pink_900 = "880e4f"
        Colors.pink_A100 = "FF80AB"
        Colors.pink_A200 = "FF4081"
        Colors.pink_A400 = "F50057"
        Colors.pink_A700 = "C51162"
        Colors.purple_50 = "f3e5f5"
        Colors.purple_100 = "e1bee7"
        Colors.purple_200 = "ce93d8"
        Colors.purple_300 = "ba68c8"
        Colors.purple_400 = "ab47bc"
        Colors.purple_500 = "9c27b0"
        Colors.purple_600 = "8e24aa"
        Colors.purple_700 = "7b1fa2"
        Colors.purple_800 = "6a1b9a"
        Colors.purple_900 = "4a148c"
        Colors.purple_A100 = "EA80FC"
        Colors.purple_A200 = "E040FB"
        Colors.purple_A400 = "D500F9"
        Colors.purple_A700 = "AA00FF"
        Colors.dark_purple_50 = "ede7f6"
        Colors.dark_purple_100 = "d1c4e9"
        Colors.dark_purple_200 = "b39ddb"
        Colors.dark_purple_300 = "9575cd"
        Colors.dark_purple_400 = "7e57c2"
        Colors.dark_purple_500 = "673ab7"
        Colors.dark_purple_600 = "5e35b1"
        Colors.dark_purple_700 = "512da8"
        Colors.dark_purple_800 = "4527a0"
        Colors.dark_purple_900 = "311b92"
        Colors.dark_purple_A100 = "B388FF"
        Colors.dark_purple_A200 = "7C4DFF"
        Colors.dark_purple_A400 = "651FFF"
        Colors.dark_purple_A700 = "6200EA"
        Colors.indigo_50 = "e8eaf6"
        Colors.indigo_100 = "c5cae9"
        Colors.indigo_200 = "9fa8da"
        Colors.indigo_300 = "7986cb"
        Colors.indigo_400 = "5c6bc0"
        Colors.indigo_500 = "3f51b5"
        Colors.indigo_600 = "3949ab"
        Colors.indigo_700 = "303f9f"
        Colors.indigo_800 = "283593"
        Colors.indigo_900 = "1a237e"
        Colors.indigo_A100 = "8C9EFF"
        Colors.indigo_A200 = "536DFE"
        Colors.indigo_A400 = "3D5AFE"
        Colors.indigo_A700 = "304FFE"
        Colors.blue_50 = "e7e9fd"
        Colors.blue_100 = "d0d9ff"
        Colors.blue_200 = "afbfff"
        Colors.blue_300 = "91a7ff"
        Colors.blue_400 = "738ffe"
        Colors.blue_500 = "5677fc"
        Colors.blue_600 = "4e6cef"
        Colors.blue_700 = "455ede"
        Colors.blue_800 = "3b50ce"
        Colors.blue_900 = "2a36b1"
        Colors.blue_A100 = "82B1FF"
        Colors.blue_A200 = "448AFF"
        Colors.blue_A400 = "2979FF"
        Colors.blue_A700 = "2962FF"
        Colors.light_blue_50 = "e1f5fe"
        Colors.light_blue_100 = "b3e5fc"
        Colors.light_blue_200 = "81d4fa"
        Colors.light_blue_300 = "4fc3f7"
        Colors.light_blue_400 = "29b6f6"
        Colors.light_blue_500 = "03a9f4"
        Colors.light_blue_600 = "039be5"
        Colors.light_blue_700 = "0288d1"
        Colors.light_blue_800 = "0277bd"
        Colors.light_blue_900 = "01579b"
        Colors.light_blue_A100 = "80D8FF"
        Colors.light_blue_A200 = "40C4FF"
        Colors.light_blue_A400 = "00B0FF"
        Colors.light_blue_A700 = "0091EA"
        Colors.cyan_50 = "e0f7fa"
        Colors.cyan_100 = "b2ebf2"
        Colors.cyan_200 = "80deea"
        Colors.cyan_300 = "4dd0e1"
        Colors.cyan_400 = "26c6da"
        Colors.cyan_500 = "00bcd4"
        Colors.cyan_600 = "00acc1"
        Colors.cyan_700 = "0097a7"
        Colors.cyan_800 = "00838f"
        Colors.cyan_900 = "006064"
        Colors.cyan_A100 = "84FFFF"
        Colors.cyan_A200 = "18FFFF"
        Colors.cyan_A400 = "00E5FF"
        Colors.cyan_A700 = "00B8D4"
        Colors.teal_50 = "e0f2f1"
        Colors.teal_100 = "b2dfdb"
        Colors.teal_200 = "80cbc4"
        Colors.teal_300 = "4db6ac"
        Colors.teal_400 = "26a69a"
        Colors.teal_500 = "009688"
        Colors.teal_600 = "00897b"
        Colors.teal_700 = "00796b"
        Colors.teal_800 = "00695c"
        Colors.teal_900 = "004d40"
        Colors.teal_A100 = "A7FFEB"
        Colors.teal_A200 = "64FFDA"
        Colors.teal_A400 = "1DE9B6"
        Colors.teal_A700 = "00BFA5"
        Colors.green_50 = "d0f8ce"
        Colors.green_100 = "a3e9a4"
        Colors.green_200 = "72d572"
        Colors.green_300 = "42bd41"
        Colors.green_400 = "2baf2b"
        Colors.green_500 = "4CAF50"
        Colors.green_600 = "0a8f08"
        Colors.green_700 = "0a7e07"
        Colors.green_800 = "056f00"
        Colors.green_900 = "0d5302"
        Colors.green_A100 = "B9F6CA"
        Colors.green_A200 = "69F0AE"
        Colors.green_A400 = "00E676"
        Colors.green_A700 = "00C853"
        Colors.light_green_50 = "f1f8e9"
        Colors.light_green_100 = "dcedc8"
        Colors.light_green_200 = "c5e1a5"
        Colors.light_green_300 = "aed581"
        Colors.light_green_400 = "9ccc65"
        Colors.light_green_500 = "8bc34a"
        Colors.light_green_600 = "7cb342"
        Colors.light_green_700 = "689f38"
        Colors.light_green_800 = "558b2f"
        Colors.light_green_900 = "33691e"
        Colors.light_green_A100 = "CCFF90"
        Colors.light_green_A200 = "B2FF59"
        Colors.light_green_A400 = "76FF03"
        Colors.light_green_A700 = "64DD17"
        Colors.lime_50 = "f9fbe7"
        Colors.lime_100 = "f0f4c3"
        Colors.lime_200 = "e6ee9c"
        Colors.lime_300 = "dce775"
        Colors.lime_400 = "d4e157"
        Colors.lime_500 = "cddc39"
        Colors.lime_600 = "c0ca33"
        Colors.lime_700 = "afb42b"
        Colors.lime_800 = "9e9d24"
        Colors.lime_900 = "827717"
        Colors.lime_A100 = "F4FF81"
        Colors.lime_A200 = "EEFF41"
        Colors.lime_A400 = "C6FF00"
        Colors.lime_A700 = "AEEA00"
        Colors.yellow_50 = "fffde7"
        Colors.yellow_100 = "fff9c4"
        Colors.yellow_200 = "fff59d"
        Colors.yellow_300 = "fff176"
        Colors.yellow_400 = "ffee58"
        Colors.yellow_500 = "ffeb3b"
        Colors.yellow_600 = "fdd835"
        Colors.yellow_700 = "fbc02d"
        Colors.yellow_800 = "f9a825"
        Colors.yellow_900 = "f57f17"
        Colors.yellow_A100 = "FFFF8D"
        Colors.yellow_A200 = "FFFF00"
        Colors.yellow_A400 = "FFEA00"
        Colors.yellow_A700 = "FFD600"
        Colors.amber_50 = "fff8e1"
        Colors.amber_100 = "ffecb3"
        Colors.amber_200 = "ffe082"
        Colors.amber_300 = "ffd54f"
        Colors.amber_400 = "ffca28"
        Colors.amber_500 = "ffc107"
        Colors.amber_600 = "ffb300"
        Colors.amber_700 = "ffa000"
        Colors.amber_800 = "ff8f00"
        Colors.amber_900 = "ff6f00"
        Colors.amber_A100 = "FFE57F"
        Colors.amber_A200 = "FFD740"
        Colors.amber_A400 = "FFC400"
        Colors.amber_A700 = "FFAB00"
        Colors.orange_50 = "fff3e0"
        Colors.orange_100 = "ffe0b2"
        Colors.orange_200 = "ffcc80"
        Colors.orange_300 = "ffb74d"
        Colors.orange_400 = "ffa726"
        Colors.orange_500 = "ff9800"
        Colors.orange_600 = "fb8c00"
        Colors.orange_700 = "f57c00"
        Colors.orange_800 = "ef6c00"
        Colors.orange_900 = "e65100"
        Colors.orange_A100 = "FFD180"
        Colors.orange_A200 = "FFAB40"
        Colors.orange_A400 = "FF9100"
        Colors.orange_A700 = "FF6D00"
        Colors.deep_orange_50 = "fbe9e7"
        Colors.deep_orange_100 = "ffccbc"
        Colors.deep_orange_200 = "ffab91"
        Colors.deep_orange_300 = "ff8a65"
        Colors.deep_orange_400 = "ff7043"
        Colors.deep_orange_500 = "ff5722"
        Colors.deep_orange_600 = "f4511e"
        Colors.deep_orange_700 = "e64a19"
        Colors.deep_orange_800 = "d84315"
        Colors.deep_orange_900 = "bf360c"
        Colors.deep_orange_A100 = "FF9E80"
        Colors.deep_orange_A200 = "FF6E40"
        Colors.deep_orange_A400 = "FF3D00"
        Colors.deep_orange_A700 = "DD2C00"
        Colors.brown_50 = "efebe9"
        Colors.brown_100 = "d7ccc8"
        Colors.brown_200 = "bcaaa4"
        Colors.brown_300 = "a1887f"
        Colors.brown_400 = "8d6e63"
        Colors.brown_500 = "795548"
        Colors.brown_600 = "6d4c41"
        Colors.brown_700 = "5d4037"
        Colors.brown_800 = "4e342e"
        Colors.brown_900 = "3e2723"
        Colors.gray_50 = "fafafa"
        Colors.gray_100 = "f5f5f5"
        Colors.gray_200 = "eee"
        Colors.gray_300 = "e0e0e0"
        Colors.gray_400 = "bdbdbd"
        Colors.gray_500 = "9e9e9e"
        Colors.gray_600 = "757575"
        Colors.gray_700 = "616161"
        Colors.gray_800 = "424242"
        Colors.gray_900 = "212121"
        Colors.blue_gray_50 = "eceff1"
        Colors.blue_gray_100 = "cfd8dc"
        Colors.blue_gray_200 = "b0bec5"
        Colors.blue_gray_300 = "90a4ae"
        Colors.blue_gray_400 = "78909c"
        Colors.blue_gray_500 = "607d8b"
        Colors.blue_gray_600 = "546e7a"
        Colors.blue_gray_700 = "455a64"
        Colors.blue_gray_800 = "37474f"
        Colors.blue_gray_900 = "263238"
    end
    do -- Base UI Colors
        Colors.UI_Hue = 210
        Colors.UI_Saturation = 0.24

        Colors.UI_TEXT = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.9)

        -- level 1
        Colors.UI_100 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.03) -- BG
        Colors.UI_150 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.05)
        -- level 2
        Colors.UI_200 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.07)
        -- level 3
        Colors.UI_300 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.12)
        Colors.UI_300_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.12), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.11) }
        Colors.UI_350 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.15)
        Colors.UI_350_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.17), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.14) }
        -- level 4
        Colors.UI_400 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.20)
        Colors.UI_400_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.20), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.17) }
        Colors.UI_450_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.24), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.20) }
        -- level 5
        Colors.UI_500 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.29)
        Colors.UI_500_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.29), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.26) }

        Colors.UI_600_GR = { HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.35), HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.32) }

        -- font Colors -35
        Colors.UI_F450 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.75)
        Colors.UI_F350 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 0.60)

        Colors.UI_1000 = HSL(Colors.UI_Hue, Colors.UI_Saturation, 1)

        Colors.UI_A900 = HSL(Colors.UI_Hue, 1, 0.7)
        Colors.UI_A800 = HSL(Colors.UI_Hue, 1, 0.65)
        Colors.UI_A700 = HSL(Colors.UI_Hue, 1, 0.6)
        Colors.UI_A600 = HSL(Colors.UI_Hue, 1, 0.55)
        Colors.UI_A500 = HSL(Colors.UI_Hue, 1, 0.5)
        Colors.UI_A400 = HSL(Colors.UI_Hue, 1, 0.45)
        Colors.UI_A300 = HSL(Colors.UI_Hue, 1, 0.4)
        Colors.UI_A200 = HSL(Colors.UI_Hue, 1, 0.35)
        Colors.UI_A100 = HSL(Colors.UI_Hue, 1, 0.3)
    end
    -- Class Colors
    do
        Colors.WARRIOR = "c79c6e"
        Colors.PALADIN = "f58cba"
        Colors.HUNTER = "abd473"
        Colors.ROGUE = "fff569"
        Colors.PRIEST = "ffffff"
        Colors.DEATHKNIGHT = "c41f3b"
        Colors.SHAMAN = "0070de"
        Colors.MAGE = "69ccf0"
        Colors.WARLOCK = "9482c9"
        Colors.MONK = "00ff96"
        Colors.DRUID = "ff7d0a"
        Colors.DEMONHUNTER = "a330c9"
        Colors.EVOKER = "33937f"
    end
end
do -- | Text Formatters |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Formatters.tooltip = "|cff" .. Colors.gray_50 .. "%s\n|cff" .. Colors.yellow_500 .. "%s"
end
do -- | Set Media |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    addMedia("font", "calibrib", "Fonts\\calibrib.ttf")
    addMedia("font", "DejaVuSansMono", "Fonts\\DejaVuSansMono.ttf") -- Monospaced
    addMedia("font", "DejaVuSansMonoBold", "Fonts\\DejaVuSansMono-Bold.ttf") -- Monospaced
    addMedia("font", "FFF Intelligent Thin Condensed", "Fonts\\FFF Intelligent Thin Condensed.ttf") -- pixel fonts
    addMedia("font", "FiraMonoBold", "Fonts\\FiraMono-Bold.ttf") -- Monospaced
    addMedia("font", "FiraMonoMedium", "Fonts\\FiraMono-Medium.ttf") -- Monospaced
    addMedia("font", "FiraMonoRegular", "Fonts\\FiraMono-Regular.ttf") -- Monospaced
    addMedia("font", "FiraSans", "Fonts\\FiraSans-Regular.ttf") -- pixel fonts
    addMedia("font", "HackBold", "Fonts\\Hack-Bold.ttf") -- Monospaced
    addMedia("font", "HackRegular", "Fonts\\Hack-Regular.ttf") -- Monospaced
    addMedia("font", "InconsolataBold", "Fonts\\Inconsolata-Bold.ttf") -- Monospaced
    addMedia("font", "InconsolataRegular", "Fonts\\Inconsolata-Regular.ttf") -- Monospaced
    addMedia("font", "LucidiaMono", "Fonts\\LUCON.ttf") -- Monospaced
    addMedia("font", "MaterialIcons", "Fonts\\MaterialIcons-Regular.ttf") -- Material
    addMedia("font", "MaterialIconsOutlinedTTF", "Fonts\\MaterialIconsOutlined-Regular.ttf") -- Material
    addMedia("font", "MaterialIconsOutlined", "Fonts\\MaterialIconsOutlined-Regular.otf") -- Material
    addMedia("font", "MaterialIconsRound", "Fonts\\MaterialIconsRound-Regular.otf") -- Material
    addMedia("font", "MaterialIconsSharp", "Fonts\\MaterialIconsSharp-Regular.otf") -- Material
    addMedia("font", "MaterialIconsTwoTone", "Fonts\\MaterialIconsTwoTone-Regular.otf") -- Material
    addMedia("font", "MaterialSymbolsRounded", "Fonts\\MaterialSymbolsRounded.ttf") -- Material
    addMedia("font", "MonoFur", "Fonts\\monof55.ttf") -- Monospaced
    addMedia("font", "MonoFurItalic", "Fonts\\monof56.ttf") -- Monospaced
    addMedia("font", "OfficeCodeProBold", "Fonts\\OfficeCodePro-Bold.ttf") -- Monospaced
    addMedia("font", "OfficeCodeProMedium", "Fonts\\OfficeCodePro-Medium.ttf") -- Monospaced
    addMedia("font", "OfficeCodeProRegular", "Fonts\\OfficeCodePro-Regular.ttf") -- Monospaced
    addMedia("font", "RobotoMonoBold", "Fonts\\RobotoMono-Bold.ttf") -- Monospaced
    addMedia("font", "RobotoMonoMedium", "Fonts\\RobotoMono-Medium.ttf") -- Monospaced
    addMedia("font", "RobotoMonoRegular", "Fonts\\RobotoMono-Regular.ttf") -- Monospaced
    addMedia("font", "SourceCodeProBlack", "Fonts\\SourceCodePro-Black.ttf") -- Monospaced
    addMedia("font", "SourceCodeProBold", "Fonts\\SourceCodePro-Bold.ttf") -- Monospaced
    addMedia("font", "SourceCodeProMedium", "Fonts\\SourceCodePro-Medium.ttf") -- Monospaced
    addMedia("font", "SourceCodeProRegular", "Fonts\\SourceCodePro-Regular.ttf") -- Monospaced
    addMedia("font", "SourceCodeProSemibold", "Fonts\\SourceCodePro-Semibold.ttf") -- Monospaced
    addMedia("font", "Standard0755", "Fonts\\Standard0755.ttf") -- pixel fonts
    addMedia("font", "UbuntuMonoBold", "Fonts\\UbuntuMono-B.ttf") -- Monospaced
    addMedia("font", "UbuntuMonoRegular", "Fonts\\UbuntuMono-R.ttf") -- Monospaced

    addMedia("texture", "DiesalGUIcons", "Textures\\DiesalGUIcons16x256x128.tga") -- Icon Textures
    addMedia("texture", "DiesalGUIcons64", "Textures\\DiesalGUIcons64x256x256.tga") -- Icon Textures
    addMedia("texture", "DiesalGUIcons32", "Textures\\DiesalGUIcons32x256x256.tga") -- Icons Textures
    addMedia("texture", "DiesalButtonIcons32", "Textures\\DiesalButtonIcons32x128x512.tga") -- Icons Textures

    addMedia("border", "shadow", "Textures\\shadow.tga") -- Shadows
    addMedia("border", "shadowNoDist", "Textures\\shadowNoDist.tga") -- Shadows
end

do
    local font = getMedia("font", "MaterialSymbolsRounded")
    if font then
        MaterialSymbolsRounded = CreateFont("MaterialSymbolsRounded")
        MaterialSymbolsRounded:SetFont(font, 20, "")
        MaterialSymbolsRounded:SetJustifyH("CENTER")
        MaterialSymbolsRounded:SetJustifyV("MIDDLE")
        --MaterialIconsRegular = MaterialSymbolsRounded
    end
end

do -- | Add LibSharedMedia |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    local font = getMedia("font", "calibrib")
    if font then
        LibSharedMedia:Register("font", "Calibri Bold", font)
    end
    font = getMedia("font", "FiraSans")
    if font then
        LibSharedMedia:Register("font", "Fira Sans", font)
    end
    -- monospaced
    -- LibSharedMedia:Register("font","DejaVuSansMono",getMedia('font','DejaVuSansMono'))
    -- LibSharedMedia:Register("font","Hack",getMedia('font','Hack'))
    -- LibSharedMedia:Register("font","Inconsolata",getMedia('font','Inconsolata'))
    -- LibSharedMedia:Register("font","Fira Sans",getMedia('font','FiraSans'))
    -- LibSharedMedia:Register("font","Source Code Pro",getMedia('font','SourceCodePro'))
    -- pixel fonts
    font = getMedia("font", "Standard0755")
    if font then
        LibSharedMedia:Register("font", "Standard0755", font)
    end
    font = getMedia("font", "FFF Intelligent Thin Condensed")
    if font then
        LibSharedMedia:Register("font", "FFF Intelligent", font)
    end
end
do -- | Set Fonts |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    local font = getMedia("font", "calibrib")
    if font then
        DiesalFontNormal = CreateFont("DiesalFontNormal")
        DiesalFontNormal:SetFont(font, 11, "")
    end

    local font = getMedia("font", "calibrib")
    if font then
        DiesalFontNormalOutline = CreateFont("DiesalFontNormalOutline")
        DiesalFontNormalOutline:SetFont(font, 11, "OUTLINE")
    end

    font = getMedia("font", "Standard0755")
    if font then
        DiesalFontPixel = CreateFont("DiesalFontPixel")
        DiesalFontPixel:SetFont(font, 8, "")
    end

    font = getMedia("font", "Standard0755")
    if font then
        DiesalFontPixelOutLine = CreateFont("DiesalFontPixelOutLine")
        DiesalFontPixelOutLine:SetFont(font, 8, "OUTLINE, MONOCHROME")
        DiesalFontPixelOutLine:SetSpacing(2)
    end

    font = getMedia("font", "FFF Intelligent Thin Condensed")
    if font then
        DiesalFontPixel2 = CreateFont("DiesalFontPixel2")
        DiesalFontPixel2:SetFont(font, 8, "OUTLINE, MONOCHROME")
    end
end

do -- Set Material Icons
    DiesalStyle.MaterialIcons = DiesalStyle.MaterialIcons or {}

    local MaterialIcons = DiesalStyle.MaterialIcons

    MaterialIcons.bytes = {
        ["10k"] = 0xe951,
        ["10mp"] = 0xe952,
        ["11mp"] = 0xe953,
        ["123"] = 0xeb8d,
        ["12mp"] = 0xe954,
        ["13mp"] = 0xe955,
        ["14mp"] = 0xe956,
        ["15mp"] = 0xe957,
        ["16mp"] = 0xe958,
        ["17mp"] = 0xe959,
        ["18_up_rating"] = 0xf8fd,
        ["18mp"] = 0xe95a,
        ["19mp"] = 0xe95b,
        ["1k"] = 0xe95c,
        ["1k_plus"] = 0xe95d,
        ["1x_mobiledata"] = 0xefcd,
        ["1x_mobiledata_badge"] = 0xf7f1,
        ["20mp"] = 0xe95e,
        ["21mp"] = 0xe95f,
        ["22mp"] = 0xe960,
        ["23mp"] = 0xe961,
        ["24mp"] = 0xe962,
        ["2d"] = 0xef37,
        ["2k"] = 0xe963,
        ["2k_plus"] = 0xe964,
        ["2mp"] = 0xe965,
        ["30fps"] = 0xefce,
        ["30fps_select"] = 0xefcf,
        ["360"] = 0xe577,
        ["3d_rotation"] = 0xe84d,
        ["3g_mobiledata"] = 0xefd0,
        ["3g_mobiledata_badge"] = 0xf7f0,
        ["3k"] = 0xe966,
        ["3k_plus"] = 0xe967,
        ["3mp"] = 0xe968,
        ["3p"] = 0xefd1,
        ["4g_mobiledata"] = 0xefd2,
        ["4g_mobiledata_badge"] = 0xf7ef,
        ["4g_plus_mobiledata"] = 0xefd3,
        ["4k"] = 0xe072,
        ["4k_plus"] = 0xe969,
        ["4mp"] = 0xe96a,
        ["50mp"] = 0xf6f3,
        ["5g"] = 0xef38,
        ["5g_mobiledata_badge"] = 0xf7ee,
        ["5k"] = 0xe96b,
        ["5k_plus"] = 0xe96c,
        ["5mp"] = 0xe96d,
        ["60fps"] = 0xefd4,
        ["60fps_select"] = 0xefd5,
        ["6_ft_apart"] = 0xf21e,
        ["6k"] = 0xe96e,
        ["6k_plus"] = 0xe96f,
        ["6mp"] = 0xe970,
        ["7k"] = 0xe971,
        ["7k_plus"] = 0xe972,
        ["7mp"] = 0xe973,
        ["8k"] = 0xe974,
        ["8k_plus"] = 0xe975,
        ["8mp"] = 0xe976,
        ["9k"] = 0xe977,
        ["9k_plus"] = 0xe978,
        ["9mp"] = 0xe979,
        ["abc"] = 0xeb94,
        ["ac_unit"] = 0xeb3b,
        ["access_alarm"] = 0xe855,
        ["access_alarms"] = 0xe855,
        ["access_time"] = 0xefd6,
        ["access_time_filled"] = 0xefd6,
        ["accessibility"] = 0xe84e,
        ["accessibility_new"] = 0xe92c,
        ["accessible"] = 0xe914,
        ["accessible_forward"] = 0xe934,
        ["account_balance"] = 0xe84f,
        ["account_balance_wallet"] = 0xe850,
        ["account_box"] = 0xe851,
        ["account_child"] = 0xe852,
        ["account_child_invert"] = 0xe659,
        ["account_circle"] = 0xf20b,
        ["account_circle_filled"] = 0xf20b,
        ["account_circle_off"] = 0xf7b3,
        ["account_tree"] = 0xe97a,
        ["action_key"] = 0xf502,
        ["activity_zone"] = 0xe1e6,
        ["acute"] = 0xe4cb,
        ["ad"] = 0xe65a,
        ["ad_group"] = 0xe65b,
        ["ad_group_off"] = 0xeae5,
        ["ad_off"] = 0xf7b2,
        ["ad_units"] = 0xef39,
        ["adb"] = 0xe60e,
        ["add"] = 0xe145,
        ["add_a_photo"] = 0xe439,
        ["add_ad"] = 0xe72a,
        ["add_alarm"] = 0xe856,
        ["add_alert"] = 0xe003,
        ["add_box"] = 0xe146,
        ["add_business"] = 0xe729,
        ["add_call"] = 0xf0b7,
        ["add_card"] = 0xeb86,
        ["add_chart"] = 0xef3c,
        ["add_circle"] = 0xe3ba,
        ["add_circle_outline"] = 0xe3ba,
        ["add_comment"] = 0xe266,
        ["add_home"] = 0xf8eb,
        ["add_home_work"] = 0xf8ed,
        ["add_ic_call"] = 0xf0b7,
        ["add_link"] = 0xe178,
        ["add_location"] = 0xe567,
        ["add_location_alt"] = 0xef3a,
        ["add_moderator"] = 0xe97d,
        ["add_notes"] = 0xe091,
        ["add_photo_alternate"] = 0xe43e,
        ["add_reaction"] = 0xe1d3,
        ["add_road"] = 0xef3b,
        ["add_shopping_cart"] = 0xe854,
        ["add_task"] = 0xf23a,
        ["add_to_drive"] = 0xe65c,
        ["add_to_home_screen"] = 0xe1fe,
        ["add_to_photos"] = 0xe39d,
        ["add_to_queue"] = 0xe05c,
        ["addchart"] = 0xef3c,
        ["adf_scanner"] = 0xeada,
        ["adjust"] = 0xe39e,
        ["admin_meds"] = 0xe48d,
        ["admin_panel_settings"] = 0xef3d,
        ["ads_click"] = 0xe762,
        ["agender"] = 0xf888,
        ["agriculture"] = 0xea79,
        ["air"] = 0xefd8,
        ["air_freshener"] = 0xe2ca,
        ["air_purifier"] = 0xe97e,
        ["air_purifier_gen"] = 0xe829,
        ["airline_seat_flat"] = 0xe630,
        ["airline_seat_flat_angled"] = 0xe631,
        ["airline_seat_individual_suite"] = 0xe632,
        ["airline_seat_legroom_extra"] = 0xe633,
        ["airline_seat_legroom_normal"] = 0xe634,
        ["airline_seat_legroom_reduced"] = 0xe635,
        ["airline_seat_recline_extra"] = 0xe636,
        ["airline_seat_recline_normal"] = 0xe637,
        ["airline_stops"] = 0xe7d0,
        ["airlines"] = 0xe7ca,
        ["airplane_ticket"] = 0xefd9,
        ["airplanemode_active"] = 0xe53d,
        ["airplanemode_inactive"] = 0xe194,
        ["airplay"] = 0xe055,
        ["airport_shuttle"] = 0xeb3c,
        ["airware"] = 0xf154,
        ["airwave"] = 0xf154,
        ["alarm"] = 0xe855,
        ["alarm_add"] = 0xe856,
        ["alarm_off"] = 0xe857,
        ["alarm_on"] = 0xe858,
        ["alarm_smart_wake"] = 0xf6b0,
        ["album"] = 0xe019,
        ["align_center"] = 0xe356,
        ["align_end"] = 0xf797,
        ["align_flex_center"] = 0xf796,
        ["align_flex_end"] = 0xf795,
        ["align_flex_start"] = 0xf794,
        ["align_horizontal_center"] = 0xe00f,
        ["align_horizontal_left"] = 0xe00d,
        ["align_horizontal_right"] = 0xe010,
        ["align_items_stretch"] = 0xf793,
        ["align_justify_center"] = 0xf792,
        ["align_justify_flex_end"] = 0xf791,
        ["align_justify_flex_start"] = 0xf790,
        ["align_justify_space_around"] = 0xf78f,
        ["align_justify_space_between"] = 0xf78e,
        ["align_justify_space_even"] = 0xf78d,
        ["align_justify_stretch"] = 0xf78c,
        ["align_self_stretch"] = 0xf78b,
        ["align_space_around"] = 0xf78a,
        ["align_space_between"] = 0xf789,
        ["align_space_even"] = 0xf788,
        ["align_start"] = 0xf787,
        ["align_stretch"] = 0xf786,
        ["align_vertical_bottom"] = 0xe015,
        ["align_vertical_center"] = 0xe011,
        ["align_vertical_top"] = 0xe00c,
        ["all_inbox"] = 0xe97f,
        ["all_inclusive"] = 0xeb3d,
        ["all_match"] = 0xe093,
        ["all_out"] = 0xe90b,
        ["allergies"] = 0xe094,
        ["allergy"] = 0xe64e,
        ["alt_route"] = 0xf184,
        ["alternate_email"] = 0xe0e6,
        ["altitude"] = 0xf873,
        ["ambient_screen"] = 0xf6c4,
        ["ambulance"] = 0xf803,
        ["amend"] = 0xf802,
        ["amp_stories"] = 0xea13,
        ["analytics"] = 0xef3e,
        ["anchor"] = 0xf1cd,
        ["android"] = 0xe859,
        ["animation"] = 0xe71c,
        ["announcement"] = 0xe87f,
        ["aod"] = 0xefda,
        ["aod_tablet"] = 0xf89f,
        ["aod_watch"] = 0xf6ac,
        ["apartment"] = 0xea40,
        ["api"] = 0xf1b7,
        ["apk_document"] = 0xf88e,
        ["apk_install"] = 0xf88f,
        ["app_badging"] = 0xf72f,
        ["app_blocking"] = 0xef3f,
        ["app_promo"] = 0xe981,
        ["app_registration"] = 0xef40,
        ["app_settings_alt"] = 0xef41,
        ["app_shortcut"] = 0xeae4,
        ["apparel"] = 0xef7b,
        ["approval"] = 0xe982,
        ["approval_delegation"] = 0xf84a,
        ["apps"] = 0xe5c3,
        ["apps_outage"] = 0xe7cc,
        ["aq"] = 0xf55a,
        ["aq_indoor"] = 0xf55b,
        ["ar_on_you"] = 0xef7c,
        ["ar_stickers"] = 0xe983,
        ["architecture"] = 0xea3b,
        ["archive"] = 0xe149,
        ["area_chart"] = 0xe770,
        ["arming_countdown"] = 0xe78a,
        ["arrow_and_edge"] = 0xf5d7,
        ["arrow_back"] = 0xe5c4,
        ["arrow_back_ios"] = 0xe5e0,
        ["arrow_back_ios_new"] = 0xe2ea,
        ["arrow_circle_down"] = 0xf181,
        ["arrow_circle_left"] = 0xeaa7,
        ["arrow_circle_right"] = 0xeaaa,
        ["arrow_circle_up"] = 0xf182,
        ["arrow_downward"] = 0xe5db,
        ["arrow_downward_alt"] = 0xe984,
        ["arrow_drop_down"] = 0xe5c5,
        ["arrow_drop_down_circle"] = 0xe5c6,
        ["arrow_drop_up"] = 0xe5c7,
        ["arrow_forward"] = 0xe5c8,
        ["arrow_forward_ios"] = 0xe5e1,
        ["arrow_insert"] = 0xf837,
        ["arrow_left"] = 0xe5de,
        ["arrow_left_alt"] = 0xef7d,
        ["arrow_or_edge"] = 0xf5d6,
        ["arrow_outward"] = 0xf8ce,
        ["arrow_range"] = 0xf69b,
        ["arrow_right"] = 0xe5df,
        ["arrow_right_alt"] = 0xe941,
        ["arrow_selector_tool"] = 0xf82f,
        ["arrow_split"] = 0xea04,
        ["arrow_top_left"] = 0xf72e,
        ["arrow_top_right"] = 0xf72d,
        ["arrow_upward"] = 0xe5d8,
        ["arrow_upward_alt"] = 0xe986,
        ["arrows_more_down"] = 0xf8ab,
        ["arrows_more_up"] = 0xf8ac,
        ["arrows_outward"] = 0xf72c,
        ["art_track"] = 0xe060,
        ["article"] = 0xef42,
        ["article_shortcut"] = 0xf587,
        ["artist"] = 0xe01a,
        ["aspect_ratio"] = 0xe85b,
        ["assessment"] = 0xf0cc,
        ["assignment"] = 0xe85d,
        ["assignment_add"] = 0xf848,
        ["assignment_ind"] = 0xe85e,
        ["assignment_late"] = 0xe85f,
        ["assignment_return"] = 0xe860,
        ["assignment_returned"] = 0xe861,
        ["assignment_turned_in"] = 0xe862,
        ["assist_walker"] = 0xf8d5,
        ["assistant"] = 0xe39f,
        ["assistant_device"] = 0xe987,
        ["assistant_direction"] = 0xe988,
        ["assistant_navigation"] = 0xe989,
        ["assistant_on_hub"] = 0xf6c1,
        ["assistant_photo"] = 0xf0c6,
        ["assured_workload"] = 0xeb6f,
        ["asterisk"] = 0xf525,
        ["astrophotography_auto"] = 0xf1d9,
        ["astrophotography_off"] = 0xf1da,
        ["atm"] = 0xe573,
        ["atr"] = 0xebc7,
        ["attach_email"] = 0xea5e,
        ["attach_file"] = 0xe226,
        ["attach_file_add"] = 0xf841,
        ["attach_file_off"] = 0xf4d9,
        ["attach_money"] = 0xe227,
        ["attachment"] = 0xe2bc,
        ["attractions"] = 0xea52,
        ["attribution"] = 0xefdb,
        ["audio_description"] = 0xf58c,
        ["audio_file"] = 0xeb82,
        ["audio_video_receiver"] = 0xf5d3,
        ["audiotrack"] = 0xe405,
        ["auto_activity_zone"] = 0xf8ad,
        ["auto_awesome"] = 0xe65f,
        ["auto_awesome_mosaic"] = 0xe660,
        ["auto_awesome_motion"] = 0xe661,
        ["auto_delete"] = 0xea4c,
        ["auto_detect_voice"] = 0xf83e,
        ["auto_draw_solid"] = 0xe98a,
        ["auto_fix"] = 0xe663,
        ["auto_fix_high"] = 0xe663,
        ["auto_fix_normal"] = 0xe664,
        ["auto_fix_off"] = 0xe665,
        ["auto_graph"] = 0xe4fb,
        ["auto_label"] = 0xf6be,
        ["auto_meeting_room"] = 0xf6bf,
        ["auto_mode"] = 0xec20,
        ["auto_read_pause"] = 0xf219,
        ["auto_read_play"] = 0xf216,
        ["auto_schedule"] = 0xe214,
        ["auto_stories"] = 0xe666,
        ["auto_timer"] = 0xef7f,
        ["auto_towing"] = 0xe71e,
        ["auto_transmission"] = 0xf53f,
        ["auto_videocam"] = 0xf6c0,
        ["autofps_select"] = 0xefdc,
        ["autopause"] = 0xf6b6,
        ["autopay"] = 0xf84b,
        ["autoplay"] = 0xf6b5,
        ["autorenew"] = 0xe863,
        ["autostop"] = 0xf682,
        ["av_timer"] = 0xe01b,
        ["avg_pace"] = 0xf6bb,
        ["avg_time"] = 0xf813,
        ["award_star"] = 0xf612,
        ["azm"] = 0xf6ec,
        ["baby_changing_station"] = 0xf19b,
        ["back_hand"] = 0xe764,
        ["back_to_tab"] = 0xf72b,
        ["background_dot_large"] = 0xf79e,
        ["background_dot_small"] = 0xf514,
        ["background_grid_small"] = 0xf79d,
        ["background_replace"] = 0xf20a,
        ["backlight_high"] = 0xf7ed,
        ["backlight_high_off"] = 0xf4ef,
        ["backlight_low"] = 0xf7ec,
        ["backpack"] = 0xf19c,
        ["backspace"] = 0xe14a,
        ["backup"] = 0xe864,
        ["backup_table"] = 0xef43,
        ["badge"] = 0xea67,
        ["badge_critical_battery"] = 0xf156,
        ["bakery_dining"] = 0xea53,
        ["balance"] = 0xeaf6,
        ["balcony"] = 0xe58f,
        ["ballot"] = 0xe172,
        ["bar_chart"] = 0xe26b,
        ["bar_chart_4_bars"] = 0xf681,
        ["barcode"] = 0xe70b,
        ["barcode_reader"] = 0xf85c,
        ["barcode_scanner"] = 0xe70c,
        ["barefoot"] = 0xf871,
        ["batch_prediction"] = 0xf0f5,
        ["bath_outdoor"] = 0xf6fb,
        ["bath_private"] = 0xf6fa,
        ["bath_public_large"] = 0xf6f9,
        ["bathroom"] = 0xefdd,
        ["bathtub"] = 0xea41,
        ["battery_0_bar"] = 0xebdc,
        ["battery_1_bar"] = 0xf09c,
        ["battery_20"] = 0xf09c,
        ["battery_2_bar"] = 0xf09d,
        ["battery_30"] = 0xf09d,
        ["battery_3_bar"] = 0xf09e,
        ["battery_4_bar"] = 0xf09f,
        ["battery_50"] = 0xf09e,
        ["battery_5_bar"] = 0xf0a0,
        ["battery_60"] = 0xf09f,
        ["battery_6_bar"] = 0xf0a1,
        ["battery_80"] = 0xf0a0,
        ["battery_90"] = 0xf0a1,
        ["battery_alert"] = 0xe19c,
        ["battery_change"] = 0xf7eb,
        ["battery_charging_20"] = 0xf0a2,
        ["battery_charging_30"] = 0xf0a3,
        ["battery_charging_50"] = 0xf0a4,
        ["battery_charging_60"] = 0xf0a5,
        ["battery_charging_80"] = 0xf0a6,
        ["battery_charging_90"] = 0xf0a7,
        ["battery_charging_full"] = 0xe1a3,
        ["battery_error"] = 0xf7ea,
        ["battery_full"] = 0xe1a5,
        ["battery_full_alt"] = 0xf13b,
        ["battery_horiz_000"] = 0xf8ae,
        ["battery_horiz_050"] = 0xf8af,
        ["battery_horiz_075"] = 0xf8b0,
        ["battery_low"] = 0xf155,
        ["battery_plus"] = 0xf7e9,
        ["battery_profile"] = 0xe206,
        ["battery_saver"] = 0xefde,
        ["battery_share"] = 0xf67e,
        ["battery_status_good"] = 0xf67d,
        ["battery_std"] = 0xe1a5,
        ["battery_unknown"] = 0xe1a6,
        ["battery_vert_005"] = 0xf8b1,
        ["battery_vert_020"] = 0xf8b2,
        ["battery_vert_050"] = 0xf8b3,
        ["battery_very_low"] = 0xf156,
        ["beach_access"] = 0xeb3e,
        ["bed"] = 0xefdf,
        ["bedroom_baby"] = 0xefe0,
        ["bedroom_child"] = 0xefe1,
        ["bedroom_parent"] = 0xefe2,
        ["bedtime"] = 0xef44,
        ["bedtime_off"] = 0xeb76,
        ["beenhere"] = 0xe52d,
        ["bento"] = 0xf1f4,
        ["bia"] = 0xf6eb,
        ["bid_landscape"] = 0xe678,
        ["bid_landscape_disabled"] = 0xef81,
        ["bigtop_updates"] = 0xe669,
        ["bike_scooter"] = 0xef45,
        ["biotech"] = 0xea3a,
        ["blanket"] = 0xe828,
        ["blender"] = 0xefe3,
        ["blind"] = 0xf8d6,
        ["blinds"] = 0xe286,
        ["blinds_closed"] = 0xec1f,
        ["block"] = 0xf08c,
        ["blood_pressure"] = 0xe097,
        ["bloodtype"] = 0xefe4,
        ["bluetooth"] = 0xe1a7,
        ["bluetooth_audio"] = 0xe60f,
        ["bluetooth_connected"] = 0xe1a8,
        ["bluetooth_disabled"] = 0xe1a9,
        ["bluetooth_drive"] = 0xefe5,
        ["bluetooth_searching"] = 0xe60f,
        ["blur_circular"] = 0xe3a2,
        ["blur_linear"] = 0xe3a3,
        ["blur_medium"] = 0xe84c,
        ["blur_off"] = 0xe3a4,
        ["blur_on"] = 0xe3a5,
        ["blur_short"] = 0xe8cf,
        ["body_fat"] = 0xe098,
        ["body_system"] = 0xe099,
        ["bolt"] = 0xea0b,
        ["bomb"] = 0xf568,
        ["book"] = 0xe86e,
        ["book_2"] = 0xf53e,
        ["book_3"] = 0xf53d,
        ["book_4"] = 0xf53c,
        ["book_5"] = 0xf53b,
        ["book_online"] = 0xf217,
        ["bookmark"] = 0xe8e7,
        ["bookmark_add"] = 0xe598,
        ["bookmark_added"] = 0xe599,
        ["bookmark_border"] = 0xe8e7,
        ["bookmark_manager"] = 0xf7b1,
        ["bookmark_remove"] = 0xe59a,
        ["bookmarks"] = 0xe98b,
        ["border_all"] = 0xe228,
        ["border_bottom"] = 0xe229,
        ["border_clear"] = 0xe22a,
        ["border_color"] = 0xe22b,
        ["border_horizontal"] = 0xe22c,
        ["border_inner"] = 0xe22d,
        ["border_left"] = 0xe22e,
        ["border_outer"] = 0xe22f,
        ["border_right"] = 0xe230,
        ["border_style"] = 0xe231,
        ["border_top"] = 0xe232,
        ["border_vertical"] = 0xe233,
        ["bottom_app_bar"] = 0xe730,
        ["bottom_drawer"] = 0xe72d,
        ["bottom_navigation"] = 0xe98c,
        ["bottom_panel_close"] = 0xf72a,
        ["bottom_panel_open"] = 0xf729,
        ["bottom_right_click"] = 0xf684,
        ["bottom_sheets"] = 0xe98d,
        ["box"] = 0xf5a4,
        ["box_add"] = 0xf5a5,
        ["box_edit"] = 0xf5a6,
        ["boy"] = 0xeb67,
        ["brand_awareness"] = 0xe98e,
        ["brand_family"] = 0xf4f1,
        ["branding_watermark"] = 0xe06b,
        ["breakfast_dining"] = 0xea54,
        ["breaking_news"] = 0xea08,
        ["breaking_news_alt_1"] = 0xf0ba,
        ["breastfeeding"] = 0xf856,
        ["brightness_1"] = 0xe3fa,
        ["brightness_2"] = 0xf036,
        ["brightness_3"] = 0xe3a8,
        ["brightness_4"] = 0xe3a9,
        ["brightness_5"] = 0xe3aa,
        ["brightness_6"] = 0xe3ab,
        ["brightness_7"] = 0xe3ac,
        ["brightness_alert"] = 0xf5cf,
        ["brightness_auto"] = 0xe1ab,
        ["brightness_empty"] = 0xf7e8,
        ["brightness_high"] = 0xe1ac,
        ["brightness_low"] = 0xe1ad,
        ["brightness_medium"] = 0xe1ae,
        ["bring_your_own_ip"] = 0xe016,
        ["broadcast_on_home"] = 0xf8f8,
        ["broadcast_on_personal"] = 0xf8f9,
        ["broken_image"] = 0xe3ad,
        ["browse"] = 0xeb13,
        ["browse_activity"] = 0xf8a5,
        ["browse_gallery"] = 0xebd1,
        ["browser_not_supported"] = 0xef47,
        ["browser_updated"] = 0xe7cf,
        ["brunch_dining"] = 0xea73,
        ["brush"] = 0xe3ae,
        ["bubble"] = 0xef83,
        ["bubble_chart"] = 0xe6dd,
        ["bubbles"] = 0xf64e,
        ["bug_report"] = 0xe868,
        ["build"] = 0xf8cd,
        ["build_circle"] = 0xef48,
        ["bungalow"] = 0xe591,
        ["burst_mode"] = 0xe43c,
        ["bus_alert"] = 0xe98f,
        ["business"] = 0xe7ee,
        ["business_center"] = 0xeb3f,
        ["business_chip"] = 0xf84c,
        ["business_messages"] = 0xef84,
        ["buttons_alt"] = 0xe72f,
        ["cabin"] = 0xe589,
        ["cable"] = 0xefe6,
        ["cached"] = 0xe86a,
        ["cake"] = 0xe7e9,
        ["cake_add"] = 0xf85b,
        ["calculate"] = 0xea5f,
        ["calendar_add_on"] = 0xef85,
        ["calendar_apps_script"] = 0xf0bb,
        ["calendar_clock"] = 0xf540,
        ["calendar_month"] = 0xebcc,
        ["calendar_today"] = 0xe935,
        ["calendar_view_day"] = 0xe936,
        ["calendar_view_month"] = 0xefe7,
        ["calendar_view_week"] = 0xefe8,
        ["call"] = 0xf0d4,
        ["call_end"] = 0xf0bc,
        ["call_end_alt"] = 0xf0bc,
        ["call_log"] = 0xe08e,
        ["call_made"] = 0xe0b2,
        ["call_merge"] = 0xe0b3,
        ["call_missed"] = 0xe0b4,
        ["call_missed_outgoing"] = 0xe0e4,
        ["call_quality"] = 0xf652,
        ["call_received"] = 0xe0b5,
        ["call_split"] = 0xe0b6,
        ["call_to_action"] = 0xe06c,
        ["camera"] = 0xe3af,
        ["camera_alt"] = 0xe412,
        ["camera_enhance"] = 0xe8fc,
        ["camera_front"] = 0xe3b1,
        ["camera_indoor"] = 0xefe9,
        ["camera_outdoor"] = 0xefea,
        ["camera_rear"] = 0xe3b2,
        ["camera_roll"] = 0xe3b3,
        ["camera_video"] = 0xf7a6,
        ["cameraswitch"] = 0xefeb,
        ["campaign"] = 0xef49,
        ["camping"] = 0xf8a2,
        ["cancel"] = 0xe888,
        ["cancel_presentation"] = 0xe0e9,
        ["cancel_schedule_send"] = 0xea39,
        ["candle"] = 0xf588,
        ["candlestick_chart"] = 0xead4,
        ["captive_portal"] = 0xf728,
        ["capture"] = 0xf727,
        ["car_crash"] = 0xebf2,
        ["car_rental"] = 0xea55,
        ["car_repair"] = 0xea56,
        ["car_tag"] = 0xf4e3,
        ["card_giftcard"] = 0xe8f6,
        ["card_membership"] = 0xe8f7,
        ["card_travel"] = 0xe8f8,
        ["cardiology"] = 0xe09c,
        ["cards"] = 0xe991,
        ["carpenter"] = 0xf1f8,
        ["carry_on_bag"] = 0xeb08,
        ["carry_on_bag_checked"] = 0xeb0b,
        ["carry_on_bag_inactive"] = 0xeb0a,
        ["carry_on_bag_question"] = 0xeb09,
        ["cases"] = 0xe992,
        ["casino"] = 0xeb40,
        ["cast"] = 0xe307,
        ["cast_connected"] = 0xe308,
        ["cast_for_education"] = 0xefec,
        ["cast_pause"] = 0xf5f0,
        ["cast_warning"] = 0xf5ef,
        ["castle"] = 0xeab1,
        ["category"] = 0xe574,
        ["celebration"] = 0xea65,
        ["cell_merge"] = 0xf82e,
        ["cell_tower"] = 0xebba,
        ["cell_wifi"] = 0xe0ec,
        ["center_focus_strong"] = 0xe3b4,
        ["center_focus_weak"] = 0xe3b5,
        ["chair"] = 0xefed,
        ["chair_alt"] = 0xefee,
        ["chalet"] = 0xe585,
        ["change_circle"] = 0xe2e7,
        ["change_history"] = 0xe86b,
        ["charger"] = 0xe2ae,
        ["charging_station"] = 0xf19d,
        ["chart_data"] = 0xe473,
        ["chat"] = 0xe0c9,
        ["chat_add_on"] = 0xf0f3,
        ["chat_apps_script"] = 0xf0bd,
        ["chat_bubble"] = 0xe0cb,
        ["chat_bubble_outline"] = 0xe0cb,
        ["chat_error"] = 0xf7ac,
        ["chat_info"] = 0xf52b,
        ["chat_paste_go"] = 0xf6bd,
        ["check"] = 0xe5ca,
        ["check_box"] = 0xe834,
        ["check_box_outline_blank"] = 0xe835,
        ["check_circle"] = 0xf0be,
        ["check_circle_filled"] = 0xf0be,
        ["check_circle_outline"] = 0xf0be,
        ["check_in_out"] = 0xf6f6,
        ["check_indeterminate_small"] = 0xf88a,
        ["check_small"] = 0xf88b,
        ["checkbook"] = 0xe70d,
        ["checked_bag"] = 0xeb0c,
        ["checked_bag_question"] = 0xeb0d,
        ["checklist"] = 0xe6b1,
        ["checklist_rtl"] = 0xe6b3,
        ["checkroom"] = 0xf19e,
        ["cheer"] = 0xf6a8,
        ["chess"] = 0xf5e7,
        ["chevron_left"] = 0xe5cb,
        ["chevron_right"] = 0xe5cc,
        ["child_care"] = 0xeb41,
        ["child_friendly"] = 0xeb42,
        ["chip_extraction"] = 0xf821,
        ["chips"] = 0xe993,
        ["chrome_reader_mode"] = 0xe86d,
        ["chromecast_2"] = 0xf17b,
        ["chromecast_device"] = 0xe83c,
        ["chronic"] = 0xebb2,
        ["church"] = 0xeaae,
        ["cinematic_blur"] = 0xf853,
        ["circle"] = 0xef4a,
        ["circle_notifications"] = 0xe994,
        ["circles"] = 0xe7ea,
        ["circles_ext"] = 0xe7ec,
        ["clarify"] = 0xf0bf,
        ["class"] = 0xe86e,
        ["clean_hands"] = 0xf21f,
        ["cleaning"] = 0xe995,
        ["cleaning_bucket"] = 0xf8b4,
        ["cleaning_services"] = 0xf0ff,
        ["clear"] = 0xe5cd,
        ["clear_all"] = 0xe0b8,
        ["clear_day"] = 0xf157,
        ["clear_night"] = 0xf159,
        ["climate_mini_split"] = 0xf8b5,
        ["clinical_notes"] = 0xe09e,
        ["clock_loader_10"] = 0xf726,
        ["clock_loader_20"] = 0xf725,
        ["clock_loader_40"] = 0xf724,
        ["clock_loader_60"] = 0xf723,
        ["clock_loader_80"] = 0xf722,
        ["clock_loader_90"] = 0xf721,
        ["close"] = 0xe5cd,
        ["close_fullscreen"] = 0xf1cf,
        ["close_small"] = 0xf508,
        ["closed_caption"] = 0xe996,
        ["closed_caption_disabled"] = 0xf1dc,
        ["closed_caption_off"] = 0xe996,
        ["cloud"] = 0xf15c,
        ["cloud_circle"] = 0xe2be,
        ["cloud_done"] = 0xe2bf,
        ["cloud_download"] = 0xe2c0,
        ["cloud_off"] = 0xe2c1,
        ["cloud_queue"] = 0xf15c,
        ["cloud_sync"] = 0xeb5a,
        ["cloud_upload"] = 0xe2c3,
        ["cloudy"] = 0xf15c,
        ["cloudy_filled"] = 0xf15c,
        ["cloudy_snowing"] = 0xe810,
        ["co2"] = 0xe7b0,
        ["co_present"] = 0xeaf0,
        ["code"] = 0xe86f,
        ["code_blocks"] = 0xf84d,
        ["code_off"] = 0xe4f3,
        ["coffee"] = 0xefef,
        ["coffee_maker"] = 0xeff0,
        ["cognition"] = 0xe09f,
        ["collapse_all"] = 0xe944,
        ["collapse_content"] = 0xf507,
        ["collections"] = 0xe3d3,
        ["collections_bookmark"] = 0xe431,
        ["color_lens"] = 0xe40a,
        ["colorize"] = 0xe3b8,
        ["colors"] = 0xe997,
        ["comedy_mask"] = 0xf4d6,
        ["comic_bubble"] = 0xf5dd,
        ["comment"] = 0xe24c,
        ["comment_bank"] = 0xea4e,
        ["comments_disabled"] = 0xe7a2,
        ["commit"] = 0xeaf5,
        ["communication"] = 0xe27c,
        ["communities"] = 0xeb16,
        ["communities_filled"] = 0xeb16,
        ["commute"] = 0xe940,
        ["compare"] = 0xe3b9,
        ["compare_arrows"] = 0xe915,
        ["compass_calibration"] = 0xe57c,
        ["component_exchange"] = 0xf1e7,
        ["compost"] = 0xe761,
        ["compress"] = 0xe94d,
        ["computer"] = 0xe31e,
        ["concierge"] = 0xf561,
        ["conditions"] = 0xe0a0,
        ["confirmation_number"] = 0xe638,
        ["congenital"] = 0xe0a1,
        ["connect_without_contact"] = 0xf223,
        ["connected_tv"] = 0xe998,
        ["connecting_airports"] = 0xe7c9,
        ["construction"] = 0xea3c,
        ["contact_emergency"] = 0xf8d1,
        ["contact_mail"] = 0xe0d0,
        ["contact_page"] = 0xf22e,
        ["contact_phone"] = 0xf0c0,
        ["contact_phone_filled"] = 0xf0c0,
        ["contact_support"] = 0xe94c,
        ["contactless"] = 0xea71,
        ["contactless_off"] = 0xf858,
        ["contacts"] = 0xe0ba,
        ["contacts_product"] = 0xe999,
        ["content_copy"] = 0xe14d,
        ["content_cut"] = 0xe14e,
        ["content_paste"] = 0xe14f,
        ["content_paste_go"] = 0xea8e,
        ["content_paste_off"] = 0xe4f8,
        ["content_paste_search"] = 0xea9b,
        ["contract"] = 0xf5a0,
        ["contract_delete"] = 0xf5a2,
        ["contract_edit"] = 0xf5a1,
        ["contrast"] = 0xeb37,
        ["contrast_rtl_off"] = 0xec72,
        ["control_camera"] = 0xe074,
        ["control_point"] = 0xe3ba,
        ["control_point_duplicate"] = 0xe3bb,
        ["controller_gen"] = 0xe83d,
        ["conversion_path"] = 0xf0c1,
        ["conversion_path_off"] = 0xf7b4,
        ["conveyor_belt"] = 0xf867,
        ["cookie"] = 0xeaac,
        ["cookie_off"] = 0xf79a,
        ["cooking"] = 0xe2b6,
        ["cool_to_dry"] = 0xe276,
        ["copy_all"] = 0xe2ec,
        ["copyright"] = 0xe90c,
        ["coronavirus"] = 0xf221,
        ["corporate_fare"] = 0xf1d0,
        ["cottage"] = 0xe587,
        ["counter_0"] = 0xf785,
        ["counter_1"] = 0xf784,
        ["counter_2"] = 0xf783,
        ["counter_3"] = 0xf782,
        ["counter_4"] = 0xf781,
        ["counter_5"] = 0xf780,
        ["counter_6"] = 0xf77f,
        ["counter_7"] = 0xf77e,
        ["counter_8"] = 0xf77d,
        ["counter_9"] = 0xf77c,
        ["countertops"] = 0xf1f7,
        ["create"] = 0xf097,
        ["create_new_folder"] = 0xe2cc,
        ["credit_card"] = 0xe8a1,
        ["credit_card_gear"] = 0xf52d,
        ["credit_card_heart"] = 0xf52c,
        ["credit_card_off"] = 0xe4f4,
        ["credit_score"] = 0xeff1,
        ["crib"] = 0xe588,
        ["crisis_alert"] = 0xebe9,
        ["crop"] = 0xe3be,
        ["crop_16_9"] = 0xe3bc,
        ["crop_3_2"] = 0xe3bd,
        ["crop_5_4"] = 0xe3bf,
        ["crop_7_5"] = 0xe3c0,
        ["crop_9_16"] = 0xf549,
        ["crop_din"] = 0xe3c6,
        ["crop_free"] = 0xe3c2,
        ["crop_landscape"] = 0xe3c3,
        ["crop_original"] = 0xe3f4,
        ["crop_portrait"] = 0xe3c5,
        ["crop_rotate"] = 0xe437,
        ["crop_square"] = 0xe3c6,
        ["crossword"] = 0xf5e5,
        ["crowdsource"] = 0xeb18,
        ["cruelty_free"] = 0xe799,
        ["css"] = 0xeb93,
        ["csv"] = 0xe6cf,
        ["currency_bitcoin"] = 0xebc5,
        ["currency_exchange"] = 0xeb70,
        ["currency_franc"] = 0xeafa,
        ["currency_lira"] = 0xeaef,
        ["currency_pound"] = 0xeaf1,
        ["currency_ruble"] = 0xeaec,
        ["currency_rupee"] = 0xeaf7,
        ["currency_yen"] = 0xeafb,
        ["currency_yuan"] = 0xeaf9,
        ["curtains"] = 0xec1e,
        ["curtains_closed"] = 0xec1d,
        ["custom_typography"] = 0xe732,
        ["cut"] = 0xf08b,
        ["cycle"] = 0xf854,
        ["cyclone"] = 0xebd5,
        ["dangerous"] = 0xe99a,
        ["dark_mode"] = 0xe51c,
        ["dashboard"] = 0xe871,
        ["dashboard_customize"] = 0xe99b,
        ["data_alert"] = 0xf7f6,
        ["data_array"] = 0xead1,
        ["data_check"] = 0xf7f2,
        ["data_exploration"] = 0xe76f,
        ["data_info_alert"] = 0xf7f5,
        ["data_loss_prevention"] = 0xe2dc,
        ["data_object"] = 0xead3,
        ["data_saver_off"] = 0xeff2,
        ["data_saver_on"] = 0xeff3,
        ["data_table"] = 0xe99c,
        ["data_thresholding"] = 0xeb9f,
        ["data_usage"] = 0xeff2,
        ["database"] = 0xf20e,
        ["dataset"] = 0xf8ee,
        ["dataset_linked"] = 0xf8ef,
        ["date_range"] = 0xe916,
        ["deblur"] = 0xeb77,
        ["deceased"] = 0xe0a5,
        ["decimal_decrease"] = 0xf82d,
        ["decimal_increase"] = 0xf82c,
        ["deck"] = 0xea42,
        ["dehaze"] = 0xe3c7,
        ["delete"] = 0xe92e,
        ["delete_forever"] = 0xe92b,
        ["delete_history"] = 0xf518,
        ["delete_outline"] = 0xe92e,
        ["delete_sweep"] = 0xe16c,
        ["demography"] = 0xe489,
        ["density_large"] = 0xeba9,
        ["density_medium"] = 0xeb9e,
        ["density_small"] = 0xeba8,
        ["dentistry"] = 0xe0a6,
        ["departure_board"] = 0xe576,
        ["deployed_code"] = 0xf720,
        ["deployed_code_account"] = 0xf51b,
        ["deployed_code_alert"] = 0xf5f2,
        ["deployed_code_history"] = 0xf5f3,
        ["deployed_code_update"] = 0xf5f4,
        ["dermatology"] = 0xe0a7,
        ["description"] = 0xe873,
        ["deselect"] = 0xebb6,
        ["design_services"] = 0xf10a,
        ["desk"] = 0xf8f4,
        ["deskphone"] = 0xf7fa,
        ["desktop_access_disabled"] = 0xe99d,
        ["desktop_mac"] = 0xe30b,
        ["desktop_windows"] = 0xe30c,
        ["destruction"] = 0xf585,
        ["details"] = 0xe3c8,
        ["detection_and_zone"] = 0xe29f,
        ["detector"] = 0xe282,
        ["detector_alarm"] = 0xe1f7,
        ["detector_battery"] = 0xe204,
        ["detector_co"] = 0xe2af,
        ["detector_offline"] = 0xe223,
        ["detector_smoke"] = 0xe285,
        ["detector_status"] = 0xe1e8,
        ["developer_board"] = 0xe30d,
        ["developer_board_off"] = 0xe4ff,
        ["developer_guide"] = 0xe99e,
        ["developer_mode"] = 0xe1b0,
        ["developer_mode_tv"] = 0xe874,
        ["device_hub"] = 0xe335,
        ["device_reset"] = 0xe8b3,
        ["device_thermostat"] = 0xe1ff,
        ["device_unknown"] = 0xe339,
        ["devices"] = 0xe326,
        ["devices_fold"] = 0xebde,
        ["devices_off"] = 0xf7a5,
        ["devices_other"] = 0xe337,
        ["devices_wearables"] = 0xf6ab,
        ["dew_point"] = 0xf879,
        ["diagnosis"] = 0xe0a8,
        ["dialer_sip"] = 0xe0bb,
        ["dialogs"] = 0xe99f,
        ["dialpad"] = 0xe0bc,
        ["diamond"] = 0xead5,
        ["dictionary"] = 0xf539,
        ["difference"] = 0xeb7d,
        ["digital_out_of_home"] = 0xf1de,
        ["digital_wellbeing"] = 0xef86,
        ["dining"] = 0xeff4,
        ["dinner_dining"] = 0xea57,
        ["directions"] = 0xe52e,
        ["directions_alt"] = 0xf880,
        ["directions_alt_off"] = 0xf881,
        ["directions_bike"] = 0xe52f,
        ["directions_boat"] = 0xeff5,
        ["directions_boat_filled"] = 0xeff5,
        ["directions_bus"] = 0xeff6,
        ["directions_bus_filled"] = 0xeff6,
        ["directions_car"] = 0xeff7,
        ["directions_car_filled"] = 0xeff7,
        ["directions_off"] = 0xf10f,
        ["directions_railway"] = 0xeff8,
        ["directions_railway_filled"] = 0xeff8,
        ["directions_run"] = 0xe566,
        ["directions_subway"] = 0xeffa,
        ["directions_subway_filled"] = 0xeffa,
        ["directions_transit"] = 0xeffa,
        ["directions_transit_filled"] = 0xeffa,
        ["directions_walk"] = 0xe536,
        ["directory_sync"] = 0xe394,
        ["dirty_lens"] = 0xef4b,
        ["disabled_by_default"] = 0xf230,
        ["disabled_visible"] = 0xe76e,
        ["disc_full"] = 0xe610,
        ["discover_tune"] = 0xe018,
        ["dishwasher"] = 0xe9a0,
        ["dishwasher_gen"] = 0xe832,
        ["display_external_input"] = 0xf7e7,
        ["display_settings"] = 0xeb97,
        ["distance"] = 0xf6ea,
        ["diversity_1"] = 0xf8d7,
        ["diversity_2"] = 0xf8d8,
        ["diversity_3"] = 0xf8d9,
        ["diversity_4"] = 0xf857,
        ["dns"] = 0xe875,
        ["do_disturb"] = 0xf08c,
        ["do_disturb_alt"] = 0xf08d,
        ["do_disturb_off"] = 0xf08e,
        ["do_disturb_on"] = 0xf08f,
        ["do_not_disturb"] = 0xf08d,
        ["do_not_disturb_alt"] = 0xf08c,
        ["do_not_disturb_off"] = 0xf08e,
        ["do_not_disturb_on"] = 0xf08f,
        ["do_not_disturb_on_total_silence"] = 0xeffb,
        ["do_not_step"] = 0xf19f,
        ["do_not_touch"] = 0xf1b0,
        ["dock"] = 0xe30e,
        ["dock_to_bottom"] = 0xf7e6,
        ["dock_to_left"] = 0xf7e5,
        ["dock_to_right"] = 0xf7e4,
        ["docs_add_on"] = 0xf0c2,
        ["docs_apps_script"] = 0xf0c3,
        ["document_scanner"] = 0xe5fa,
        ["domain"] = 0xe7ee,
        ["domain_add"] = 0xeb62,
        ["domain_disabled"] = 0xe0ef,
        ["domain_verification"] = 0xef4c,
        ["domain_verification_off"] = 0xf7b0,
        ["domino_mask"] = 0xf5e4,
        ["done"] = 0xe876,
        ["done_all"] = 0xe877,
        ["done_outline"] = 0xe92f,
        ["donut_large"] = 0xe917,
        ["donut_small"] = 0xe918,
        ["door_back"] = 0xeffc,
        ["door_front"] = 0xeffd,
        ["door_open"] = 0xe77c,
        ["door_sensor"] = 0xe28a,
        ["door_sliding"] = 0xeffe,
        ["doorbell"] = 0xefff,
        ["doorbell_3p"] = 0xe1e7,
        ["doorbell_chime"] = 0xe1f3,
        ["double_arrow"] = 0xea50,
        ["downhill_skiing"] = 0xe509,
        ["download"] = 0xf090,
        ["download_2"] = 0xf523,
        ["download_done"] = 0xf091,
        ["download_for_offline"] = 0xf000,
        ["downloading"] = 0xf001,
        ["draft"] = 0xe66d,
        ["draft_orders"] = 0xe7b3,
        ["drafts"] = 0xe151,
        ["drag_click"] = 0xf71f,
        ["drag_handle"] = 0xe25d,
        ["drag_indicator"] = 0xe945,
        ["drag_pan"] = 0xf71e,
        ["draw"] = 0xe746,
        ["draw_abstract"] = 0xf7f8,
        ["draw_collage"] = 0xf7f7,
        ["drawing_recognition"] = 0xeb00,
        ["dresser"] = 0xe210,
        ["drive_eta"] = 0xeff7,
        ["drive_file_move"] = 0xe9a1,
        ["drive_file_move_outline"] = 0xe9a1,
        ["drive_file_move_rtl"] = 0xe9a1,
        ["drive_file_rename_outline"] = 0xe9a2,
        ["drive_folder_upload"] = 0xe9a3,
        ["drive_fusiontable"] = 0xe678,
        ["dropdown"] = 0xe9a4,
        ["dry"] = 0xf1b3,
        ["dry_cleaning"] = 0xea58,
        ["dual_screen"] = 0xf6cf,
        ["duo"] = 0xe9a5,
        ["dvr"] = 0xe1b2,
        ["dynamic_feed"] = 0xea14,
        ["dynamic_form"] = 0xf1bf,
        ["e911_avatar"] = 0xf11a,
        ["e911_emergency"] = 0xf119,
        ["e_mobiledata"] = 0xf002,
        ["e_mobiledata_badge"] = 0xf7e3,
        ["earbuds"] = 0xf003,
        ["earbuds_battery"] = 0xf004,
        ["early_on"] = 0xe2ba,
        ["earthquake"] = 0xf64f,
        ["east"] = 0xf1df,
        ["ecg"] = 0xf80f,
        ["ecg_heart"] = 0xf6e9,
        ["eco"] = 0xea35,
        ["eda"] = 0xf6e8,
        ["edgesensor_high"] = 0xf005,
        ["edgesensor_low"] = 0xf006,
        ["edit"] = 0xf097,
        ["edit_attributes"] = 0xe578,
        ["edit_calendar"] = 0xe742,
        ["edit_document"] = 0xf88c,
        ["edit_location"] = 0xe568,
        ["edit_location_alt"] = 0xe1c5,
        ["edit_note"] = 0xe745,
        ["edit_notifications"] = 0xe525,
        ["edit_off"] = 0xe950,
        ["edit_road"] = 0xef4d,
        ["edit_square"] = 0xf88d,
        ["editor_choice"] = 0xf528,
        ["egg"] = 0xeacc,
        ["egg_alt"] = 0xeac8,
        ["eject"] = 0xe8fb,
        ["elderly"] = 0xf21a,
        ["elderly_woman"] = 0xeb69,
        ["electric_bike"] = 0xeb1b,
        ["electric_bolt"] = 0xec1c,
        ["electric_car"] = 0xeb1c,
        ["electric_meter"] = 0xec1b,
        ["electric_moped"] = 0xeb1d,
        ["electric_rickshaw"] = 0xeb1e,
        ["electric_scooter"] = 0xeb1f,
        ["electrical_services"] = 0xf102,
        ["elevation"] = 0xf6e7,
        ["elevator"] = 0xf1a0,
        ["email"] = 0xe159,
        ["emergency"] = 0xe1eb,
        ["emergency_heat"] = 0xf15d,
        ["emergency_heat_2"] = 0xf4e5,
        ["emergency_home"] = 0xe82a,
        ["emergency_recording"] = 0xebf4,
        ["emergency_share"] = 0xebf6,
        ["emergency_share_off"] = 0xf59e,
        ["emoji_emotions"] = 0xea22,
        ["emoji_events"] = 0xea23,
        ["emoji_flags"] = 0xf0c6,
        ["emoji_food_beverage"] = 0xea1b,
        ["emoji_nature"] = 0xea1c,
        ["emoji_objects"] = 0xea24,
        ["emoji_people"] = 0xea1d,
        ["emoji_symbols"] = 0xea1e,
        ["emoji_transportation"] = 0xea1f,
        ["emoticon"] = 0xe5f3,
        ["empty_dashboard"] = 0xf844,
        ["enable"] = 0xf188,
        ["encrypted"] = 0xe593,
        ["endocrinology"] = 0xe0a9,
        ["energy"] = 0xe9a6,
        ["energy_program_saving"] = 0xf15f,
        ["energy_program_time_used"] = 0xf161,
        ["energy_savings_leaf"] = 0xec1a,
        ["engineering"] = 0xea3d,
        ["enhanced_encryption"] = 0xe63f,
        ["ent"] = 0xe0aa,
        ["enterprise"] = 0xe70e,
        ["enterprise_off"] = 0xeb4d,
        ["equal"] = 0xf77b,
        ["equalizer"] = 0xe01d,
        ["error"] = 0xf8b6,
        ["error_circle_rounded"] = 0xf8b6,
        ["error_med"] = 0xe49b,
        ["error_outline"] = 0xf8b6,
        ["escalator"] = 0xf1a1,
        ["escalator_warning"] = 0xf1ac,
        ["euro"] = 0xea15,
        ["euro_symbol"] = 0xe926,
        ["ev_charger"] = 0xe56d,
        ["ev_mobiledata_badge"] = 0xf7e2,
        ["ev_shadow"] = 0xef8f,
        ["ev_shadow_add"] = 0xf580,
        ["ev_shadow_minus"] = 0xf57f,
        ["ev_station"] = 0xe56d,
        ["event"] = 0xe878,
        ["event_available"] = 0xe614,
        ["event_busy"] = 0xe615,
        ["event_list"] = 0xf683,
        ["event_note"] = 0xe616,
        ["event_repeat"] = 0xeb7b,
        ["event_seat"] = 0xe903,
        ["event_upcoming"] = 0xf238,
        ["exclamation"] = 0xf22f,
        ["exercise"] = 0xf6e6,
        ["exit_to_app"] = 0xe879,
        ["expand"] = 0xe94f,
        ["expand_all"] = 0xe946,
        ["expand_circle_down"] = 0xe7cd,
        ["expand_circle_right"] = 0xf591,
        ["expand_circle_up"] = 0xf5d2,
        ["expand_content"] = 0xf830,
        ["expand_less"] = 0xe5ce,
        ["expand_more"] = 0xe5cf,
        ["experiment"] = 0xe686,
        ["explicit"] = 0xe01e,
        ["explore"] = 0xe87a,
        ["explore_nearby"] = 0xe538,
        ["explore_off"] = 0xe9a8,
        ["explosion"] = 0xf685,
        ["export_notes"] = 0xe0ac,
        ["exposure"] = 0xe3f6,
        ["exposure_neg_1"] = 0xe3cb,
        ["exposure_neg_2"] = 0xe3cc,
        ["exposure_plus_1"] = 0xe800,
        ["exposure_plus_2"] = 0xe3ce,
        ["exposure_zero"] = 0xe3cf,
        ["extension"] = 0xe87b,
        ["extension_off"] = 0xe4f5,
        ["eyeglasses"] = 0xf6ee,
        ["face"] = 0xf008,
        ["face_2"] = 0xf8da,
        ["face_3"] = 0xf8db,
        ["face_4"] = 0xf8dc,
        ["face_5"] = 0xf8dd,
        ["face_6"] = 0xf8de,
        ["face_retouching_natural"] = 0xef4e,
        ["face_retouching_off"] = 0xf007,
        ["face_unlock"] = 0xf008,
        ["fact_check"] = 0xf0c5,
        ["factory"] = 0xebbc,
        ["falling"] = 0xf60d,
        ["familiar_face_and_zone"] = 0xe21c,
        ["family_history"] = 0xe0ad,
        ["family_home"] = 0xeb26,
        ["family_link"] = 0xeb19,
        ["family_restroom"] = 0xf1a2,
        ["family_star"] = 0xf527,
        ["farsight_digital"] = 0xf559,
        ["fast_forward"] = 0xe01f,
        ["fast_rewind"] = 0xe020,
        ["fastfood"] = 0xe57a,
        ["faucet"] = 0xe278,
        ["favorite"] = 0xe87e,
        ["favorite_border"] = 0xe87e,
        ["fax"] = 0xead8,
        ["feature_search"] = 0xe9a9,
        ["featured_play_list"] = 0xe06d,
        ["featured_seasonal_and_gifts"] = 0xef91,
        ["featured_video"] = 0xe06e,
        ["feed"] = 0xf009,
        ["feedback"] = 0xe87f,
        ["female"] = 0xe590,
        ["femur"] = 0xf891,
        ["femur_alt"] = 0xf892,
        ["fence"] = 0xf1f6,
        ["fertile"] = 0xf6e5,
        ["festival"] = 0xea68,
        ["fiber_dvr"] = 0xe05d,
        ["fiber_manual_record"] = 0xe061,
        ["fiber_new"] = 0xe05e,
        ["fiber_pin"] = 0xe06a,
        ["fiber_smart_record"] = 0xe062,
        ["file_copy"] = 0xe173,
        ["file_copy_off"] = 0xf4d8,
        ["file_download"] = 0xf090,
        ["file_download_done"] = 0xf091,
        ["file_download_off"] = 0xe4fe,
        ["file_map"] = 0xe2c5,
        ["file_open"] = 0xeaf3,
        ["file_present"] = 0xea0e,
        ["file_save"] = 0xf17f,
        ["file_save_off"] = 0xe505,
        ["file_upload"] = 0xf09b,
        ["file_upload_off"] = 0xf886,
        ["filter"] = 0xe3d3,
        ["filter_1"] = 0xe3d0,
        ["filter_2"] = 0xe3d1,
        ["filter_3"] = 0xe3d2,
        ["filter_4"] = 0xe3d4,
        ["filter_5"] = 0xe3d5,
        ["filter_6"] = 0xe3d6,
        ["filter_7"] = 0xe3d7,
        ["filter_8"] = 0xe3d8,
        ["filter_9"] = 0xe3d9,
        ["filter_9_plus"] = 0xe3da,
        ["filter_alt"] = 0xef4f,
        ["filter_alt_off"] = 0xeb32,
        ["filter_b_and_w"] = 0xe3db,
        ["filter_center_focus"] = 0xe3dc,
        ["filter_drama"] = 0xe3dd,
        ["filter_frames"] = 0xe3de,
        ["filter_hdr"] = 0xe3df,
        ["filter_list"] = 0xe152,
        ["filter_list_alt"] = 0xe94e,
        ["filter_list_off"] = 0xeb57,
        ["filter_none"] = 0xe3e0,
        ["filter_retrolux"] = 0xe3e1,
        ["filter_tilt_shift"] = 0xe3e2,
        ["filter_vintage"] = 0xe3e3,
        ["finance"] = 0xe6bf,
        ["finance_chip"] = 0xf84e,
        ["finance_mode"] = 0xef92,
        ["find_in_page"] = 0xe880,
        ["find_replace"] = 0xe881,
        ["fingerprint"] = 0xe90d,
        ["fire_extinguisher"] = 0xf1d8,
        ["fire_hydrant"] = 0xf1a3,
        ["fire_truck"] = 0xf8f2,
        ["fireplace"] = 0xea43,
        ["first_page"] = 0xe5dc,
        ["fit_page"] = 0xf77a,
        ["fit_screen"] = 0xea10,
        ["fit_width"] = 0xf779,
        ["fitness_center"] = 0xeb43,
        ["flag"] = 0xf0c6,
        ["flag_circle"] = 0xeaf8,
        ["flag_filled"] = 0xf0c6,
        ["flaky"] = 0xef50,
        ["flare"] = 0xe3e4,
        ["flash_auto"] = 0xe3e5,
        ["flash_off"] = 0xe3e6,
        ["flash_on"] = 0xe3e7,
        ["flashlight_off"] = 0xf00a,
        ["flashlight_on"] = 0xf00b,
        ["flatware"] = 0xf00c,
        ["flex_direction"] = 0xf778,
        ["flex_no_wrap"] = 0xf777,
        ["flex_wrap"] = 0xf776,
        ["flight"] = 0xe539,
        ["flight_class"] = 0xe7cb,
        ["flight_land"] = 0xe904,
        ["flight_takeoff"] = 0xe905,
        ["flights_and_hotels"] = 0xe9ab,
        ["flightsmode"] = 0xef93,
        ["flip"] = 0xe3e8,
        ["flip_camera_android"] = 0xea37,
        ["flip_camera_ios"] = 0xea38,
        ["flip_to_back"] = 0xe882,
        ["flip_to_front"] = 0xe883,
        ["flood"] = 0xebe6,
        ["floor"] = 0xf6e4,
        ["floor_lamp"] = 0xe21e,
        ["flourescent"] = 0xf07d,
        ["flowsheet"] = 0xe0ae,
        ["fluid"] = 0xe483,
        ["fluid_balance"] = 0xf80d,
        ["fluid_med"] = 0xf80c,
        ["fluorescent"] = 0xf07d,
        ["flutter"] = 0xf1dd,
        ["flutter_dash"] = 0xe00b,
        ["fmd_bad"] = 0xf00e,
        ["fmd_good"] = 0xf1db,
        ["foggy"] = 0xe818,
        ["folded_hands"] = 0xf5ed,
        ["folder"] = 0xe2c7,
        ["folder_copy"] = 0xebbd,
        ["folder_data"] = 0xf586,
        ["folder_delete"] = 0xeb34,
        ["folder_limited"] = 0xf4e4,
        ["folder_managed"] = 0xf775,
        ["folder_off"] = 0xeb83,
        ["folder_open"] = 0xe2c8,
        ["folder_shared"] = 0xe2c9,
        ["folder_special"] = 0xe617,
        ["folder_supervised"] = 0xf774,
        ["folder_zip"] = 0xeb2c,
        ["follow_the_signs"] = 0xf222,
        ["font_download"] = 0xe167,
        ["font_download_off"] = 0xe4f9,
        ["food_bank"] = 0xf1f2,
        ["foot_bones"] = 0xf893,
        ["footprint"] = 0xf87d,
        ["for_you"] = 0xe9ac,
        ["forest"] = 0xea99,
        ["fork_left"] = 0xeba0,
        ["fork_right"] = 0xebac,
        ["forklift"] = 0xf868,
        ["format_align_center"] = 0xe234,
        ["format_align_justify"] = 0xe235,
        ["format_align_left"] = 0xe236,
        ["format_align_right"] = 0xe237,
        ["format_bold"] = 0xe238,
        ["format_clear"] = 0xe239,
        ["format_color_fill"] = 0xe23a,
        ["format_color_reset"] = 0xe23b,
        ["format_color_text"] = 0xe23c,
        ["format_h1"] = 0xf85d,
        ["format_h2"] = 0xf85e,
        ["format_h3"] = 0xf85f,
        ["format_h4"] = 0xf860,
        ["format_h5"] = 0xf861,
        ["format_h6"] = 0xf862,
        ["format_image_left"] = 0xf863,
        ["format_image_right"] = 0xf864,
        ["format_indent_decrease"] = 0xe23d,
        ["format_indent_increase"] = 0xe23e,
        ["format_ink_highlighter"] = 0xf82b,
        ["format_italic"] = 0xe23f,
        ["format_letter_spacing"] = 0xf773,
        ["format_letter_spacing_2"] = 0xf618,
        ["format_letter_spacing_standard"] = 0xf617,
        ["format_letter_spacing_wide"] = 0xf616,
        ["format_letter_spacing_wider"] = 0xf615,
        ["format_line_spacing"] = 0xe240,
        ["format_list_bulleted"] = 0xe241,
        ["format_list_bulleted_add"] = 0xf849,
        ["format_list_numbered"] = 0xe242,
        ["format_list_numbered_rtl"] = 0xe267,
        ["format_overline"] = 0xeb65,
        ["format_paint"] = 0xe243,
        ["format_paragraph"] = 0xf865,
        ["format_quote"] = 0xe244,
        ["format_shapes"] = 0xe25e,
        ["format_size"] = 0xe245,
        ["format_strikethrough"] = 0xe246,
        ["format_text_clip"] = 0xf82a,
        ["format_text_overflow"] = 0xf829,
        ["format_text_wrap"] = 0xf828,
        ["format_textdirection_l_to_r"] = 0xe247,
        ["format_textdirection_r_to_l"] = 0xe248,
        ["format_underlined"] = 0xe249,
        ["format_underlined_squiggle"] = 0xf885,
        ["forms_add_on"] = 0xf0c7,
        ["forms_apps_script"] = 0xf0c8,
        ["fort"] = 0xeaad,
        ["forum"] = 0xe8af,
        ["forward"] = 0xf57a,
        ["forward_10"] = 0xe056,
        ["forward_30"] = 0xe057,
        ["forward_5"] = 0xe058,
        ["forward_circle"] = 0xf6f5,
        ["forward_media"] = 0xf6f4,
        ["forward_to_inbox"] = 0xf187,
        ["foundation"] = 0xf200,
        ["frame_inspect"] = 0xf772,
        ["frame_person"] = 0xf8a6,
        ["frame_person_off"] = 0xf7d1,
        ["frame_reload"] = 0xf771,
        ["frame_source"] = 0xf770,
        ["free_breakfast"] = 0xeb44,
        ["free_cancellation"] = 0xe748,
        ["front_hand"] = 0xe769,
        ["front_loader"] = 0xf869,
        ["full_coverage"] = 0xeb12,
        ["full_hd"] = 0xf58b,
        ["full_stacked_bar_chart"] = 0xf212,
        ["fullscreen"] = 0xe5d0,
        ["fullscreen_exit"] = 0xe5d1,
        ["function"] = 0xf866,
        ["functions"] = 0xe24a,
        ["g_mobiledata"] = 0xf010,
        ["g_mobiledata_badge"] = 0xf7e1,
        ["g_translate"] = 0xe927,
        ["gallery_thumbnail"] = 0xf86f,
        ["gamepad"] = 0xe30f,
        ["games"] = 0xe30f,
        ["garage"] = 0xf011,
        ["garage_door"] = 0xe714,
        ["garage_home"] = 0xe82d,
        ["garden_cart"] = 0xf8a9,
        ["gas_meter"] = 0xec19,
        ["gastroenterology"] = 0xe0f1,
        ["gate"] = 0xe277,
        ["gavel"] = 0xe90e,
        ["general_device"] = 0xe6de,
        ["generating_tokens"] = 0xe749,
        ["genetics"] = 0xe0f3,
        ["genres"] = 0xe6ee,
        ["gesture"] = 0xe155,
        ["gesture_select"] = 0xf657,
        ["get_app"] = 0xf090,
        ["gif"] = 0xe908,
        ["gif_box"] = 0xe7a3,
        ["girl"] = 0xeb68,
        ["gite"] = 0xe58b,
        ["glass_cup"] = 0xf6e3,
        ["globe"] = 0xe64c,
        ["globe_asia"] = 0xf799,
        ["globe_uk"] = 0xf798,
        ["glucose"] = 0xe4a0,
        ["glyphs"] = 0xf8a3,
        ["go_to_line"] = 0xf71d,
        ["golf_course"] = 0xeb45,
        ["google_home_devices"] = 0xe715,
        ["google_plus_reshare"] = 0xf57a,
        ["google_tv_remote"] = 0xf5db,
        ["google_wifi"] = 0xf579,
        ["gpp_bad"] = 0xf012,
        ["gpp_good"] = 0xf013,
        ["gpp_maybe"] = 0xf014,
        ["gps_fixed"] = 0xe55c,
        ["gps_not_fixed"] = 0xe1b7,
        ["gps_off"] = 0xe1b6,
        ["grade"] = 0xe885,
        ["gradient"] = 0xe3e9,
        ["grading"] = 0xea4f,
        ["grain"] = 0xe3ea,
        ["graphic_eq"] = 0xe1b8,
        ["grass"] = 0xf205,
        ["grid_3x3"] = 0xf015,
        ["grid_3x3_off"] = 0xf67c,
        ["grid_4x4"] = 0xf016,
        ["grid_goldenratio"] = 0xf017,
        ["grid_guides"] = 0xf76f,
        ["grid_off"] = 0xe3eb,
        ["grid_on"] = 0xe3ec,
        ["grid_view"] = 0xe9b0,
        ["grocery"] = 0xef97,
        ["group"] = 0xea21,
        ["group_add"] = 0xe7f0,
        ["group_off"] = 0xe747,
        ["group_remove"] = 0xe7ad,
        ["group_work"] = 0xe886,
        ["grouped_bar_chart"] = 0xf211,
        ["groups"] = 0xf233,
        ["groups_2"] = 0xf8df,
        ["groups_3"] = 0xf8e0,
        ["gynecology"] = 0xe0f4,
        ["h_mobiledata"] = 0xf018,
        ["h_mobiledata_badge"] = 0xf7e0,
        ["h_plus_mobiledata"] = 0xf019,
        ["h_plus_mobiledata_badge"] = 0xf7df,
        ["hail"] = 0xe9b1,
        ["hallway"] = 0xe6f8,
        ["hand_bones"] = 0xf894,
        ["hand_gesture"] = 0xef9c,
        ["handshake"] = 0xebcb,
        ["handwriting_recognition"] = 0xeb02,
        ["handyman"] = 0xf10b,
        ["hangout_video"] = 0xe0c1,
        ["hangout_video_off"] = 0xe0c2,
        ["hard_drive"] = 0xf80e,
        ["hard_drive_2"] = 0xf7a4,
        ["hardware"] = 0xea59,
        ["hd"] = 0xe052,
        ["hdr_auto"] = 0xf01a,
        ["hdr_auto_select"] = 0xf01b,
        ["hdr_enhanced_select"] = 0xef51,
        ["hdr_off"] = 0xe3ed,
        ["hdr_off_select"] = 0xf01c,
        ["hdr_on"] = 0xe3ee,
        ["hdr_on_select"] = 0xf01d,
        ["hdr_plus"] = 0xf01e,
        ["hdr_plus_off"] = 0xe3ef,
        ["hdr_strong"] = 0xe3f1,
        ["hdr_weak"] = 0xe3f2,
        ["headphones"] = 0xf01f,
        ["headphones_battery"] = 0xf020,
        ["headset"] = 0xf01f,
        ["headset_mic"] = 0xe311,
        ["headset_off"] = 0xe33a,
        ["healing"] = 0xe3f3,
        ["health_and_beauty"] = 0xef9d,
        ["health_and_safety"] = 0xe1d5,
        ["health_metrics"] = 0xf6e2,
        ["heap_snapshot_large"] = 0xf76e,
        ["heap_snapshot_multiple"] = 0xf76d,
        ["heap_snapshot_thumbnail"] = 0xf76c,
        ["hearing"] = 0xe023,
        ["hearing_disabled"] = 0xf104,
        ["heart_broken"] = 0xeac2,
        ["heart_check"] = 0xf60a,
        ["heart_minus"] = 0xf883,
        ["heart_plus"] = 0xf884,
        ["heat"] = 0xf537,
        ["heat_pump"] = 0xec18,
        ["heat_pump_balance"] = 0xe27e,
        ["height"] = 0xea16,
        ["helicopter"] = 0xf60c,
        ["help"] = 0xe8fd,
        ["help_center"] = 0xf1c0,
        ["help_clinic"] = 0xf810,
        ["help_outline"] = 0xe8fd,
        ["hematology"] = 0xe0f6,
        ["hevc"] = 0xf021,
        ["hexagon"] = 0xeb39,
        ["hide"] = 0xef9e,
        ["hide_image"] = 0xf022,
        ["hide_source"] = 0xf023,
        ["high_density"] = 0xf79c,
        ["high_quality"] = 0xe024,
        ["high_res"] = 0xf54b,
        ["highlight"] = 0xe25f,
        ["highlight_keyboard_focus"] = 0xf510,
        ["highlight_mouse_cursor"] = 0xf511,
        ["highlight_off"] = 0xe888,
        ["highlight_text_cursor"] = 0xf512,
        ["highlighter_size_1"] = 0xf76b,
        ["highlighter_size_2"] = 0xf76a,
        ["highlighter_size_3"] = 0xf769,
        ["highlighter_size_4"] = 0xf768,
        ["highlighter_size_5"] = 0xf767,
        ["hiking"] = 0xe50a,
        ["history"] = 0xe8b3,
        ["history_edu"] = 0xea3e,
        ["history_off"] = 0xf4da,
        ["history_toggle_off"] = 0xf17d,
        ["hive"] = 0xeaa6,
        ["hls"] = 0xeb8a,
        ["hls_off"] = 0xeb8c,
        ["holiday_village"] = 0xe58a,
        ["home"] = 0xe9b2,
        ["home_and_garden"] = 0xef9f,
        ["home_app_logo"] = 0xe295,
        ["home_filled"] = 0xe9b2,
        ["home_health"] = 0xe4b9,
        ["home_improvement_and_tools"] = 0xefa0,
        ["home_iot_device"] = 0xe283,
        ["home_max"] = 0xf024,
        ["home_max_dots"] = 0xe849,
        ["home_mini"] = 0xf025,
        ["home_pin"] = 0xf14d,
        ["home_repair_service"] = 0xf100,
        ["home_speaker"] = 0xf11c,
        ["home_storage"] = 0xf86c,
        ["home_work"] = 0xf030,
        ["horizontal_distribute"] = 0xe014,
        ["horizontal_rule"] = 0xf108,
        ["horizontal_split"] = 0xe947,
        ["hot_tub"] = 0xeb46,
        ["hotel"] = 0xe549,
        ["hotel_class"] = 0xe743,
        ["hourglass"] = 0xebff,
        ["hourglass_bottom"] = 0xea5c,
        ["hourglass_disabled"] = 0xef53,
        ["hourglass_empty"] = 0xe88b,
        ["hourglass_full"] = 0xe88c,
        ["hourglass_top"] = 0xea5b,
        ["house"] = 0xea44,
        ["house_siding"] = 0xf202,
        ["house_with_shield"] = 0xe786,
        ["houseboat"] = 0xe584,
        ["household_supplies"] = 0xefa1,
        ["how_to_reg"] = 0xe174,
        ["how_to_vote"] = 0xe175,
        ["hr_resting"] = 0xf6ba,
        ["html"] = 0xeb7e,
        ["http"] = 0xe902,
        ["https"] = 0xe899,
        ["hub"] = 0xe9f4,
        ["humerus"] = 0xf895,
        ["humerus_alt"] = 0xf896,
        ["humidity_high"] = 0xf163,
        ["humidity_indoor"] = 0xf558,
        ["humidity_low"] = 0xf164,
        ["humidity_mid"] = 0xf165,
        ["humidity_percentage"] = 0xf87e,
        ["hvac"] = 0xf10e,
        ["ice_skating"] = 0xe50b,
        ["icecream"] = 0xea69,
        ["ifl"] = 0xe025,
        ["iframe"] = 0xf71b,
        ["iframe_off"] = 0xf71c,
        ["image"] = 0xe3f4,
        ["image_aspect_ratio"] = 0xe3f5,
        ["image_not_supported"] = 0xf116,
        ["image_search"] = 0xe43f,
        ["imagesearch_roller"] = 0xe9b4,
        ["imagesmode"] = 0xefa2,
        ["immunology"] = 0xe0fb,
        ["import_contacts"] = 0xe0e0,
        ["import_export"] = 0xe8d5,
        ["important_devices"] = 0xe912,
        ["in_home_mode"] = 0xe833,
        ["inactive_order"] = 0xe0fc,
        ["inbox"] = 0xe156,
        ["inbox_customize"] = 0xf859,
        ["incomplete_circle"] = 0xe79b,
        ["indeterminate_check_box"] = 0xe909,
        ["indeterminate_question_box"] = 0xf56d,
        ["info"] = 0xe88e,
        ["info_i"] = 0xf59b,
        ["infrared"] = 0xf87c,
        ["ink_eraser"] = 0xe6d0,
        ["ink_eraser_off"] = 0xe7e3,
        ["ink_highlighter"] = 0xe6d1,
        ["ink_highlighter_move"] = 0xf524,
        ["ink_marker"] = 0xe6d2,
        ["ink_pen"] = 0xe6d3,
        ["inpatient"] = 0xe0fe,
        ["input"] = 0xe890,
        ["input_circle"] = 0xf71a,
        ["insert_chart"] = 0xf0cc,
        ["insert_chart_filled"] = 0xf0cc,
        ["insert_chart_outlined"] = 0xf0cc,
        ["insert_comment"] = 0xe24c,
        ["insert_drive_file"] = 0xe66d,
        ["insert_emoticon"] = 0xea22,
        ["insert_invitation"] = 0xe878,
        ["insert_link"] = 0xe250,
        ["insert_page_break"] = 0xeaca,
        ["insert_photo"] = 0xe3f4,
        ["insert_text"] = 0xf827,
        ["insights"] = 0xf092,
        ["install_desktop"] = 0xeb71,
        ["install_mobile"] = 0xeb72,
        ["instant_mix"] = 0xe026,
        ["integration_instructions"] = 0xef54,
        ["interactive_space"] = 0xf7ff,
        ["interests"] = 0xe7c8,
        ["interpreter_mode"] = 0xe83b,
        ["inventory"] = 0xe179,
        ["inventory_2"] = 0xe1a1,
        ["invert_colors"] = 0xe891,
        ["invert_colors_off"] = 0xe0c4,
        ["ios"] = 0xe027,
        ["ios_share"] = 0xe6b8,
        ["iron"] = 0xe583,
        ["iso"] = 0xe3f6,
        ["jamboard_kiosk"] = 0xe9b5,
        ["javascript"] = 0xeb7c,
        ["join"] = 0xf84f,
        ["join_full"] = 0xf84f,
        ["join_inner"] = 0xeaf4,
        ["join_left"] = 0xeaf2,
        ["join_right"] = 0xeaea,
        ["joystick"] = 0xf5ee,
        ["jump_to_element"] = 0xf719,
        ["kayaking"] = 0xe50c,
        ["kebab_dining"] = 0xe842,
        ["kettle"] = 0xe2b9,
        ["key"] = 0xe73c,
        ["key_off"] = 0xeb84,
        ["key_vertical"] = 0xf51a,
        ["key_visualizer"] = 0xf199,
        ["keyboard"] = 0xe312,
        ["keyboard_alt"] = 0xf028,
        ["keyboard_arrow_down"] = 0xe313,
        ["keyboard_arrow_left"] = 0xe314,
        ["keyboard_arrow_right"] = 0xe315,
        ["keyboard_arrow_up"] = 0xe316,
        ["keyboard_backspace"] = 0xe317,
        ["keyboard_capslock"] = 0xe318,
        ["keyboard_capslock_badge"] = 0xf7de,
        ["keyboard_command_key"] = 0xeae7,
        ["keyboard_control_key"] = 0xeae6,
        ["keyboard_double_arrow_down"] = 0xead0,
        ["keyboard_double_arrow_left"] = 0xeac3,
        ["keyboard_double_arrow_right"] = 0xeac9,
        ["keyboard_double_arrow_up"] = 0xeacf,
        ["keyboard_external_input"] = 0xf7dd,
        ["keyboard_full"] = 0xf7dc,
        ["keyboard_hide"] = 0xe31a,
        ["keyboard_keys"] = 0xf67b,
        ["keyboard_off"] = 0xf67a,
        ["keyboard_onscreen"] = 0xf7db,
        ["keyboard_option_key"] = 0xeae8,
        ["keyboard_previous_language"] = 0xf7da,
        ["keyboard_return"] = 0xe31b,
        ["keyboard_tab"] = 0xe31c,
        ["keyboard_tab_rtl"] = 0xec73,
        ["keyboard_voice"] = 0xe31d,
        ["kid_star"] = 0xf526,
        ["king_bed"] = 0xea45,
        ["kitchen"] = 0xeb47,
        ["kitesurfing"] = 0xe50d,
        ["lab_panel"] = 0xe103,
        ["lab_profile"] = 0xe104,
        ["lab_research"] = 0xf80b,
        ["label"] = 0xe893,
        ["label_important"] = 0xe948,
        ["label_important_outline"] = 0xe948,
        ["label_off"] = 0xe9b6,
        ["label_outline"] = 0xe893,
        ["labs"] = 0xe105,
        ["lan"] = 0xeb2f,
        ["landscape"] = 0xe564,
        ["landslide"] = 0xebd7,
        ["language"] = 0xe894,
        ["language_chinese_array"] = 0xf766,
        ["language_chinese_cangjie"] = 0xf765,
        ["language_chinese_dayi"] = 0xf764,
        ["language_chinese_pinyin"] = 0xf763,
        ["language_chinese_quick"] = 0xf762,
        ["language_chinese_wubi"] = 0xf761,
        ["language_french"] = 0xf760,
        ["language_gb_english"] = 0xf75f,
        ["language_international"] = 0xf75e,
        ["language_japanese_kana"] = 0xf513,
        ["language_korean_latin"] = 0xf75d,
        ["language_pinyin"] = 0xf75c,
        ["language_spanish"] = 0xf5e9,
        ["language_us"] = 0xf759,
        ["language_us_colemak"] = 0xf75b,
        ["language_us_dvorak"] = 0xf75a,
        ["laps"] = 0xf6b9,
        ["laptop"] = 0xe31e,
        ["laptop_chromebook"] = 0xe31f,
        ["laptop_mac"] = 0xe320,
        ["laptop_windows"] = 0xe321,
        ["lasso_select"] = 0xeb03,
        ["last_page"] = 0xe5dd,
        ["launch"] = 0xe89e,
        ["laundry"] = 0xe2a8,
        ["layers"] = 0xe53b,
        ["layers_clear"] = 0xe53c,
        ["lda"] = 0xe106,
        ["leaderboard"] = 0xf20c,
        ["leak_add"] = 0xe3f8,
        ["leak_remove"] = 0xe3f9,
        ["left_click"] = 0xf718,
        ["left_panel_close"] = 0xf717,
        ["left_panel_open"] = 0xf716,
        ["legend_toggle"] = 0xf11b,
        ["lens"] = 0xe3fa,
        ["lens_blur"] = 0xf029,
        ["letter_switch"] = 0xf758,
        ["library_add"] = 0xe03c,
        ["library_add_check"] = 0xe9b7,
        ["library_books"] = 0xe02f,
        ["library_music"] = 0xe030,
        ["license"] = 0xeb04,
        ["lift_to_talk"] = 0xefa3,
        ["light"] = 0xf02a,
        ["light_group"] = 0xe28b,
        ["light_mode"] = 0xe518,
        ["light_off"] = 0xe9b8,
        ["lightbulb"] = 0xe90f,
        ["lightbulb_circle"] = 0xebfe,
        ["lightbulb_outline"] = 0xe90f,
        ["lightning_stand"] = 0xefa4,
        ["line_axis"] = 0xea9a,
        ["line_curve"] = 0xf757,
        ["line_end"] = 0xf826,
        ["line_end_arrow"] = 0xf81d,
        ["line_end_arrow_notch"] = 0xf81c,
        ["line_end_circle"] = 0xf81b,
        ["line_end_diamond"] = 0xf81a,
        ["line_end_square"] = 0xf819,
        ["line_start"] = 0xf825,
        ["line_start_arrow"] = 0xf818,
        ["line_start_arrow_notch"] = 0xf817,
        ["line_start_circle"] = 0xf816,
        ["line_start_diamond"] = 0xf815,
        ["line_start_square"] = 0xf814,
        ["line_style"] = 0xe919,
        ["line_weight"] = 0xe91a,
        ["linear_scale"] = 0xe260,
        ["link"] = 0xe250,
        ["link_off"] = 0xe16f,
        ["linked_camera"] = 0xe438,
        ["linked_services"] = 0xf535,
        ["liquor"] = 0xea60,
        ["list"] = 0xe896,
        ["list_alt"] = 0xe0ee,
        ["list_alt_add"] = 0xf756,
        ["lists"] = 0xe9b9,
        ["live_help"] = 0xe0c6,
        ["live_tv"] = 0xe63a,
        ["living"] = 0xf02b,
        ["local_activity"] = 0xe553,
        ["local_airport"] = 0xe53d,
        ["local_atm"] = 0xe53e,
        ["local_bar"] = 0xe540,
        ["local_cafe"] = 0xeb44,
        ["local_car_wash"] = 0xe542,
        ["local_convenience_store"] = 0xe543,
        ["local_dining"] = 0xe561,
        ["local_drink"] = 0xe544,
        ["local_fire_department"] = 0xef55,
        ["local_florist"] = 0xe545,
        ["local_gas_station"] = 0xe546,
        ["local_grocery_store"] = 0xe8cc,
        ["local_hospital"] = 0xe548,
        ["local_hotel"] = 0xe549,
        ["local_laundry_service"] = 0xe54a,
        ["local_library"] = 0xe54b,
        ["local_mall"] = 0xe54c,
        ["local_movies"] = 0xe8da,
        ["local_offer"] = 0xf05b,
        ["local_parking"] = 0xe54f,
        ["local_pharmacy"] = 0xe550,
        ["local_phone"] = 0xf0d4,
        ["local_pizza"] = 0xe552,
        ["local_play"] = 0xe553,
        ["local_police"] = 0xef56,
        ["local_post_office"] = 0xe554,
        ["local_printshop"] = 0xe8ad,
        ["local_see"] = 0xe557,
        ["local_shipping"] = 0xe558,
        ["local_taxi"] = 0xe559,
        ["location_automation"] = 0xf14f,
        ["location_away"] = 0xf150,
        ["location_chip"] = 0xf850,
        ["location_city"] = 0xe7f1,
        ["location_disabled"] = 0xe1b6,
        ["location_home"] = 0xf152,
        ["location_off"] = 0xe0c7,
        ["location_on"] = 0xf1db,
        ["location_pin"] = 0xf1db,
        ["location_searching"] = 0xe1b7,
        ["locator_tag"] = 0xf8c1,
        ["lock"] = 0xe899,
        ["lock_clock"] = 0xef57,
        ["lock_open"] = 0xe898,
        ["lock_open_right"] = 0xf656,
        ["lock_outline"] = 0xe899,
        ["lock_person"] = 0xf8f3,
        ["lock_reset"] = 0xeade,
        ["login"] = 0xea77,
        ["logo_dev"] = 0xead6,
        ["logout"] = 0xe9ba,
        ["looks"] = 0xe3fc,
        ["looks_3"] = 0xe3fb,
        ["looks_4"] = 0xe3fd,
        ["looks_5"] = 0xe3fe,
        ["looks_6"] = 0xe3ff,
        ["looks_one"] = 0xe400,
        ["looks_two"] = 0xe401,
        ["loop"] = 0xe863,
        ["loupe"] = 0xe402,
        ["low_density"] = 0xf79b,
        ["low_priority"] = 0xe16d,
        ["loyalty"] = 0xe89a,
        ["lte_mobiledata"] = 0xf02c,
        ["lte_mobiledata_badge"] = 0xf7d9,
        ["lte_plus_mobiledata"] = 0xf02d,
        ["lte_plus_mobiledata_badge"] = 0xf7d8,
        ["luggage"] = 0xf235,
        ["lunch_dining"] = 0xea61,
        ["lyrics"] = 0xec0b,
        ["macro_auto"] = 0xf6f2,
        ["macro_off"] = 0xf8d2,
        ["magic_button"] = 0xf136,
        ["magic_exchange"] = 0xf7f4,
        ["magic_tether"] = 0xf7d7,
        ["magnification_large"] = 0xf83d,
        ["magnification_small"] = 0xf83c,
        ["magnify_docked"] = 0xf7d6,
        ["magnify_fullscreen"] = 0xf7d5,
        ["mail"] = 0xe159,
        ["mail_lock"] = 0xec0a,
        ["mail_outline"] = 0xe159,
        ["male"] = 0xe58e,
        ["man"] = 0xe4eb,
        ["man_2"] = 0xf8e1,
        ["man_3"] = 0xf8e2,
        ["man_4"] = 0xf8e3,
        ["manage_accounts"] = 0xf02e,
        ["manage_history"] = 0xebe7,
        ["manage_search"] = 0xf02f,
        ["manga"] = 0xf5e3,
        ["manufacturing"] = 0xe726,
        ["map"] = 0xe55b,
        ["maps_home_work"] = 0xf030,
        ["maps_ugc"] = 0xef58,
        ["margin"] = 0xe9bb,
        ["mark_as_unread"] = 0xe9bc,
        ["mark_chat_read"] = 0xf18b,
        ["mark_chat_unread"] = 0xf189,
        ["mark_email_read"] = 0xf18c,
        ["mark_email_unread"] = 0xf18a,
        ["mark_unread_chat_alt"] = 0xeb9d,
        ["markdown"] = 0xf552,
        ["markdown_copy"] = 0xf553,
        ["markdown_paste"] = 0xf554,
        ["markunread"] = 0xe159,
        ["markunread_mailbox"] = 0xe89b,
        ["masked_transitions"] = 0xe72e,
        ["masks"] = 0xf218,
        ["match_case"] = 0xf6f1,
        ["match_word"] = 0xf6f0,
        ["matter"] = 0xe907,
        ["maximize"] = 0xe930,
        ["measuring_tape"] = 0xf6af,
        ["media_bluetooth_off"] = 0xf031,
        ["media_bluetooth_on"] = 0xf032,
        ["media_link"] = 0xf83f,
        ["media_output"] = 0xf4f2,
        ["media_output_off"] = 0xf4f3,
        ["mediation"] = 0xefa7,
        ["medical_information"] = 0xebed,
        ["medical_mask"] = 0xf80a,
        ["medical_services"] = 0xf109,
        ["medication"] = 0xf033,
        ["medication_liquid"] = 0xea87,
        ["meeting_room"] = 0xeb4f,
        ["memory"] = 0xe322,
        ["memory_alt"] = 0xf7a3,
        ["menstrual_health"] = 0xf6e1,
        ["menu"] = 0xe5d2,
        ["menu_book"] = 0xea19,
        ["menu_open"] = 0xe9bd,
        ["merge"] = 0xeb98,
        ["merge_type"] = 0xe252,
        ["message"] = 0xe0c9,
        ["metabolism"] = 0xe10b,
        ["mfg_nest_yale_lock"] = 0xf11d,
        ["mic"] = 0xe31d,
        ["mic_double"] = 0xf5d1,
        ["mic_external_off"] = 0xef59,
        ["mic_external_on"] = 0xef5a,
        ["mic_none"] = 0xe31d,
        ["mic_off"] = 0xe02b,
        ["microbiology"] = 0xe10c,
        ["microwave"] = 0xf204,
        ["microwave_gen"] = 0xe847,
        ["military_tech"] = 0xea3f,
        ["mimo"] = 0xe9be,
        ["mimo_disconnect"] = 0xe9bf,
        ["mindfulness"] = 0xf6e0,
        ["minimize"] = 0xe931,
        ["minor_crash"] = 0xebf1,
        ["mintmark"] = 0xefa9,
        ["missed_video_call"] = 0xf0ce,
        ["missed_video_call_filled"] = 0xf0ce,
        ["missing_controller"] = 0xe701,
        ["mist"] = 0xe188,
        ["mitre"] = 0xf547,
        ["mixture_med"] = 0xe4c8,
        ["mms"] = 0xe618,
        ["mobile_friendly"] = 0xe200,
        ["mobile_off"] = 0xe201,
        ["mobile_screen_share"] = 0xe0e7,
        ["mobiledata_off"] = 0xf034,
        ["mode"] = 0xf097,
        ["mode_comment"] = 0xe253,
        ["mode_cool"] = 0xf166,
        ["mode_cool_off"] = 0xf167,
        ["mode_dual"] = 0xf557,
        ["mode_edit"] = 0xf097,
        ["mode_edit_outline"] = 0xf097,
        ["mode_fan"] = 0xf168,
        ["mode_fan_off"] = 0xec17,
        ["mode_heat"] = 0xf16a,
        ["mode_heat_cool"] = 0xf16b,
        ["mode_heat_off"] = 0xf16d,
        ["mode_night"] = 0xf036,
        ["mode_of_travel"] = 0xe7ce,
        ["mode_off_on"] = 0xf16f,
        ["mode_standby"] = 0xf037,
        ["model_training"] = 0xf0cf,
        ["monetization_on"] = 0xe263,
        ["money"] = 0xe57d,
        ["money_off"] = 0xf038,
        ["money_off_csred"] = 0xf038,
        ["monitor"] = 0xef5b,
        ["monitor_heart"] = 0xeaa2,
        ["monitor_weight"] = 0xf039,
        ["monitor_weight_gain"] = 0xf6df,
        ["monitor_weight_loss"] = 0xf6de,
        ["monitoring"] = 0xf190,
        ["monochrome_photos"] = 0xe403,
        ["mood"] = 0xea22,
        ["mood_bad"] = 0xe7f3,
        ["mop"] = 0xe28d,
        ["more"] = 0xe619,
        ["more_down"] = 0xf196,
        ["more_horiz"] = 0xe5d3,
        ["more_time"] = 0xea5d,
        ["more_up"] = 0xf197,
        ["more_vert"] = 0xe5d4,
        ["mosque"] = 0xeab2,
        ["motion_blur"] = 0xf0d0,
        ["motion_mode"] = 0xf842,
        ["motion_photos_auto"] = 0xf03a,
        ["motion_photos_off"] = 0xe9c0,
        ["motion_photos_on"] = 0xe9c1,
        ["motion_photos_pause"] = 0xf227,
        ["motion_photos_paused"] = 0xf227,
        ["motion_sensor_active"] = 0xe792,
        ["motion_sensor_alert"] = 0xe784,
        ["motion_sensor_idle"] = 0xe783,
        ["motion_sensor_urgent"] = 0xe78e,
        ["motorcycle"] = 0xe91b,
        ["mountain_flag"] = 0xf5e2,
        ["mouse"] = 0xe323,
        ["move"] = 0xe740,
        ["move_down"] = 0xeb61,
        ["move_group"] = 0xf715,
        ["move_item"] = 0xf1ff,
        ["move_location"] = 0xe741,
        ["move_selection_down"] = 0xf714,
        ["move_selection_left"] = 0xf713,
        ["move_selection_right"] = 0xf712,
        ["move_selection_up"] = 0xf711,
        ["move_to_inbox"] = 0xe168,
        ["move_up"] = 0xeb64,
        ["moved_location"] = 0xe594,
        ["movie"] = 0xe404,
        ["movie_creation"] = 0xe404,
        ["movie_edit"] = 0xf840,
        ["movie_filter"] = 0xe43a,
        ["movie_info"] = 0xe02d,
        ["moving"] = 0xe501,
        ["moving_beds"] = 0xe73d,
        ["moving_ministry"] = 0xe73e,
        ["mp"] = 0xe9c3,
        ["multicooker"] = 0xe293,
        ["multiline_chart"] = 0xe6df,
        ["multiple_stop"] = 0xf1b9,
        ["museum"] = 0xea36,
        ["music_cast"] = 0xeb1a,
        ["music_note"] = 0xe405,
        ["music_off"] = 0xe440,
        ["music_video"] = 0xe063,
        ["my_location"] = 0xe55c,
        ["mystery"] = 0xf5e1,
        ["nat"] = 0xef5c,
        ["nature"] = 0xe406,
        ["nature_people"] = 0xe407,
        ["navigate_before"] = 0xe408,
        ["navigate_next"] = 0xe409,
        ["navigation"] = 0xe55d,
        ["near_me"] = 0xe569,
        ["near_me_disabled"] = 0xf1ef,
        ["nearby"] = 0xe6b7,
        ["nearby_error"] = 0xf03b,
        ["nearby_off"] = 0xf03c,
        ["nephrology"] = 0xe10d,
        ["nest_audio"] = 0xebbf,
        ["nest_cam_floodlight"] = 0xf8b7,
        ["nest_cam_indoor"] = 0xf11e,
        ["nest_cam_iq"] = 0xf11f,
        ["nest_cam_iq_outdoor"] = 0xf120,
        ["nest_cam_magnet_mount"] = 0xf8b8,
        ["nest_cam_outdoor"] = 0xf121,
        ["nest_cam_stand"] = 0xf8b9,
        ["nest_cam_wall_mount"] = 0xf8ba,
        ["nest_cam_wired_stand"] = 0xec16,
        ["nest_clock_farsight_analog"] = 0xf8bb,
        ["nest_clock_farsight_digital"] = 0xf8bc,
        ["nest_connect"] = 0xf122,
        ["nest_detect"] = 0xf123,
        ["nest_display"] = 0xf124,
        ["nest_display_max"] = 0xf125,
        ["nest_doorbell_visitor"] = 0xf8bd,
        ["nest_eco_leaf"] = 0xf8be,
        ["nest_farsight_weather"] = 0xf8bf,
        ["nest_found_savings"] = 0xf8c0,
        ["nest_gale_wifi"] = 0xf579,
        ["nest_heat_link_e"] = 0xf126,
        ["nest_heat_link_gen_3"] = 0xf127,
        ["nest_hello_doorbell"] = 0xe82c,
        ["nest_locator_tag"] = 0xf8c1,
        ["nest_mini"] = 0xe789,
        ["nest_multi_room"] = 0xf8c2,
        ["nest_protect"] = 0xe68e,
        ["nest_remote"] = 0xf5db,
        ["nest_remote_comfort_sensor"] = 0xf12a,
        ["nest_secure_alarm"] = 0xf12b,
        ["nest_sunblock"] = 0xf8c3,
        ["nest_tag"] = 0xf8c1,
        ["nest_thermostat"] = 0xe68f,
        ["nest_thermostat_e_eu"] = 0xf12d,
        ["nest_thermostat_gen_3"] = 0xf12e,
        ["nest_thermostat_sensor"] = 0xf12f,
        ["nest_thermostat_sensor_eu"] = 0xf130,
        ["nest_thermostat_zirconium_eu"] = 0xf131,
        ["nest_true_radiant"] = 0xf8c4,
        ["nest_wake_on_approach"] = 0xf8c5,
        ["nest_wake_on_press"] = 0xf8c6,
        ["nest_wifi_gale"] = 0xf132,
        ["nest_wifi_mistral"] = 0xf133,
        ["nest_wifi_point"] = 0xf134,
        ["nest_wifi_point_vento"] = 0xf134,
        ["nest_wifi_pro"] = 0xf56b,
        ["nest_wifi_pro_2"] = 0xf56a,
        ["nest_wifi_router"] = 0xf133,
        ["network_cell"] = 0xe1b9,
        ["network_check"] = 0xe640,
        ["network_intelligence_history"] = 0xf5f6,
        ["network_intelligence_update"] = 0xf5f5,
        ["network_locked"] = 0xe61a,
        ["network_manage"] = 0xf7ab,
        ["network_node"] = 0xf56e,
        ["network_ping"] = 0xebca,
        ["network_wifi"] = 0xe1ba,
        ["network_wifi_1_bar"] = 0xebe4,
        ["network_wifi_1_bar_locked"] = 0xf58f,
        ["network_wifi_2_bar"] = 0xebd6,
        ["network_wifi_2_bar_locked"] = 0xf58e,
        ["network_wifi_3_bar"] = 0xebe1,
        ["network_wifi_3_bar_locked"] = 0xf58d,
        ["network_wifi_locked"] = 0xf532,
        ["neurology"] = 0xe10e,
        ["new_label"] = 0xe609,
        ["new_releases"] = 0xef76,
        ["new_window"] = 0xf710,
        ["news"] = 0xe032,
        ["newsmode"] = 0xefad,
        ["newspaper"] = 0xeb81,
        ["newsstand"] = 0xe9c4,
        ["next_plan"] = 0xef5d,
        ["next_week"] = 0xe16a,
        ["nfc"] = 0xe1bb,
        ["night_shelter"] = 0xf1f1,
        ["night_sight_auto"] = 0xf1d7,
        ["night_sight_auto_off"] = 0xf1f9,
        ["night_sight_max"] = 0xf6c3,
        ["nightlife"] = 0xea62,
        ["nightlight"] = 0xf03d,
        ["nightlight_round"] = 0xf03d,
        ["nights_stay"] = 0xea46,
        ["no_accounts"] = 0xf03e,
        ["no_adult_content"] = 0xf8fe,
        ["no_backpack"] = 0xf237,
        ["no_crash"] = 0xebf0,
        ["no_drinks"] = 0xf1a5,
        ["no_encryption"] = 0xf03f,
        ["no_encryption_gmailerrorred"] = 0xf03f,
        ["no_flash"] = 0xf1a6,
        ["no_food"] = 0xf1a7,
        ["no_luggage"] = 0xf23b,
        ["no_meals"] = 0xf1d6,
        ["no_meeting_room"] = 0xeb4e,
        ["no_photography"] = 0xf1a8,
        ["no_sim"] = 0xe1ce,
        ["no_sound"] = 0xe710,
        ["no_stroller"] = 0xf1af,
        ["no_transfer"] = 0xf1d5,
        ["noise_aware"] = 0xebec,
        ["noise_control_off"] = 0xebf3,
        ["noise_control_on"] = 0xf8a8,
        ["nordic_walking"] = 0xe50e,
        ["north"] = 0xf1e0,
        ["north_east"] = 0xf1e1,
        ["north_west"] = 0xf1e2,
        ["not_accessible"] = 0xf0fe,
        ["not_accessible_forward"] = 0xf54a,
        ["not_interested"] = 0xf08c,
        ["not_listed_location"] = 0xe575,
        ["not_started"] = 0xf0d1,
        ["note"] = 0xe66d,
        ["note_add"] = 0xe89c,
        ["note_alt"] = 0xf040,
        ["note_stack"] = 0xf562,
        ["note_stack_add"] = 0xf563,
        ["notes"] = 0xe26c,
        ["notification_add"] = 0xe399,
        ["notification_important"] = 0xe004,
        ["notification_multiple"] = 0xe6c2,
        ["notifications"] = 0xe7f5,
        ["notifications_active"] = 0xe7f7,
        ["notifications_none"] = 0xe7f5,
        ["notifications_off"] = 0xe7f6,
        ["notifications_paused"] = 0xe7f8,
        ["notifications_unread"] = 0xf4fe,
        ["numbers"] = 0xeac7,
        ["nutrition"] = 0xe110,
        ["ods"] = 0xe6e8,
        ["odt"] = 0xe6e9,
        ["offline_bolt"] = 0xe932,
        ["offline_pin"] = 0xe90a,
        ["offline_share"] = 0xe9c5,
        ["oil_barrel"] = 0xec15,
        ["on_device_training"] = 0xebfd,
        ["on_hub_device"] = 0xe6c3,
        ["oncology"] = 0xe114,
        ["ondemand_video"] = 0xe63a,
        ["online_prediction"] = 0xf0eb,
        ["onsen"] = 0xf6f8,
        ["opacity"] = 0xe91c,
        ["open_in_browser"] = 0xe89d,
        ["open_in_full"] = 0xf1ce,
        ["open_in_new"] = 0xe89e,
        ["open_in_new_down"] = 0xf70f,
        ["open_in_new_off"] = 0xe4f6,
        ["open_in_phone"] = 0xe702,
        ["open_jam"] = 0xefae,
        ["open_with"] = 0xe89f,
        ["ophthalmology"] = 0xe115,
        ["oral_disease"] = 0xe116,
        ["order_approve"] = 0xf812,
        ["order_play"] = 0xf811,
        ["orders"] = 0xeb14,
        ["orthopedics"] = 0xf897,
        ["other_admission"] = 0xe47b,
        ["other_houses"] = 0xe58c,
        ["outbound"] = 0xe1ca,
        ["outbox"] = 0xef5f,
        ["outbox_alt"] = 0xeb17,
        ["outdoor_garden"] = 0xe205,
        ["outdoor_grill"] = 0xea47,
        ["outgoing_mail"] = 0xf0d2,
        ["outlet"] = 0xf1d4,
        ["outlined_flag"] = 0xf0c6,
        ["outpatient"] = 0xe118,
        ["outpatient_med"] = 0xe119,
        ["output"] = 0xebbe,
        ["output_circle"] = 0xf70e,
        ["oven"] = 0xe9c7,
        ["oven_gen"] = 0xe843,
        ["overview"] = 0xe4a7,
        ["overview_key"] = 0xf7d4,
        ["oxygen_saturation"] = 0xe4de,
        ["p2p"] = 0xf52a,
        ["pace"] = 0xf6b8,
        ["pacemaker"] = 0xe656,
        ["package"] = 0xe48f,
        ["package_2"] = 0xf569,
        ["padding"] = 0xe9c8,
        ["page_control"] = 0xe731,
        ["page_info"] = 0xf614,
        ["pageless"] = 0xf509,
        ["pages"] = 0xe7f9,
        ["pageview"] = 0xe8a0,
        ["paid"] = 0xf041,
        ["palette"] = 0xe40a,
        ["pallet"] = 0xf86a,
        ["pan_tool"] = 0xe925,
        ["pan_tool_alt"] = 0xebb9,
        ["pan_zoom"] = 0xf655,
        ["panorama"] = 0xe40b,
        ["panorama_fish_eye"] = 0xe40c,
        ["panorama_horizontal"] = 0xe40d,
        ["panorama_photosphere"] = 0xe9c9,
        ["panorama_vertical"] = 0xe40e,
        ["panorama_wide_angle"] = 0xe40f,
        ["paragliding"] = 0xe50f,
        ["park"] = 0xea63,
        ["partly_cloudy_day"] = 0xf172,
        ["partly_cloudy_night"] = 0xf174,
        ["partner_exchange"] = 0xf7f9,
        ["partner_reports"] = 0xefaf,
        ["party_mode"] = 0xe7fa,
        ["passkey"] = 0xf87f,
        ["password"] = 0xf042,
        ["patient_list"] = 0xe653,
        ["pattern"] = 0xf043,
        ["pause"] = 0xe034,
        ["pause_circle"] = 0xe1a2,
        ["pause_circle_filled"] = 0xe1a2,
        ["pause_circle_outline"] = 0xe1a2,
        ["pause_presentation"] = 0xe0ea,
        ["payment"] = 0xe8a1,
        ["payments"] = 0xef63,
        ["pedal_bike"] = 0xeb29,
        ["pediatrics"] = 0xe11d,
        ["pen_size_1"] = 0xf755,
        ["pen_size_2"] = 0xf754,
        ["pen_size_3"] = 0xf753,
        ["pen_size_4"] = 0xf752,
        ["pen_size_5"] = 0xf751,
        ["pending"] = 0xef64,
        ["pending_actions"] = 0xf1bb,
        ["pentagon"] = 0xeb50,
        ["people"] = 0xea21,
        ["people_alt"] = 0xea21,
        ["people_outline"] = 0xea21,
        ["percent"] = 0xeb58,
        ["performance_max"] = 0xe51a,
        ["pergola"] = 0xe203,
        ["perm_camera_mic"] = 0xe8a2,
        ["perm_contact_calendar"] = 0xe8a3,
        ["perm_data_setting"] = 0xe8a4,
        ["perm_device_information"] = 0xe8a5,
        ["perm_identity"] = 0xf0d3,
        ["perm_media"] = 0xe8a7,
        ["perm_phone_msg"] = 0xe8a8,
        ["perm_scan_wifi"] = 0xe8a9,
        ["person"] = 0xf0d3,
        ["person_2"] = 0xf8e4,
        ["person_3"] = 0xf8e5,
        ["person_4"] = 0xf8e6,
        ["person_add"] = 0xea4d,
        ["person_add_alt"] = 0xea4d,
        ["person_add_disabled"] = 0xe9cb,
        ["person_alert"] = 0xf567,
        ["person_apron"] = 0xf5a3,
        ["person_book"] = 0xf5e8,
        ["person_cancel"] = 0xf566,
        ["person_celebrate"] = 0xf7fe,
        ["person_check"] = 0xf565,
        ["person_edit"] = 0xf4fa,
        ["person_filled"] = 0xf0d3,
        ["person_off"] = 0xe510,
        ["person_outline"] = 0xf0d3,
        ["person_pin"] = 0xe55a,
        ["person_pin_circle"] = 0xe56a,
        ["person_play"] = 0xf7fd,
        ["person_raised_hand"] = 0xf59a,
        ["person_remove"] = 0xef66,
        ["person_search"] = 0xf106,
        ["personal_bag"] = 0xeb0e,
        ["personal_bag_off"] = 0xeb0f,
        ["personal_bag_question"] = 0xeb10,
        ["personal_injury"] = 0xe6da,
        ["personal_places"] = 0xe703,
        ["personal_video"] = 0xe63b,
        ["pest_control"] = 0xf0fa,
        ["pest_control_rodent"] = 0xf0fd,
        ["pet_supplies"] = 0xefb1,
        ["pets"] = 0xe91d,
        ["phishing"] = 0xead7,
        ["phone"] = 0xf0d4,
        ["phone_alt"] = 0xf0d4,
        ["phone_android"] = 0xe324,
        ["phone_bluetooth_speaker"] = 0xe61b,
        ["phone_callback"] = 0xe649,
        ["phone_disabled"] = 0xe9cc,
        ["phone_enabled"] = 0xe9cd,
        ["phone_forwarded"] = 0xe61c,
        ["phone_in_talk"] = 0xe61d,
        ["phone_iphone"] = 0xe325,
        ["phone_locked"] = 0xe61e,
        ["phone_missed"] = 0xe61f,
        ["phone_paused"] = 0xe620,
        ["phonelink"] = 0xe326,
        ["phonelink_erase"] = 0xe0db,
        ["phonelink_lock"] = 0xe0dc,
        ["phonelink_off"] = 0xe327,
        ["phonelink_ring"] = 0xe0dd,
        ["phonelink_ring_off"] = 0xf7aa,
        ["phonelink_setup"] = 0xef41,
        ["photo"] = 0xe432,
        ["photo_album"] = 0xe411,
        ["photo_auto_merge"] = 0xf530,
        ["photo_camera"] = 0xe412,
        ["photo_camera_back"] = 0xef68,
        ["photo_camera_front"] = 0xef69,
        ["photo_filter"] = 0xe43b,
        ["photo_frame"] = 0xf0d9,
        ["photo_library"] = 0xe413,
        ["photo_prints"] = 0xefb2,
        ["photo_size_select_actual"] = 0xe432,
        ["photo_size_select_large"] = 0xe433,
        ["photo_size_select_small"] = 0xe434,
        ["php"] = 0xeb8f,
        ["physical_therapy"] = 0xe11e,
        ["piano"] = 0xe521,
        ["piano_off"] = 0xe520,
        ["picture_as_pdf"] = 0xe415,
        ["picture_in_picture"] = 0xe8aa,
        ["picture_in_picture_alt"] = 0xe911,
        ["picture_in_picture_center"] = 0xf550,
        ["picture_in_picture_large"] = 0xf54f,
        ["picture_in_picture_medium"] = 0xf54e,
        ["picture_in_picture_mobile"] = 0xf517,
        ["picture_in_picture_off"] = 0xf52f,
        ["picture_in_picture_small"] = 0xf54d,
        ["pie_chart"] = 0xf0da,
        ["pie_chart_filled"] = 0xf0da,
        ["pie_chart_outline"] = 0xf0da,
        ["pie_chart_outlined"] = 0xf0da,
        ["pill"] = 0xe11f,
        ["pill_off"] = 0xf809,
        ["pin"] = 0xf045,
        ["pin_drop"] = 0xe55e,
        ["pin_end"] = 0xe767,
        ["pin_invoke"] = 0xe763,
        ["pinch"] = 0xeb38,
        ["pinch_zoom_in"] = 0xf1fa,
        ["pinch_zoom_out"] = 0xf1fb,
        ["pip"] = 0xf64d,
        ["pip_exit"] = 0xf70d,
        ["pivot_table_chart"] = 0xe9ce,
        ["place"] = 0xf1db,
        ["place_item"] = 0xf1f0,
        ["plagiarism"] = 0xea5a,
        ["planner_banner_ad_pt"] = 0xe692,
        ["planner_review"] = 0xe694,
        ["play_arrow"] = 0xe037,
        ["play_circle"] = 0xe1c4,
        ["play_disabled"] = 0xef6a,
        ["play_for_work"] = 0xe906,
        ["play_lesson"] = 0xf047,
        ["play_music"] = 0xe6ee,
        ["play_pause"] = 0xf137,
        ["play_shapes"] = 0xf7fc,
        ["playing_cards"] = 0xf5dc,
        ["playlist_add"] = 0xe03b,
        ["playlist_add_check"] = 0xe065,
        ["playlist_add_check_circle"] = 0xe7e6,
        ["playlist_add_circle"] = 0xe7e5,
        ["playlist_play"] = 0xe05f,
        ["playlist_remove"] = 0xeb80,
        ["plumbing"] = 0xf107,
        ["plus_one"] = 0xe800,
        ["podcasts"] = 0xf048,
        ["podiatry"] = 0xe120,
        ["podium"] = 0xf7fb,
        ["point_of_sale"] = 0xf17e,
        ["point_scan"] = 0xf70c,
        ["policy"] = 0xea17,
        ["poll"] = 0xf0cc,
        ["polyline"] = 0xebbb,
        ["polymer"] = 0xe8ab,
        ["pool"] = 0xeb48,
        ["portable_wifi_off"] = 0xf087,
        ["portrait"] = 0xe851,
        ["position_bottom_left"] = 0xf70b,
        ["position_bottom_right"] = 0xf70a,
        ["position_top_right"] = 0xf709,
        ["post"] = 0xe705,
        ["post_add"] = 0xea20,
        ["potted_plant"] = 0xf8aa,
        ["power"] = 0xe63c,
        ["power_input"] = 0xe336,
        ["power_off"] = 0xe646,
        ["power_rounded"] = 0xf8c7,
        ["power_settings_new"] = 0xf8c7,
        ["prayer_times"] = 0xf838,
        ["precision_manufacturing"] = 0xf049,
        ["pregnancy"] = 0xf5f1,
        ["pregnant_woman"] = 0xf5f1,
        ["preliminary"] = 0xe7d8,
        ["prescriptions"] = 0xe121,
        ["present_to_all"] = 0xe0df,
        ["preview"] = 0xf1c5,
        ["preview_off"] = 0xf7af,
        ["price_change"] = 0xf04a,
        ["price_check"] = 0xf04b,
        ["print"] = 0xe8ad,
        ["print_add"] = 0xf7a2,
        ["print_connect"] = 0xf7a1,
        ["print_disabled"] = 0xe9cf,
        ["print_error"] = 0xf7a0,
        ["print_lock"] = 0xf651,
        ["priority"] = 0xe19f,
        ["priority_high"] = 0xe645,
        ["privacy"] = 0xf148,
        ["privacy_tip"] = 0xf0dc,
        ["private_connectivity"] = 0xe744,
        ["problem"] = 0xe122,
        ["procedure"] = 0xe651,
        ["process_chart"] = 0xf855,
        ["production_quantity_limits"] = 0xe1d1,
        ["productivity"] = 0xe296,
        ["progress_activity"] = 0xe9d0,
        ["prompt_suggestion"] = 0xf4f6,
        ["propane"] = 0xec14,
        ["propane_tank"] = 0xec13,
        ["psychiatry"] = 0xe123,
        ["psychology"] = 0xea4a,
        ["psychology_alt"] = 0xf8ea,
        ["public"] = 0xe80b,
        ["public_off"] = 0xf1ca,
        ["publish"] = 0xe255,
        ["published_with_changes"] = 0xf232,
        ["pulmonology"] = 0xe124,
        ["pulse_alert"] = 0xf501,
        ["punch_clock"] = 0xeaa8,
        ["push_pin"] = 0xf10d,
        ["qr_code"] = 0xef6b,
        ["qr_code_2"] = 0xe00a,
        ["qr_code_2_add"] = 0xf658,
        ["qr_code_scanner"] = 0xf206,
        ["query_builder"] = 0xefd6,
        ["query_stats"] = 0xe4fc,
        ["question_answer"] = 0xe8af,
        ["question_exchange"] = 0xf7f3,
        ["question_mark"] = 0xeb8b,
        ["queue"] = 0xe03c,
        ["queue_music"] = 0xe03d,
        ["queue_play_next"] = 0xe066,
        ["quick_phrases"] = 0xe7d1,
        ["quick_reference"] = 0xe46e,
        ["quick_reference_all"] = 0xf801,
        ["quick_reorder"] = 0xeb15,
        ["quickreply"] = 0xef6c,
        ["quiet_time"] = 0xe1f9,
        ["quiet_time_active"] = 0xe291,
        ["quiz"] = 0xf04c,
        ["r_mobiledata"] = 0xf04d,
        ["radar"] = 0xf04e,
        ["radio"] = 0xe03e,
        ["radio_button_checked"] = 0xe837,
        ["radio_button_partial"] = 0xf560,
        ["radio_button_unchecked"] = 0xe836,
        ["radiology"] = 0xe125,
        ["railway_alert"] = 0xe9d1,
        ["rainy"] = 0xf176,
        ["rainy_heavy"] = 0xf61f,
        ["rainy_light"] = 0xf61e,
        ["rainy_snow"] = 0xf61d,
        ["ramen_dining"] = 0xea64,
        ["ramp_left"] = 0xeb9c,
        ["ramp_right"] = 0xeb96,
        ["range_hood"] = 0xe1ea,
        ["rate_review"] = 0xe560,
        ["raven"] = 0xf555,
        ["raw_off"] = 0xf04f,
        ["raw_on"] = 0xf050,
        ["read_more"] = 0xef6d,
        ["readiness_score"] = 0xf6dd,
        ["real_estate_agent"] = 0xe73a,
        ["rear_camera"] = 0xf6c2,
        ["rebase"] = 0xf845,
        ["rebase_edit"] = 0xf846,
        ["receipt"] = 0xe8b0,
        ["receipt_long"] = 0xef6e,
        ["recent_actors"] = 0xe03f,
        ["recent_patient"] = 0xf808,
        ["recommend"] = 0xe9d2,
        ["record_voice_over"] = 0xe91f,
        ["rectangle"] = 0xeb54,
        ["recycling"] = 0xe760,
        ["redeem"] = 0xe8f6,
        ["redo"] = 0xe15a,
        ["reduce_capacity"] = 0xf21c,
        ["refresh"] = 0xe5d5,
        ["regular_expression"] = 0xf750,
        ["relax"] = 0xf6dc,
        ["release_alert"] = 0xf654,
        ["remember_me"] = 0xf051,
        ["reminder"] = 0xe6c6,
        ["reminders_alt"] = 0xe6c6,
        ["remote_gen"] = 0xe83e,
        ["remove"] = 0xe15b,
        ["remove_circle"] = 0xf08f,
        ["remove_circle_outline"] = 0xf08f,
        ["remove_done"] = 0xe9d3,
        ["remove_from_queue"] = 0xe067,
        ["remove_moderator"] = 0xe9d4,
        ["remove_red_eye"] = 0xe8f4,
        ["remove_road"] = 0xebfc,
        ["remove_selection"] = 0xe9d5,
        ["remove_shopping_cart"] = 0xe928,
        ["reopen_window"] = 0xf708,
        ["reorder"] = 0xe8fe,
        ["repartition"] = 0xf8e8,
        ["repeat"] = 0xe040,
        ["repeat_on"] = 0xe9d6,
        ["repeat_one"] = 0xe041,
        ["repeat_one_on"] = 0xe9d7,
        ["replay"] = 0xe042,
        ["replay_10"] = 0xe059,
        ["replay_30"] = 0xe05a,
        ["replay_5"] = 0xe05b,
        ["replay_circle_filled"] = 0xe9d8,
        ["reply"] = 0xe15e,
        ["reply_all"] = 0xe15f,
        ["report"] = 0xf052,
        ["report_gmailerrorred"] = 0xf052,
        ["report_off"] = 0xe170,
        ["report_problem"] = 0xf083,
        ["request_page"] = 0xf22c,
        ["request_quote"] = 0xf1b6,
        ["reset_image"] = 0xf824,
        ["reset_tv"] = 0xe9d9,
        ["reset_wrench"] = 0xf56c,
        ["resize"] = 0xf707,
        ["respiratory_rate"] = 0xe127,
        ["responsive_layout"] = 0xe9da,
        ["restart_alt"] = 0xf053,
        ["restaurant"] = 0xe56c,
        ["restaurant_menu"] = 0xe561,
        ["restore"] = 0xe8b3,
        ["restore_from_trash"] = 0xe938,
        ["restore_page"] = 0xe929,
        ["resume"] = 0xf7d0,
        ["reviews"] = 0xf07c,
        ["rewarded_ads"] = 0xefb6,
        ["rheumatology"] = 0xe128,
        ["rib_cage"] = 0xf898,
        ["rice_bowl"] = 0xf1f5,
        ["right_click"] = 0xf706,
        ["right_panel_close"] = 0xf705,
        ["right_panel_open"] = 0xf704,
        ["ring_volume"] = 0xf0dd,
        ["ring_volume_filled"] = 0xf0dd,
        ["ripples"] = 0xe9db,
        ["robot"] = 0xf882,
        ["robot_2"] = 0xf5d0,
        ["rocket"] = 0xeba5,
        ["rocket_launch"] = 0xeb9b,
        ["roller_shades"] = 0xec12,
        ["roller_shades_closed"] = 0xec11,
        ["roller_skating"] = 0xebcd,
        ["roofing"] = 0xf201,
        ["room"] = 0xf1db,
        ["room_preferences"] = 0xf1b8,
        ["room_service"] = 0xeb49,
        ["rotate_90_degrees_ccw"] = 0xe418,
        ["rotate_90_degrees_cw"] = 0xeaab,
        ["rotate_left"] = 0xe419,
        ["rotate_right"] = 0xe41a,
        ["roundabout_left"] = 0xeb99,
        ["roundabout_right"] = 0xeba3,
        ["rounded_corner"] = 0xe920,
        ["route"] = 0xeacd,
        ["router"] = 0xe328,
        ["routine"] = 0xe20c,
        ["rowing"] = 0xe921,
        ["rss_feed"] = 0xe0e5,
        ["rsvp"] = 0xf055,
        ["rtt"] = 0xe9ad,
        ["rubric"] = 0xeb27,
        ["rule"] = 0xf1c2,
        ["rule_folder"] = 0xf1c9,
        ["rule_settings"] = 0xf64c,
        ["run_circle"] = 0xef6f,
        ["running_with_errors"] = 0xe51d,
        ["rv_hookup"] = 0xe642,
        ["safety_check"] = 0xebef,
        ["safety_check_off"] = 0xf59d,
        ["safety_divider"] = 0xe1cc,
        ["sailing"] = 0xe502,
        ["salinity"] = 0xf876,
        ["sanitizer"] = 0xf21d,
        ["satellite"] = 0xe562,
        ["satellite_alt"] = 0xeb3a,
        ["sauna"] = 0xf6f7,
        ["save"] = 0xe161,
        ["save_alt"] = 0xf090,
        ["save_as"] = 0xeb60,
        ["saved_search"] = 0xea11,
        ["savings"] = 0xe2eb,
        ["scale"] = 0xeb5f,
        ["scan"] = 0xf74e,
        ["scan_delete"] = 0xf74f,
        ["scanner"] = 0xe329,
        ["scatter_plot"] = 0xe268,
        ["scene"] = 0xe2a7,
        ["schedule"] = 0xefd6,
        ["schedule_send"] = 0xea0a,
        ["schema"] = 0xe4fd,
        ["school"] = 0xe80c,
        ["science"] = 0xea4b,
        ["science_off"] = 0xf542,
        ["score"] = 0xe269,
        ["scoreboard"] = 0xebd0,
        ["screen_lock_landscape"] = 0xe1be,
        ["screen_lock_portrait"] = 0xe1bf,
        ["screen_lock_rotation"] = 0xe1c0,
        ["screen_record"] = 0xf679,
        ["screen_rotation"] = 0xe1c1,
        ["screen_rotation_alt"] = 0xebee,
        ["screen_rotation_up"] = 0xf678,
        ["screen_search_desktop"] = 0xef70,
        ["screen_share"] = 0xe0e2,
        ["screenshot"] = 0xf056,
        ["screenshot_frame"] = 0xf677,
        ["screenshot_keyboard"] = 0xf7d3,
        ["screenshot_monitor"] = 0xec08,
        ["screenshot_region"] = 0xf7d2,
        ["screenshot_tablet"] = 0xf697,
        ["scrollable_header"] = 0xe9dc,
        ["scuba_diving"] = 0xebce,
        ["sd"] = 0xe9dd,
        ["sd_card"] = 0xe623,
        ["sd_card_alert"] = 0xf057,
        ["sd_storage"] = 0xe623,
        ["sdk"] = 0xe720,
        ["search"] = 0xe8b6,
        ["search_check"] = 0xf800,
        ["search_hands_free"] = 0xe696,
        ["search_off"] = 0xea76,
        ["security"] = 0xe32a,
        ["security_key"] = 0xf503,
        ["security_update"] = 0xf072,
        ["security_update_good"] = 0xf073,
        ["security_update_warning"] = 0xf074,
        ["segment"] = 0xe94b,
        ["select"] = 0xf74d,
        ["select_all"] = 0xe162,
        ["select_check_box"] = 0xf1fe,
        ["select_to_speak"] = 0xf7cf,
        ["select_window"] = 0xe6fa,
        ["select_window_off"] = 0xe506,
        ["self_care"] = 0xf86d,
        ["self_improvement"] = 0xea78,
        ["sell"] = 0xf05b,
        ["send"] = 0xe163,
        ["send_and_archive"] = 0xea0c,
        ["send_money"] = 0xe8b7,
        ["send_time_extension"] = 0xeadb,
        ["send_to_mobile"] = 0xf05c,
        ["sensor_door"] = 0xf1b5,
        ["sensor_occupied"] = 0xec10,
        ["sensor_window"] = 0xf1b4,
        ["sensors"] = 0xe51e,
        ["sensors_krx"] = 0xf556,
        ["sensors_krx_off"] = 0xf515,
        ["sensors_off"] = 0xe51f,
        ["sentiment_calm"] = 0xf6a7,
        ["sentiment_content"] = 0xf6a6,
        ["sentiment_dissatisfied"] = 0xe811,
        ["sentiment_excited"] = 0xf6a5,
        ["sentiment_extremely_dissatisfied"] = 0xf194,
        ["sentiment_frustrated"] = 0xf6a4,
        ["sentiment_neutral"] = 0xe812,
        ["sentiment_sad"] = 0xf6a3,
        ["sentiment_satisfied"] = 0xe813,
        ["sentiment_satisfied_alt"] = 0xe813,
        ["sentiment_stressed"] = 0xf6a2,
        ["sentiment_very_dissatisfied"] = 0xe814,
        ["sentiment_very_satisfied"] = 0xe815,
        ["sentiment_worried"] = 0xf6a1,
        ["service_toolbox"] = 0xe717,
        ["set_meal"] = 0xf1ea,
        ["settings"] = 0xe8b8,
        ["settings_accessibility"] = 0xf05d,
        ["settings_account_box"] = 0xf835,
        ["settings_alert"] = 0xf143,
        ["settings_applications"] = 0xe8b9,
        ["settings_b_roll"] = 0xf625,
        ["settings_backup_restore"] = 0xe8ba,
        ["settings_bluetooth"] = 0xe8bb,
        ["settings_brightness"] = 0xe8bd,
        ["settings_cell"] = 0xe8bc,
        ["settings_cinematic_blur"] = 0xf624,
        ["settings_ethernet"] = 0xe8be,
        ["settings_heart"] = 0xf522,
        ["settings_input_antenna"] = 0xe8bf,
        ["settings_input_component"] = 0xe8c1,
        ["settings_input_composite"] = 0xe8c1,
        ["settings_input_hdmi"] = 0xe8c2,
        ["settings_input_svideo"] = 0xe8c3,
        ["settings_motion_mode"] = 0xf833,
        ["settings_night_sight"] = 0xf832,
        ["settings_overscan"] = 0xe8c4,
        ["settings_panorama"] = 0xf831,
        ["settings_phone"] = 0xe8c5,
        ["settings_photo_camera"] = 0xf834,
        ["settings_power"] = 0xe8c6,
        ["settings_remote"] = 0xe8c7,
        ["settings_slow_motion"] = 0xf623,
        ["settings_suggest"] = 0xf05e,
        ["settings_system_daydream"] = 0xe1c3,
        ["settings_timelapse"] = 0xf622,
        ["settings_video_camera"] = 0xf621,
        ["settings_voice"] = 0xe8c8,
        ["settop_component"] = 0xe2ac,
        ["severe_cold"] = 0xebd3,
        ["shadow"] = 0xe9df,
        ["shadow_add"] = 0xf584,
        ["shadow_minus"] = 0xf583,
        ["shape_line"] = 0xf8d3,
        ["shape_recognition"] = 0xeb01,
        ["shapes"] = 0xe602,
        ["share"] = 0xe80d,
        ["share_location"] = 0xf05f,
        ["share_off"] = 0xf6cb,
        ["share_reviews"] = 0xf8a4,
        ["share_windows"] = 0xf613,
        ["sheets_rtl"] = 0xf823,
        ["shelf_auto_hide"] = 0xf703,
        ["shelf_position"] = 0xf702,
        ["shelves"] = 0xf86e,
        ["shield"] = 0xe9e0,
        ["shield_lock"] = 0xf686,
        ["shield_locked"] = 0xf592,
        ["shield_moon"] = 0xeaa9,
        ["shield_person"] = 0xf650,
        ["shield_question"] = 0xf529,
        ["shield_with_heart"] = 0xe78f,
        ["shield_with_house"] = 0xe78d,
        ["shift"] = 0xe5f2,
        ["shift_lock"] = 0xf7ae,
        ["shop"] = 0xe8c9,
        ["shop_2"] = 0xe8ca,
        ["shop_two"] = 0xe8ca,
        ["shopping_bag"] = 0xf1cc,
        ["shopping_basket"] = 0xe8cb,
        ["shopping_cart"] = 0xe8cc,
        ["shopping_cart_checkout"] = 0xeb88,
        ["shopping_cart_off"] = 0xf4f7,
        ["shoppingmode"] = 0xefb7,
        ["short_stay"] = 0xe4d0,
        ["short_text"] = 0xe261,
        ["shortcut"] = 0xf57a,
        ["show_chart"] = 0xe6e1,
        ["shower"] = 0xf061,
        ["shuffle"] = 0xe043,
        ["shuffle_on"] = 0xe9e1,
        ["shutter_speed"] = 0xe43d,
        ["shutter_speed_add"] = 0xf57e,
        ["shutter_speed_minus"] = 0xf57d,
        ["sick"] = 0xf220,
        ["side_navigation"] = 0xe9e2,
        ["sign_language"] = 0xebe5,
        ["signal_cellular_0_bar"] = 0xf0a8,
        ["signal_cellular_1_bar"] = 0xf0a9,
        ["signal_cellular_2_bar"] = 0xf0aa,
        ["signal_cellular_3_bar"] = 0xf0ab,
        ["signal_cellular_4_bar"] = 0xe1c8,
        ["signal_cellular_add"] = 0xf7a9,
        ["signal_cellular_alt"] = 0xe202,
        ["signal_cellular_alt_1_bar"] = 0xebdf,
        ["signal_cellular_alt_2_bar"] = 0xebe3,
        ["signal_cellular_connected_no_internet_0_bar"] = 0xf0ac,
        ["signal_cellular_connected_no_internet_4_bar"] = 0xe1cd,
        ["signal_cellular_no_sim"] = 0xe1ce,
        ["signal_cellular_nodata"] = 0xf062,
        ["signal_cellular_null"] = 0xe1cf,
        ["signal_cellular_off"] = 0xe1d0,
        ["signal_cellular_pause"] = 0xf5a7,
        ["signal_disconnected"] = 0xf239,
        ["signal_wifi_0_bar"] = 0xf0b0,
        ["signal_wifi_4_bar"] = 0xf065,
        ["signal_wifi_4_bar_lock"] = 0xe1e1,
        ["signal_wifi_bad"] = 0xf064,
        ["signal_wifi_connected_no_internet_4"] = 0xf064,
        ["signal_wifi_off"] = 0xe1da,
        ["signal_wifi_statusbar_4_bar"] = 0xf065,
        ["signal_wifi_statusbar_not_connected"] = 0xf0ef,
        ["signal_wifi_statusbar_null"] = 0xf067,
        ["signature"] = 0xf74c,
        ["signpost"] = 0xeb91,
        ["sim_card"] = 0xe32b,
        ["sim_card_alert"] = 0xf057,
        ["sim_card_download"] = 0xf068,
        ["single_bed"] = 0xea48,
        ["sip"] = 0xf069,
        ["skateboarding"] = 0xe511,
        ["skeleton"] = 0xf899,
        ["skillet"] = 0xf543,
        ["skillet_cooktop"] = 0xf544,
        ["skip_next"] = 0xe044,
        ["skip_previous"] = 0xe045,
        ["skull"] = 0xf89a,
        ["sledding"] = 0xe512,
        ["sleep"] = 0xe213,
        ["sleep_score"] = 0xf6b7,
        ["slide_library"] = 0xf822,
        ["sliders"] = 0xe9e3,
        ["slideshow"] = 0xe41b,
        ["slow_motion_video"] = 0xe068,
        ["smart_button"] = 0xf1c1,
        ["smart_display"] = 0xf06a,
        ["smart_outlet"] = 0xe844,
        ["smart_screen"] = 0xf06b,
        ["smart_toy"] = 0xf06c,
        ["smartphone"] = 0xe32c,
        ["smb_share"] = 0xf74b,
        ["smoke_free"] = 0xeb4a,
        ["smoking_rooms"] = 0xeb4b,
        ["sms"] = 0xe625,
        ["sms_failed"] = 0xe87f,
        ["snippet_folder"] = 0xf1c7,
        ["snooze"] = 0xe046,
        ["snowboarding"] = 0xe513,
        ["snowing"] = 0xe80f,
        ["snowing_heavy"] = 0xf61c,
        ["snowmobile"] = 0xe503,
        ["snowshoeing"] = 0xe514,
        ["soap"] = 0xf1b2,
        ["social_distance"] = 0xe1cb,
        ["social_leaderboard"] = 0xf6a0,
        ["solar_power"] = 0xec0f,
        ["sort"] = 0xe164,
        ["sort_by_alpha"] = 0xe053,
        ["sos"] = 0xebf7,
        ["sound_detection_dog_barking"] = 0xf149,
        ["sound_detection_glass_break"] = 0xf14a,
        ["sound_detection_loud_sound"] = 0xf14b,
        ["sound_sampler"] = 0xf6b4,
        ["soup_kitchen"] = 0xe7d3,
        ["source"] = 0xf1c8,
        ["source_environment"] = 0xe527,
        ["source_notes"] = 0xe12d,
        ["south"] = 0xf1e3,
        ["south_america"] = 0xe7e4,
        ["south_east"] = 0xf1e4,
        ["south_west"] = 0xf1e5,
        ["spa"] = 0xeb4c,
        ["space_bar"] = 0xe256,
        ["space_dashboard"] = 0xe66b,
        ["spatial_audio"] = 0xebeb,
        ["spatial_audio_off"] = 0xebe8,
        ["spatial_tracking"] = 0xebea,
        ["speaker"] = 0xe32d,
        ["speaker_group"] = 0xe32e,
        ["speaker_notes"] = 0xe8cd,
        ["speaker_notes_off"] = 0xe92a,
        ["speaker_phone"] = 0xe0d2,
        ["special_character"] = 0xf74a,
        ["specific_gravity"] = 0xf872,
        ["speech_to_text"] = 0xf8a7,
        ["speed"] = 0xe9e4,
        ["speed_0_5"] = 0xf4e2,
        ["speed_1_2"] = 0xf4e1,
        ["speed_1_5"] = 0xf4e0,
        ["speed_2x"] = 0xf4eb,
        ["spellcheck"] = 0xe8ce,
        ["splitscreen"] = 0xf06d,
        ["splitscreen_add"] = 0xf4fd,
        ["splitscreen_bottom"] = 0xf676,
        ["splitscreen_left"] = 0xf675,
        ["splitscreen_right"] = 0xf674,
        ["splitscreen_top"] = 0xf673,
        ["splitscreen_vertical_add"] = 0xf4fc,
        ["spo2"] = 0xf6db,
        ["spoke"] = 0xe9a7,
        ["sports"] = 0xea30,
        ["sports_and_outdoors"] = 0xefb8,
        ["sports_bar"] = 0xf1f3,
        ["sports_baseball"] = 0xea51,
        ["sports_basketball"] = 0xea26,
        ["sports_cricket"] = 0xea27,
        ["sports_esports"] = 0xea28,
        ["sports_football"] = 0xea29,
        ["sports_golf"] = 0xea2a,
        ["sports_gymnastics"] = 0xebc4,
        ["sports_handball"] = 0xea33,
        ["sports_hockey"] = 0xea2b,
        ["sports_kabaddi"] = 0xea34,
        ["sports_martial_arts"] = 0xeae9,
        ["sports_mma"] = 0xea2c,
        ["sports_motorsports"] = 0xea2d,
        ["sports_rugby"] = 0xea2e,
        ["sports_score"] = 0xf06e,
        ["sports_soccer"] = 0xea2f,
        ["sports_tennis"] = 0xea32,
        ["sports_volleyball"] = 0xea31,
        ["sprinkler"] = 0xe29a,
        ["sprint"] = 0xf81f,
        ["square"] = 0xeb36,
        ["square_foot"] = 0xea49,
        ["ssid_chart"] = 0xeb66,
        ["stack"] = 0xf609,
        ["stack_off"] = 0xf608,
        ["stack_star"] = 0xf607,
        ["stacked_bar_chart"] = 0xe9e6,
        ["stacked_email"] = 0xe6c7,
        ["stacked_inbox"] = 0xe6c9,
        ["stacked_line_chart"] = 0xf22b,
        ["stacks"] = 0xf500,
        ["stadia_controller"] = 0xf135,
        ["stadium"] = 0xeb90,
        ["stairs"] = 0xf1a9,
        ["star"] = 0xf09a,
        ["star_border"] = 0xf09a,
        ["star_border_purple500"] = 0xf09a,
        ["star_half"] = 0xe839,
        ["star_outline"] = 0xf09a,
        ["star_purple500"] = 0xf09a,
        ["star_rate"] = 0xf0ec,
        ["star_rate_half"] = 0xec45,
        ["stars"] = 0xe8d0,
        ["start"] = 0xe089,
        ["stat_0"] = 0xe697,
        ["stat_1"] = 0xe698,
        ["stat_2"] = 0xe699,
        ["stat_3"] = 0xe69a,
        ["stat_minus_1"] = 0xe69b,
        ["stat_minus_2"] = 0xe69c,
        ["stat_minus_3"] = 0xe69d,
        ["stay_current_landscape"] = 0xe0d3,
        ["stay_current_portrait"] = 0xe0d4,
        ["stay_primary_landscape"] = 0xe0d5,
        ["stay_primary_portrait"] = 0xe0d6,
        ["step"] = 0xf6fe,
        ["step_into"] = 0xf701,
        ["step_out"] = 0xf700,
        ["step_over"] = 0xf6ff,
        ["steppers"] = 0xe9e7,
        ["steps"] = 0xf6da,
        ["stethoscope"] = 0xf805,
        ["stethoscope_arrow"] = 0xf807,
        ["stethoscope_check"] = 0xf806,
        ["sticky_note"] = 0xe9e8,
        ["sticky_note_2"] = 0xf1fc,
        ["stock_media"] = 0xf570,
        ["stockpot"] = 0xf545,
        ["stop"] = 0xe047,
        ["stop_circle"] = 0xef71,
        ["stop_screen_share"] = 0xe0e3,
        ["storage"] = 0xe1db,
        ["store"] = 0xe8d1,
        ["store_mall_directory"] = 0xe8d1,
        ["storefront"] = 0xea12,
        ["storm"] = 0xf070,
        ["straight"] = 0xeb95,
        ["straighten"] = 0xe41c,
        ["strategy"] = 0xf5df,
        ["stream"] = 0xe9e9,
        ["stream_apps"] = 0xf79f,
        ["streetview"] = 0xe56e,
        ["stress_management"] = 0xf6d9,
        ["strikethrough_s"] = 0xe257,
        ["stroke_full"] = 0xf749,
        ["stroke_partial"] = 0xf748,
        ["stroller"] = 0xf1ae,
        ["style"] = 0xe41d,
        ["styler"] = 0xe273,
        ["stylus"] = 0xf604,
        ["stylus_laser_pointer"] = 0xf747,
        ["stylus_note"] = 0xf603,
        ["subdirectory_arrow_left"] = 0xe5d9,
        ["subdirectory_arrow_right"] = 0xe5da,
        ["subheader"] = 0xe9ea,
        ["subject"] = 0xe8d2,
        ["subscript"] = 0xf111,
        ["subscriptions"] = 0xe064,
        ["subtitles"] = 0xe048,
        ["subtitles_off"] = 0xef72,
        ["subway"] = 0xe56f,
        ["summarize"] = 0xf071,
        ["sunny"] = 0xe81a,
        ["sunny_snowing"] = 0xe819,
        ["superscript"] = 0xf112,
        ["supervised_user_circle"] = 0xe939,
        ["supervised_user_circle_off"] = 0xf60e,
        ["supervisor_account"] = 0xe8d3,
        ["support"] = 0xef73,
        ["support_agent"] = 0xf0e2,
        ["surfing"] = 0xe515,
        ["surgical"] = 0xe131,
        ["surround_sound"] = 0xe049,
        ["swap_calls"] = 0xe0d7,
        ["swap_driving_apps"] = 0xe69e,
        ["swap_driving_apps_wheel"] = 0xe69f,
        ["swap_horiz"] = 0xe8d4,
        ["swap_horizontal_circle"] = 0xe933,
        ["swap_vert"] = 0xe8d5,
        ["swap_vertical_circle"] = 0xe8d6,
        ["sweep"] = 0xe6ac,
        ["swipe"] = 0xe9ec,
        ["swipe_down"] = 0xeb53,
        ["swipe_down_alt"] = 0xeb30,
        ["swipe_left"] = 0xeb59,
        ["swipe_left_alt"] = 0xeb33,
        ["swipe_right"] = 0xeb52,
        ["swipe_right_alt"] = 0xeb56,
        ["swipe_up"] = 0xeb2e,
        ["swipe_up_alt"] = 0xeb35,
        ["swipe_vertical"] = 0xeb51,
        ["switch"] = 0xe1f4,
        ["switch_access"] = 0xf6fd,
        ["switch_access_2"] = 0xf506,
        ["switch_access_shortcut"] = 0xe7e1,
        ["switch_access_shortcut_add"] = 0xe7e2,
        ["switch_account"] = 0xe9ed,
        ["switch_camera"] = 0xe41e,
        ["switch_left"] = 0xf1d1,
        ["switch_right"] = 0xf1d2,
        ["switch_video"] = 0xe41f,
        ["switches"] = 0xe733,
        ["sword_rose"] = 0xf5de,
        ["swords"] = 0xf889,
        ["symptoms"] = 0xe132,
        ["synagogue"] = 0xeab0,
        ["sync"] = 0xe627,
        ["sync_alt"] = 0xea18,
        ["sync_disabled"] = 0xe628,
        ["sync_lock"] = 0xeaee,
        ["sync_problem"] = 0xe629,
        ["sync_saved_locally"] = 0xf820,
        ["syringe"] = 0xe133,
        ["system_security_update"] = 0xf072,
        ["system_security_update_good"] = 0xf073,
        ["system_security_update_warning"] = 0xf074,
        ["system_update"] = 0xf072,
        ["system_update_alt"] = 0xe8d7,
        ["tab"] = 0xe8d8,
        ["tab_close"] = 0xf745,
        ["tab_close_right"] = 0xf746,
        ["tab_duplicate"] = 0xf744,
        ["tab_group"] = 0xf743,
        ["tab_move"] = 0xf742,
        ["tab_new_right"] = 0xf741,
        ["tab_recent"] = 0xf740,
        ["tab_unselected"] = 0xe8d9,
        ["table"] = 0xf191,
        ["table_bar"] = 0xead2,
        ["table_chart"] = 0xe265,
        ["table_chart_view"] = 0xf6ef,
        ["table_lamp"] = 0xe1f2,
        ["table_restaurant"] = 0xeac6,
        ["table_rows"] = 0xf101,
        ["table_rows_narrow"] = 0xf73f,
        ["table_view"] = 0xf1be,
        ["tablet"] = 0xe32f,
        ["tablet_android"] = 0xe330,
        ["tablet_mac"] = 0xe331,
        ["tabs"] = 0xe9ee,
        ["tactic"] = 0xf564,
        ["tag"] = 0xe9ef,
        ["tag_faces"] = 0xea22,
        ["takeout_dining"] = 0xea74,
        ["tamper_detection_off"] = 0xe82e,
        ["tamper_detection_on"] = 0xf8c8,
        ["tap_and_play"] = 0xe62b,
        ["tapas"] = 0xf1e9,
        ["target"] = 0xe719,
        ["task"] = 0xf075,
        ["task_alt"] = 0xe2e6,
        ["taunt"] = 0xf69f,
        ["taxi_alert"] = 0xef74,
        ["team_dashboard"] = 0xe013,
        ["temp_preferences_custom"] = 0xf8c9,
        ["temp_preferences_eco"] = 0xf8ca,
        ["temple_buddhist"] = 0xeab3,
        ["temple_hindu"] = 0xeaaf,
        ["tenancy"] = 0xf0e3,
        ["terminal"] = 0xeb8e,
        ["terrain"] = 0xe564,
        ["text_ad"] = 0xe728,
        ["text_decrease"] = 0xeadd,
        ["text_fields"] = 0xe262,
        ["text_fields_alt"] = 0xe9f1,
        ["text_format"] = 0xe165,
        ["text_increase"] = 0xeae2,
        ["text_rotate_up"] = 0xe93a,
        ["text_rotate_vertical"] = 0xe93b,
        ["text_rotation_angledown"] = 0xe93c,
        ["text_rotation_angleup"] = 0xe93d,
        ["text_rotation_down"] = 0xe93e,
        ["text_rotation_none"] = 0xe93f,
        ["text_select_end"] = 0xf73e,
        ["text_select_jump_to_beginning"] = 0xf73d,
        ["text_select_jump_to_end"] = 0xf73c,
        ["text_select_move_back_character"] = 0xf73b,
        ["text_select_move_back_word"] = 0xf73a,
        ["text_select_move_down"] = 0xf739,
        ["text_select_move_forward_character"] = 0xf738,
        ["text_select_move_forward_word"] = 0xf737,
        ["text_select_move_up"] = 0xf736,
        ["text_select_start"] = 0xf735,
        ["text_snippet"] = 0xf1c6,
        ["text_to_speech"] = 0xf1bc,
        ["textsms"] = 0xe625,
        ["texture"] = 0xe421,
        ["texture_add"] = 0xf57c,
        ["texture_minus"] = 0xf57b,
        ["theater_comedy"] = 0xea66,
        ["theaters"] = 0xe8da,
        ["thermometer"] = 0xe846,
        ["thermometer_add"] = 0xf582,
        ["thermometer_gain"] = 0xf6d8,
        ["thermometer_loss"] = 0xf6d7,
        ["thermometer_minus"] = 0xf581,
        ["thermostat"] = 0xf076,
        ["thermostat_auto"] = 0xf077,
        ["thermostat_carbon"] = 0xf178,
        ["things_to_do"] = 0xeb2a,
        ["thread_unread"] = 0xf4f9,
        ["thumb_down"] = 0xf578,
        ["thumb_down_alt"] = 0xf578,
        ["thumb_down_filled"] = 0xf578,
        ["thumb_down_off"] = 0xf578,
        ["thumb_down_off_alt"] = 0xf578,
        ["thumb_up"] = 0xf577,
        ["thumb_up_alt"] = 0xf577,
        ["thumb_up_filled"] = 0xf577,
        ["thumb_up_off"] = 0xf577,
        ["thumb_up_off_alt"] = 0xf577,
        ["thumbnail_bar"] = 0xf734,
        ["thumbs_up_down"] = 0xe8dd,
        ["thunderstorm"] = 0xebdb,
        ["tibia"] = 0xf89b,
        ["tibia_alt"] = 0xf89c,
        ["time_auto"] = 0xf0e4,
        ["time_to_leave"] = 0xeff7,
        ["timelapse"] = 0xe422,
        ["timeline"] = 0xe922,
        ["timer"] = 0xe425,
        ["timer_10"] = 0xe423,
        ["timer_10_alt_1"] = 0xefbf,
        ["timer_10_select"] = 0xf07a,
        ["timer_3"] = 0xe424,
        ["timer_3_alt_1"] = 0xefc0,
        ["timer_3_select"] = 0xf07b,
        ["timer_off"] = 0xe426,
        ["tips_and_updates"] = 0xe79a,
        ["tire_repair"] = 0xebc8,
        ["title"] = 0xe264,
        ["toast"] = 0xefc1,
        ["toc"] = 0xe8de,
        ["today"] = 0xe8df,
        ["toggle_off"] = 0xe9f5,
        ["toggle_on"] = 0xe9f6,
        ["token"] = 0xea25,
        ["toll"] = 0xe8e0,
        ["tonality"] = 0xe427,
        ["toolbar"] = 0xe9f7,
        ["tools_flat_head"] = 0xf8cb,
        ["tools_installation_kit"] = 0xe2ab,
        ["tools_ladder"] = 0xe2cb,
        ["tools_level"] = 0xe77b,
        ["tools_phillips"] = 0xf8cc,
        ["tools_pliers_wire_stripper"] = 0xe2aa,
        ["tools_power_drill"] = 0xe1e9,
        ["tools_wrench"] = 0xf8cd,
        ["tooltip"] = 0xe9f8,
        ["top_panel_close"] = 0xf733,
        ["top_panel_open"] = 0xf732,
        ["topic"] = 0xf1c8,
        ["tornado"] = 0xe199,
        ["total_dissolved_solids"] = 0xf877,
        ["touch_app"] = 0xe913,
        ["touchpad_mouse"] = 0xf687,
        ["touchpad_mouse_off"] = 0xf4e6,
        ["tour"] = 0xef75,
        ["toys"] = 0xe332,
        ["toys_and_games"] = 0xefc2,
        ["toys_fan"] = 0xf887,
        ["track_changes"] = 0xe8e1,
        ["traffic"] = 0xe565,
        ["trail_length"] = 0xeb5e,
        ["trail_length_medium"] = 0xeb63,
        ["trail_length_short"] = 0xeb6d,
        ["train"] = 0xe570,
        ["tram"] = 0xe571,
        ["transcribe"] = 0xf8ec,
        ["transfer_within_a_station"] = 0xe572,
        ["transform"] = 0xe428,
        ["transgender"] = 0xe58d,
        ["transit_enterexit"] = 0xe579,
        ["transition_chop"] = 0xf50e,
        ["transition_dissolve"] = 0xf50d,
        ["transition_fade"] = 0xf50c,
        ["transition_push"] = 0xf50b,
        ["transition_slide"] = 0xf50a,
        ["translate"] = 0xe8e2,
        ["transportation"] = 0xe21d,
        ["travel"] = 0xef93,
        ["travel_explore"] = 0xe2db,
        ["travel_luggage_and_bags"] = 0xefc3,
        ["trending_down"] = 0xe8e3,
        ["trending_flat"] = 0xe8e4,
        ["trending_up"] = 0xe8e5,
        ["trip"] = 0xe6fb,
        ["trip_origin"] = 0xe57b,
        ["trolley"] = 0xf86b,
        ["trophy"] = 0xea23,
        ["troubleshoot"] = 0xe1d2,
        ["try"] = 0xf07c,
        ["tsunami"] = 0xebd8,
        ["tsv"] = 0xe6d6,
        ["tty"] = 0xf1aa,
        ["tune"] = 0xe429,
        ["tungsten"] = 0xf07d,
        ["turn_left"] = 0xeba6,
        ["turn_right"] = 0xebab,
        ["turn_sharp_left"] = 0xeba7,
        ["turn_sharp_right"] = 0xebaa,
        ["turn_slight_left"] = 0xeba4,
        ["turn_slight_right"] = 0xeb9a,
        ["turned_in"] = 0xe8e7,
        ["turned_in_not"] = 0xe8e7,
        ["tv"] = 0xe63b,
        ["tv_gen"] = 0xe830,
        ["tv_guide"] = 0xe1dc,
        ["tv_off"] = 0xe647,
        ["tv_options_edit_channels"] = 0xe1dd,
        ["tv_options_input_settings"] = 0xe1de,
        ["tv_remote"] = 0xf5d9,
        ["tv_signin"] = 0xe71b,
        ["tv_with_assistant"] = 0xe785,
        ["two_pager"] = 0xf51f,
        ["two_wheeler"] = 0xe9f9,
        ["type_specimen"] = 0xf8f0,
        ["u_turn_left"] = 0xeba1,
        ["u_turn_right"] = 0xeba2,
        ["ulna_radius"] = 0xf89d,
        ["ulna_radius_alt"] = 0xf89e,
        ["umbrella"] = 0xf1ad,
        ["unarchive"] = 0xe169,
        ["undo"] = 0xe166,
        ["unfold_less"] = 0xe5d6,
        ["unfold_less_double"] = 0xf8cf,
        ["unfold_more"] = 0xe5d7,
        ["unfold_more_double"] = 0xf8d0,
        ["ungroup"] = 0xf731,
        ["universal_currency"] = 0xe9fa,
        ["universal_currency_alt"] = 0xe734,
        ["universal_local"] = 0xe9fb,
        ["unknown_2"] = 0xe6a2,
        ["unknown_5"] = 0xe6a5,
        ["unknown_document"] = 0xf804,
        ["unknown_med"] = 0xeabd,
        ["unlicense"] = 0xeb05,
        ["unpublished"] = 0xf236,
        ["unsubscribe"] = 0xe0eb,
        ["upcoming"] = 0xf07e,
        ["update"] = 0xe923,
        ["update_disabled"] = 0xe075,
        ["upgrade"] = 0xf0fb,
        ["upload"] = 0xf09b,
        ["upload_2"] = 0xf521,
        ["upload_file"] = 0xe9fc,
        ["urology"] = 0xe137,
        ["usb"] = 0xe1e0,
        ["usb_off"] = 0xe4fa,
        ["user_attributes"] = 0xe708,
        ["vaccines"] = 0xe138,
        ["vacuum"] = 0xefc5,
        ["valve"] = 0xe224,
        ["vape_free"] = 0xebc6,
        ["vaping_rooms"] = 0xebcf,
        ["variable_add"] = 0xf51e,
        ["variable_insert"] = 0xf51d,
        ["variable_remove"] = 0xf51c,
        ["variables"] = 0xf851,
        ["ventilator"] = 0xe139,
        ["verified"] = 0xef76,
        ["verified_user"] = 0xf013,
        ["vertical_align_bottom"] = 0xe258,
        ["vertical_align_center"] = 0xe259,
        ["vertical_align_top"] = 0xe25a,
        ["vertical_distribute"] = 0xe076,
        ["vertical_shades"] = 0xec0e,
        ["vertical_shades_closed"] = 0xec0d,
        ["vertical_split"] = 0xe949,
        ["vibration"] = 0xe62d,
        ["video_call"] = 0xe070,
        ["video_camera_back"] = 0xf07f,
        ["video_camera_front"] = 0xf080,
        ["video_camera_front_off"] = 0xf83b,
        ["video_chat"] = 0xf8a0,
        ["video_file"] = 0xeb87,
        ["video_label"] = 0xe071,
        ["video_library"] = 0xe04a,
        ["video_search"] = 0xefc6,
        ["video_settings"] = 0xea75,
        ["video_stable"] = 0xf081,
        ["videocam"] = 0xe04b,
        ["videocam_off"] = 0xe04c,
        ["videogame_asset"] = 0xe338,
        ["videogame_asset_off"] = 0xe500,
        ["view_agenda"] = 0xe8e9,
        ["view_array"] = 0xe8ea,
        ["view_carousel"] = 0xe8eb,
        ["view_column"] = 0xe8ec,
        ["view_column_2"] = 0xf847,
        ["view_comfy"] = 0xe42a,
        ["view_comfy_alt"] = 0xeb73,
        ["view_compact"] = 0xe42b,
        ["view_compact_alt"] = 0xeb74,
        ["view_cozy"] = 0xeb75,
        ["view_day"] = 0xe8ed,
        ["view_headline"] = 0xe8ee,
        ["view_in_ar"] = 0xefc9,
        ["view_in_ar_new"] = 0xefc9,
        ["view_in_ar_off"] = 0xf61b,
        ["view_kanban"] = 0xeb7f,
        ["view_list"] = 0xe8ef,
        ["view_module"] = 0xe8f0,
        ["view_quilt"] = 0xe8f1,
        ["view_sidebar"] = 0xf114,
        ["view_stream"] = 0xe8f2,
        ["view_timeline"] = 0xeb85,
        ["view_week"] = 0xe8f3,
        ["vignette"] = 0xe435,
        ["villa"] = 0xe586,
        ["visibility"] = 0xe8f4,
        ["visibility_lock"] = 0xf653,
        ["visibility_off"] = 0xe8f5,
        ["vital_signs"] = 0xe650,
        ["vitals"] = 0xe13b,
        ["voice_chat"] = 0xe62e,
        ["voice_over_off"] = 0xe94a,
        ["voice_selection"] = 0xf58a,
        ["voicemail"] = 0xe0d9,
        ["volcano"] = 0xebda,
        ["volume_down"] = 0xe04d,
        ["volume_down_alt"] = 0xe79c,
        ["volume_mute"] = 0xe04e,
        ["volume_off"] = 0xe04f,
        ["volume_up"] = 0xe050,
        ["volunteer_activism"] = 0xea70,
        ["voting_chip"] = 0xf852,
        ["vpn_key"] = 0xe0da,
        ["vpn_key_alert"] = 0xf6cc,
        ["vpn_key_off"] = 0xeb7a,
        ["vpn_lock"] = 0xe62f,
        ["vr180_create2d"] = 0xefca,
        ["vr180_create2d_off"] = 0xf571,
        ["vrpano"] = 0xf082,
        ["wall_art"] = 0xefcb,
        ["wall_lamp"] = 0xe2b4,
        ["wallet"] = 0xf8ff,
        ["wallpaper"] = 0xe1bc,
        ["wallpaper_slideshow"] = 0xf672,
        ["ward"] = 0xe13c,
        ["warehouse"] = 0xebb8,
        ["warning"] = 0xf083,
        ["warning_amber"] = 0xf083,
        ["warning_off"] = 0xf7ad,
        ["wash"] = 0xf1b1,
        ["watch"] = 0xe334,
        ["watch_button_press"] = 0xf6aa,
        ["watch_later"] = 0xefd6,
        ["watch_off"] = 0xeae3,
        ["watch_screentime"] = 0xf6ae,
        ["watch_wake"] = 0xf6a9,
        ["water"] = 0xf084,
        ["water_bottle"] = 0xf69d,
        ["water_bottle_large"] = 0xf69e,
        ["water_damage"] = 0xf203,
        ["water_do"] = 0xf870,
        ["water_drop"] = 0xe798,
        ["water_ec"] = 0xf875,
        ["water_full"] = 0xf6d6,
        ["water_heater"] = 0xe284,
        ["water_lock"] = 0xf6ad,
        ["water_loss"] = 0xf6d5,
        ["water_lux"] = 0xf874,
        ["water_medium"] = 0xf6d4,
        ["water_orp"] = 0xf878,
        ["water_ph"] = 0xf87a,
        ["water_pump"] = 0xf5d8,
        ["water_voc"] = 0xf87b,
        ["waterfall_chart"] = 0xea00,
        ["waves"] = 0xe176,
        ["waving_hand"] = 0xe766,
        ["wb_auto"] = 0xe42c,
        ["wb_cloudy"] = 0xf15c,
        ["wb_incandescent"] = 0xe42e,
        ["wb_iridescent"] = 0xf07d,
        ["wb_shade"] = 0xea01,
        ["wb_sunny"] = 0xe430,
        ["wb_twilight"] = 0xe1c6,
        ["wc"] = 0xe63d,
        ["weather_hail"] = 0xf67f,
        ["weather_mix"] = 0xf60b,
        ["weather_snowy"] = 0xe2cd,
        ["web"] = 0xe051,
        ["web_asset"] = 0xe069,
        ["web_asset_off"] = 0xef47,
        ["web_stories"] = 0xe595,
        ["web_traffic"] = 0xea03,
        ["webhook"] = 0xeb92,
        ["weekend"] = 0xe16b,
        ["weight"] = 0xe13d,
        ["west"] = 0xf1e6,
        ["whatshot"] = 0xe80e,
        ["wheelchair_pickup"] = 0xf1ab,
        ["where_to_vote"] = 0xe177,
        ["widgets"] = 0xe1bd,
        ["width"] = 0xf730,
        ["width_full"] = 0xf8f5,
        ["width_normal"] = 0xf8f6,
        ["width_wide"] = 0xf8f7,
        ["wifi"] = 0xe63e,
        ["wifi_1_bar"] = 0xe4ca,
        ["wifi_2_bar"] = 0xe4d9,
        ["wifi_add"] = 0xf7a8,
        ["wifi_calling"] = 0xef77,
        ["wifi_calling_1"] = 0xf0f6,
        ["wifi_calling_2"] = 0xf0f6,
        ["wifi_calling_3"] = 0xf0f6,
        ["wifi_channel"] = 0xeb6a,
        ["wifi_find"] = 0xeb31,
        ["wifi_home"] = 0xf671,
        ["wifi_lock"] = 0xe1e1,
        ["wifi_notification"] = 0xf670,
        ["wifi_off"] = 0xe648,
        ["wifi_password"] = 0xeb6b,
        ["wifi_protected_setup"] = 0xf0fc,
        ["wifi_proxy"] = 0xf7a7,
        ["wifi_tethering"] = 0xe1e2,
        ["wifi_tethering_error"] = 0xead9,
        ["wifi_tethering_off"] = 0xf087,
        ["wind_power"] = 0xec0c,
        ["window"] = 0xf088,
        ["window_closed"] = 0xe77e,
        ["window_open"] = 0xe78c,
        ["window_sensor"] = 0xe2bb,
        ["wine_bar"] = 0xf1e8,
        ["woman"] = 0xe13e,
        ["woman_2"] = 0xf8e7,
        ["work"] = 0xe943,
        ["work_alert"] = 0xf5f7,
        ["work_history"] = 0xec09,
        ["work_off"] = 0xe942,
        ["work_outline"] = 0xe943,
        ["work_update"] = 0xf5f8,
        ["workflow"] = 0xea04,
        ["workspace_premium"] = 0xe7af,
        ["workspaces"] = 0xea0f,
        ["workspaces_outline"] = 0xea0f,
        ["wounds_injuries"] = 0xe13f,
        ["wrap_text"] = 0xe25b,
        ["wrist"] = 0xf69c,
        ["wrong_location"] = 0xef78,
        ["wysiwyg"] = 0xf1c3,
        ["yard"] = 0xf089,
        ["your_trips"] = 0xeb2b,
        ["youtube_activity"] = 0xf85a,
        ["youtube_searched_for"] = 0xe8fa,
        ["zone_person_alert"] = 0xe781,
        ["zone_person_idle"] = 0xe77a,
        ["zone_person_urgent"] = 0xe788,
        ["zoom_in"] = 0xe8ff,
        ["zoom_in_map"] = 0xeb2d,
        ["zoom_out"] = 0xe900,
        ["zoom_out_map"] = 0xe56b,
    }

    local bytemarkers = { { 0x7FF, 192 }, { 0xFFFF, 224 }, { 0x1FFFFF, 240 } }

    ---@param decimal number
    local function utf8(decimal)
        if decimal < 128 then
            return string.char(decimal)
        end
        local charbytes = {}
        for bytes, vals in ipairs(bytemarkers) do
            if decimal <= vals[1] then
                for b = bytes + 1, 2, -1 do
                    local mod = decimal % 64
                    decimal = (decimal - mod) / 64
                    charbytes[b] = string.char(128 + mod)
                end
                charbytes[1] = string.char(vals[2] + decimal)
                break
            end
        end
        return table.concat(charbytes)
    end

    ---@param iconName string
    function DiesalStyle.MaterialIcon(iconName)
        if MaterialIcons.bytes[iconName] then
            return utf8(MaterialIcons.bytes[iconName])
        end
        return ""
    end
end

do -- Set Icons
    ---@class DiesalStyle.Icon.Coords
    ---@field column integer
    ---@field row integer

    ---@class DiesalStyle.Icon.File
    ---@field prefix { [1]: string, [2]: string, [3]: string }
    ---@field size { width: integer, height: integer, icon: integer }

    ---@class DiesalStyle.Icon
    ---@field name string
    ---@field file DiesalStyle.Icon.File
    ---@field coords DiesalStyle.Icon.Coords

    ---@class DiesalStyle.Icons : { [string]: table<string, table<string, table<integer,table<string, table<integer, table<integer, DiesalStyle.Icon>>>>>> }
    DiesalStyle.Icons = DiesalStyle.Icons or {}

    local Icons = DiesalStyle.Icons

    ---@class DiesalStyle.IconsByFileColumnRow : { [string]: DiesalStyle.Icon }
    local IconsByFileColumnRow = {}

    ---@class DiesalStyle.IconsByName : { [string]: DiesalStyle.Icon }
    local IconsByName = {}

    function DiesalStyle.AddIcons(iconsToAdd)
        assert(type(iconsToAdd) == "table", "iconsToAdd parameter (1) should be a table")

        local prefixInfo = {
            [1] = { prefix = "prefix1", count = 1, file = 1, iconSize = 1 },
            [2] = { prefix = "prefix2", count = 1, file = 1, iconSize = 1 },
            [3] = { prefix = "prefix3", count = 1, file = 1, iconSize = 1 },
        }

        ---@param prefix integer
        ---@param key string
        ---@param table table
        local function checkType(prefix, key, table)
            assert(type(key) == "string", string.format("key %d for %s not a string.", prefixInfo[prefix].count, prefixInfo[prefix].prefix))
            assert(type(table) == "table", string.format("value %d for %s is not a table.", prefixInfo[prefix].count, prefixInfo[prefix].prefix))
        end

        for p1, p1Table in pairs(iconsToAdd) do
            checkType(1, p1, p1Table)
            Icons[p1] = Icons[p1] or {}
            for p2, p2Table in pairs(p1Table) do
                checkType(2, p2, p2Table)
                Icons[p1][p2] = Icons[p1][p2] or {}
                for p3, p3Table in pairs(p2Table) do
                    checkType(3, p3, p3Table)
                    local filePrefixes = string.format("%s%s%s", p1, p2, p3)
                    Icons[p1][p2][p3] = Icons[p1][p2][p3] or {}
                    for iconSize, fileDimTable in pairs(p3Table) do
                        assert(type(iconSize) == "number", string.format("icon size key %d for %s is not a number.", prefixInfo[3].iconSize, filePrefixes))
                        filePrefixes = string.format("%s[%d]", filePrefixes, iconSize)
                        Icons[p1][p2][p3][iconSize] = Icons[p1][p2][p3][iconSize] or {}
                        for fileDimKey, iconColumns in pairs(fileDimTable) do
                            assert(type(fileDimKey == "string"), string.format("file dimensions key for file %d in %s is not a string.", prefixInfo[3].file, filePrefixes))
                            local fileDims = strsplittable("x", fileDimKey, 2)

                            assert(type(tonumber(fileDims[1])) == "number", string.format("could not obtain width from %s in %s", fileDimKey, filePrefixes))
                            assert(type(tonumber(fileDims[2])) == "number", string.format("could not obtain height from %s in %s", fileDimKey, filePrefixes))
                            Icons[p1][p2][p3][iconSize][fileDimKey] = Icons[p1][p2][p3][iconSize][fileDimKey] or {}

                            filePrefixes = string.format("%s[%s]", filePrefixes, fileDimKey)

                            local fileWidth = tonumber(fileDims[1]) or 0
                            local fileHeight = tonumber(fileDims[2]) or 0
                            local maxColumns = math.floor(fileWidth / iconSize)
                            local maxRows = math.floor(fileHeight / iconSize)

                            local iconsFileTable = Icons[p1][p2][p3][iconSize][fileDimKey]

                            local columnCount = 0
                            local rowCount = 0
                            for column, rows in pairs(iconColumns) do
                                columnCount = columnCount + 1
                                assert(type(column) == "number", string.format("column %d key in %s is not a number.", columnCount, filePrefixes))
                                assert(type(rows) == "table", string.format("column %d value in %s is not a table.", columnCount, filePrefixes))
                                local filePrefixesColumn = string.format("%s[%d]", filePrefixes, column)
                                iconsFileTable[column] = iconsFileTable[column] or {}
                                for row, icon in pairs(rows) do
                                    rowCount = rowCount + 1
                                    assert(type(row) == "number", string.format("row %d key in %s is not a number.", rowCount, filePrefixesColumn))
                                    assert(type(icon) == "string", string.format("row %d value in %s is not a string.", rowCount, filePrefixesColumn))

                                    local filePrefixesColumnRow = string.format("%s[%d]", filePrefixesColumn, row)
                                    local iconName = icon

                                    iconsFileTable[column][row] = {
                                        name = iconName,
                                        file = {
                                            prefix = {
                                                [1] = p1,
                                                [2] = p2,
                                                [3] = p3,
                                            },
                                            size = {
                                                width = fileWidth,
                                                height = fileHeight,
                                                icon = iconSize,
                                            },
                                        },
                                        coords = {
                                            column = column,
                                            row = row,
                                        },
                                    }
                                    IconsByName[iconName] = IconsByName[iconName] or iconsFileTable[column][row]
                                    IconsByFileColumnRow[filePrefixesColumnRow] = iconsFileTable[column][row]
                                end
                                rowCount = 1
                            end
                            prefixInfo[3].file = prefixInfo[3].file + 1
                        end
                        prefixInfo[3].iconSize = prefixInfo[3].iconSize + 1
                    end
                    prefixInfo[3].count = prefixInfo[3].count + 1
                end
                prefixInfo[2].count = prefixInfo[2].count + 1
            end
            prefixInfo[1].count = prefixInfo[1].count + 1
        end
    end

    ---@param iconTable DiesalStyle.Icon
    local function CreateIconStyle(iconTable)
        local fileName = string.format("%s%s%s", iconTable.file.prefix[1], iconTable.file.prefix[2], iconTable.file.prefix[3])
        local iconSize = iconTable.file.size.icon

        fileName = fileName .. (iconSize ~= 16 and iconSize or "")
        local fileWidth = iconTable.file.size.width
        local fileHeight = iconTable.file.size.height
        local column = iconTable.coords.column
        local row = iconTable.coords.row
        return {
            fileName,
            {
                column,
                row,
                iconSize,
                fileWidth,
                fileHeight,
            },
        }
    end

    ---@param iconName string
    function DiesalStyle.GetIconStyleByName(iconName)
        return IconsByName[iconName] and CreateIconStyle(IconsByName[iconName]) or {}
    end

    -- [prefix1][prefix2][prefix3][iconSize][fileWidthxfileHeight][column][row]
    -- DiesalGUIcons16x256x128.tga, Column 3, Row 4
    -- [Diesal][GUI][cons][16][256x128][3][4]
    ---@param iconFile string
    function DiesalStyle.GetIconByFileColumnRow(iconFile)
        return IconsByFileColumnRow[iconFile] and CreateIconStyle(IconsByFileColumnRow[iconFile]) or {}
    end

    -- Camel Case File Name
    local DefaultDiesalIcons = {
        -- Prefix 1
        Diesal = {
            -- Prefix 2
            Button = {
                -- Prefix 3
                Icons = {
                    -- Icon Size
                    [32] = {
                        -- WidthxHeight
                        ["128x512"] = {
                            [1] = {
                                [1] = "background-horseshoe",
                                [2] = "hover-horseshoe",
                                [3] = "normal-horseshoe",
                            },
                            [2] = {
                                [1] = "background-crosshair",
                                [2] = "hover-crosshair",
                                [3] = "normal-crosshair",
                            },
                            [3] = {
                                [1] = "background-crossbones",
                                [2] = "hover-crossbones",
                                [3] = "normal-crossbones",
                            },
                            [4] = {
                                [1] = "background-tag",
                                [2] = "hover-tag",
                                [3] = "normal-tag",
                            },
                            [5] = {
                                [1] = "background-crossed-swords",
                                [2] = "hover-crossed-swords",
                                [3] = "normal-crossed-swords",
                            },
                            [6] = {
                                [1] = "background-oc",
                                [2] = "hover-oc",
                                [3] = "normal-oc",
                            },
                        },
                    },
                },
            },
            -- Prefix 2
            GU = {
                -- Prefix 3
                Icons = {
                    -- Icon Size
                    [16] = {
                        -- WidthxHeight
                        ["256x128"] = {
                            -- Column 1
                            [1] = {
                                -- Row 1
                                [1] = "solid-white-arrow-up",
                                [4] = "outline-textured-rewind",
                                [5] = "outline-textured-question-mark",
                                [6] = "outline-textured-cirle-plus",
                                [7] = "outline-textured-file",
                                [8] = "outline-blue-folder-closed",
                            },
                            [2] = {
                                [1] = "solid-white-arrow-down",
                                [4] = "outline-textured-pause",
                                [5] = "outline-textured-cog",
                                [6] = "outline-textured-cirle-minus",
                                [7] = "outline-textured-folder",
                                [8] = "outline-blue-folder-opened",
                            },
                            [3] = {
                                [1] = "solid-white-arrow-right",
                                [4] = "outline-textured-play",
                                [5] = "outline-textured-reload",
                                [6] = "outline-textured-square-minus",
                                [7] = "outline-textured-folder-plus",
                                [8] = "outline-white-file",
                            },
                            [4] = {
                                [1] = "solid-white-arrow-left",
                                [4] = "outline-textured-fast-forward",
                                [5] = "outline-textured-home",
                                [6] = "outline-textured-square-plus",
                                [7] = "outline-textured-folder-minus",
                                [8] = "outline-multi-cluster",
                            },
                            [5] = {
                                [1] = "solid-white-circle",
                                [4] = "outline-textured-back",
                                [5] = "outline-textured-arrow-down",
                                [8] = "outline-textured-diskette",
                            },
                            [6] = {
                                [4] = "outline-textured-forward",
                                [5] = "outline-textured-arrow-up",
                            },
                            [7] = {
                                [5] = "outline-textured-arrow-right",
                            },
                            [8] = {
                                [5] = "outline-textured-arrow-left",
                            },
                            [9] = {
                                [5] = "outline-textured-arrow-close",
                            },
                            [10] = {
                                [5] = "outline-textured-check",
                            },
                            [11] = {
                                [5] = "outline-textured-lock-unclocked",
                            },
                            [12] = {
                                [5] = "outline-textured-lock-locked",
                            },
                            [13] = {
                                [5] = "outline-textured-lock-delete",
                            },
                            [14] = {
                                [4] = "outline-textured-circle",
                                [5] = "outline-textured-power",
                            },
                            [15] = {
                                [4] = "outline-textured-dropplet-down",
                                [5] = "outline-textured-ellipse",
                            },
                            [16] = {
                                [4] = "outline-textured-dropplet-square",
                            },
                        },
                    },
                    [32] = {
                        ["256x256"] = {
                            [1] = {
                                [1] = "white-horseshoe",
                                [2] = "black-horseshoe",
                            },
                            [2] = {
                                [1] = "white-crosshair",
                                [2] = "black-crosshair",
                            },
                            [3] = {
                                [1] = "white-crossbones",
                                [2] = "black-crossbones",
                            },
                            [4] = {
                                [1] = "white-tag",
                                [2] = "black-tag",
                            },
                            [5] = {
                                [1] = "white-crossed-swords",
                                [2] = "black-crossed-swords",
                            },
                            [6] = {
                                [1] = "white-oc",
                                [2] = "black-oc",
                            },
                        },
                    },
                    [64] = {
                        ["256x256"] = {
                            [1] = {
                                [1] = "marker-droplette-yellow-diamond",
                            },
                            [2] = {
                                [1] = "marker-droplette-green-leaf",
                            },
                            [3] = {
                                [1] = "marker-droplette-teal-star",
                            },
                        },
                    },
                },
            },
        },
    }

    DiesalStyle.AddIcons(DefaultDiesalIcons)
end
-- ~~| DiesalStyle API |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
--[[
  Texture style table format
  style.layer BACKGROUND | BORDER | ARTWORK | OVERLAY | HIGHLIGHT (texture in this layer is automatically shown when the mouse is over the containing Frame)
  **FontStrings always appear on top of all textures in a given draw layer. avoid using sublayer
  -- ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  style.alpha alpha [0 - 1]
  style.alphaEnd alpha [0 - 1]
  style.color hexColor | {Red, Green, Blue} [0-255]
  style.colorEnd hexColor | {Red, Green, Blue} [0-255]
  style.gradient VERTICAL | HORIZONTAL
  -- ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  style.texFile texture fileName
  style.texTile true | false
  style.texCoord {left, right, top, bottom} [0-1] | {column,row,size,textureWidth,TextureHeight}
  style.texColor hexColor | {Red,Green,Blue} [0-255]
  style.texColorAlpha alpha [0 - 1]
  -- ~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  style.offset offset | {Left, Right, Top, Bottom}
  style.width width
  style.height height
]]

-- type                 = 'fill',
-- layer                = 'BACKGROUND',
--
-- gradient             = {'VERTICAL','744d00','996600'}
-- gradient_orientation = 'VERTICAL'|'HORIZONTAL ',
-- gradient_color       = {colorStart,colorEnd},
--
-- image                = {'texture-file', {left,right,top,bottom}, color, tiling_h, tiling_v}
-- image_file           = 'texture-file'
-- image_coords         = {left,right,top,bottom} | {row, coloumn, size, image width, image height }
-- image_color          = "FFFFFF"
-- image_tiling         = {'HORIZNONTAL','VERTICAL'}
--
-- color                = 'FFFFFF',
-- alpha                = 1 | {1,1}
--
-- position             = 0 | {0,0,0,0}

---@alias r number
---@alias g number
---@alias b number

---@class Diesal.Style.RGB : { [1]: r, [2]: g, [3]: b }

---@alias left number
---@alias right number
---@alias top number
---@alias bottom number
---@alias column number
---@alias row number
---@alias textureWidth number
---@alias textureHeight number

---@alias hexString string
---@alias Diesal.Style.Color hexString | Diesal.Style.RGB

---@class Diesal.Style.TexCoord : { [1]: left, [2]: right, [3]: top, [4]: bottom }
---@class Diesal.Style.TexCoord2 : { [1]: column, [2]: row, [3]: size, [4]: textureWidth, [5]: textureHeight }

--[[
  Missing required fields in type `Diesal.Style.Style`:
  `layer`, `alpha`, `alphaEnd`, `color`, `colorEnd`, `gradient`, `gradient_alpha`, `gradient_orientation`, `gradient_color`, `name`, `debug`, `texFile`, `texTile`, `texCoord`, `texColor`, `texColorAlpha`, `type`, `offset`
]]

---@class Diesal.Style.Style
---@field layer? 'BACKGROUND' | 'BORDER' | 'ARTWORK' | 'OVERLAY' | 'HIGHLIGHT'
---@field alpha? number
---@field alphaEnd? number
---@field color? Diesal.Style.Color
---@field colorEnd? Diesal.Style.Color
---@field gradient? { [1]: 'VERTICAL' | 'HORIZONTAL', [2]: string, [3]: string }
---@field gradient_alpha? number
---@field gradient_orientation? 'VERTICAL' | 'HORIZONTAL'
---@field gradient_color? {[1]: Diesal.Style.Color, [2]: Diesal.Style.Color }
---@field image? { [1]: string, [2]: Diesal.Style.TexCoord, [3]: Diesal.Style.Color, [4]: WrapMode, [5]: WrapMode }
---@field image_file? string
---@field image_coords? Diesal.Style.TexCoord | Diesal.Style.TexCoord2
---@field image_color? hexString
---@field image_tiling? { [1]: WrapMode, [2]: WrapMode }
---@field name? string
---@field debug? boolean
---@field texCoord? Diesal.Style.TexCoord | Diesal.Style.TexCoord2
---@field texColor? Diesal.Style.Color
---@field texColorAlpha? number
---@field type "texture" | "outline" | "shadow" | "font"
---@field offset? number | { [1]: left, [2]: right, [3]: top, [4]: bottom }
---@field width? number
---@field height? number
---@field position? Diesal.Style.TexCoord
---@field clear? boolean

---@class Diesal.Style.Texture.Style : Diesal.Style.Style
---@field alpha { [1]: number, [2]: number }
---@field image { file: number|string, coords: Diesal.Style.TexCoord, color: Diesal.Style.Color, tiling: { [1]: WrapMode, [2]: WrapMode } }
---@field gradient { orientation: 'VERTICAL' | 'HORIZONTAL', color: { [1]: Diesal.Style.Color, [2]: Diesal.Style.Color } }
---@field mode string

---@class Diesal.Style.Texture : Texture
---@field style Diesal.Style.Texture.Style?

---@class Diesal.Style.Stylesheet : {[string]: Diesal.Style.Style | Diesal.Style.Texture.Style}

---@param texture Texture
---@param style Diesal.Style.Style
function DiesalStyle:StyleTexture(texture, style)
    -- | Setup Texture.style |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if not texture.style or style.clear then
        ---@diagnostic disable-next-line: missing-fields, inject-field
        texture.style = {}
    end
    -- debugging
    texture.style.name = style.name or texture.style.name
    texture.style.debug = style.debug or texture.style.debug
    -- | Format Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    -- Gradient ~~~~~~~~~~~~~~~~~~~~~~~~~
    if style.gradient and type(style.gradient) == "table" then
        local orientation = formatOrientation(style.gradient[1])
        if orientation then
            texture.style.gradient = {
                orientation = orientation,
                color = style.gradient[2] and style.gradient[3] and { style.gradient[2], style.gradient[3] },
            }
        end
    end

    local orientation = formatOrientation(style.gradient_orientation)
    if orientation then
        style.gradient_orientation = orientation -- fuck you
    end

    if not texture.style.gradient and (style.gradient_orientation or style.gradient_alpha or style.gradient_color) then
        texture.style.gradient = {}
    end
    -- Image ~~~~~~~~~~~~~~~~~~~~~~~~~
    if style.image and type(style.image) == "table" then
        local file = formatFile(style.image[1])
        local coords = formatCoords(style.image[2])
        if file and coords then
            texture.style.image = {
                file = file,
                coords = coords,
                color = style.image[3],
                tiling = { style.image[4], style.image[5] },
            }
        end
    end

    if not texture.style.image and style.image_file then
        texture.style.image = {}
    end
    -- | Update Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    texture.style.layer = style.layer or texture.style.layer or DEFAULT_LAYER
    texture.style.position = formatPosition(style.position) or texture.style.position or { 0, 0, 0, 0 }
    texture.style.width = style.width or texture.style.width
    texture.style.height = style.height or texture.style.height
    texture.style.color = style.color or texture.style.color
    texture.style.alpha = formatAlpha(style.alpha) or texture.style.alpha or { 1, 1 }
    -- gradient
    if texture.style.gradient then
        texture.style.gradient.orientation = style.gradient_orientation or texture.style.gradient.orientation or DEFAULT_GRADIENT_ORIENTATION
        texture.style.gradient.color = style.gradient_color or texture.style.gradient.color or { DEFAULT_COLOR, DEFAULT_COLOR }
    end
    -- image
    if texture.style.image then
        texture.style.image.file = formatFile(style.image_file) or texture.style.image.file
        texture.style.image.coords = formatCoords(style.image_coords) or texture.style.image.coords or { 0, 1, 0, 1 }
        texture.style.image.color = style.image_color or texture.style.image.color
        texture.style.image.tiling = style.image_tiling or texture.style.image.tiling
    end
    -- | Apply Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    -- layer
    texture:SetDrawLayer(texture.style.layer, 0)
    -- position
    texture:ClearAllPoints() -- clear offsets
    if texture.style.position[1] then
        texture:SetPoint("LEFT", -texture.style.position[1], 0)
    end
    if texture.style.position[2] then
        texture:SetPoint("RIGHT", texture.style.position[2], 0)
    end
    if texture.style.position[3] then
        texture:SetPoint("TOP", 0, texture.style.position[3])
    end
    if texture.style.position[4] then
        texture:SetPoint("BOTTOM", 0, -texture.style.position[4])
    end
    -- size
    if texture.style.width then
        texture:SetWidth(texture.style.width)
    end
    if texture.style.height then
        texture:SetHeight(texture.style.height)
    end

    if style.debug then
        print(texture:GetHeight(), texture.style.position[1], texture.style.position[2], texture.style.position[3], texture.style.position[4])
    end
    -- [1] Texture > [2] gradient > [3] color
    if texture.style.image then -- [1] Texture
        -- set mode
        texture.style.mode = "image"
        -- clear any old settings
        setGradient(texture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1) -- clear gradient
        texture:SetColorTexture(1, 1, 1, 1) -- clear color
        -- apply settings
        texture:SetTexCoord(texture.style.image.coords[1], texture.style.image.coords[2], texture.style.image.coords[3], texture.style.image.coords[4])
        texture:SetTexture(texture.style.image.file, texture.style.image.tiling and texture.style.image.tiling[1], texture.style.image.tiling and texture.style.image.tiling[2])
        texture:SetHorizTile(texture.style.image.tiling[1] and true)
        texture:SetVertTile(texture.style.image.tiling[2] and true)
        local r, g, b = GetBlizzColorValues(texture.style.image.color)
        texture:SetVertexColor(r or 1, g or 1, b or 1, texture.style.alpha[1])
    elseif texture.style.gradient then -- [2] gradient
        -- set mode
        texture.style.mode = "gradient"
        -- clear any old  settings
        texture:SetTexture() -- clear image
        texture:SetColorTexture(1, 1, 1, 1) -- clear color
        -- apply settings
        local r1, g1, b1 = GetBlizzColorValues(texture.style.gradient.color[texture.style.gradient.orientation == "HORIZONTAL" and 1 or 2])
        local r2, g2, b2 = GetBlizzColorValues(texture.style.gradient.color[texture.style.gradient.orientation == "HORIZONTAL" and 2 or 1])
        local a1, a2 = texture.style.alpha[texture.style.gradient.orientation == "HORIZONTAL" and 1 or 2], texture.style.alpha[texture.style.gradient.orientation == "HORIZONTAL" and 2 or 1]
        setGradient(texture, texture.style.gradient.orientation, r1, g1, b1, a1, r2, g2, b2, a2)
    elseif texture.style.color then -- [3] color
        -- set mode
        texture.style.mode = "color"
        -- clear any old settings
        texture:SetTexture() -- clear image
        setGradient(texture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1) -- clear gradient
        -- apply settings
        local r, g, b = GetBlizzColorValues(texture.style.color)
        setColor(texture, r, g, b, texture.style.alpha[1])
    else
        -- set mode
        texture.style.mode = "none!"
        -- clear the texture
        texture:SetTexture() -- clear image
        setGradient(texture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
        texture:SetColorTexture(0, 0, 0, 0) -- clear color
    end
end

---@param leftTexture Diesal.Style.Texture
---@param rightTexture Diesal.Style.Texture
---@param topTexture Diesal.Style.Texture
---@param bottomTexture Diesal.Style.Texture
---@param style Diesal.Style.Style
function DiesalStyle:StyleOutline(leftTexture, rightTexture, topTexture, bottomTexture, style)
    -- | Setup Texture.style |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if not leftTexture.style or style.clear then
        ---@diagnostic disable-next-line: missing-fields
        leftTexture.style = {}
        rightTexture.style = leftTexture.style
        topTexture.style = leftTexture.style
        bottomTexture.style = leftTexture.style
    end
    local texture = leftTexture
    -- debugging
    texture.style.name = style.name or texture.style.name
    texture.style.debug = style.debug or texture.style.debug
    -- | Format Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if style.gradient and type(style.gradient) == "table" then
        texture.style.gradient = {
            orientation = style.gradient[1]:upper(),
            color = style.gradient[2] and style.gradient[3] and { style.gradient[2], style.gradient[3] },
        }
    end
    style.gradient_orientation = style.gradient_orientation and style.gradient_orientation:upper() --formatOrientation(style.gradient_orientation) -- fuck you
    if not texture.style.gradient and (style.gradient_orientation or style.gradient_alpha or style.gradient_color) then
        texture.style.gradient = {}
    end
    -- | Update Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    texture.style.layer = style.layer or texture.style.layer or DEFAULT_LAYER
    texture.style.position = formatPosition(style.position) or texture.style.position or { 0, 0, 0, 0 }
    texture.style.width = style.width or texture.style.width
    texture.style.height = style.height or texture.style.height
    texture.style.color = style.color or texture.style.color
    texture.style.alpha = formatAlpha(style.alpha) or texture.style.alpha or { 1, 1 }
    -- gradient
    if texture.style.gradient then
        texture.style.gradient.orientation = style.gradient_orientation or texture.style.gradient.orientation or DEFAULT_GRADIENT_ORIENTATION
        texture.style.gradient.color = style.gradient_color or texture.style.gradient.color or { DEFAULT_COLOR, DEFAULT_COLOR }
    end
    -- | Apply Settings |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    -- layer
    leftTexture:SetDrawLayer(texture.style.layer, 0)
    rightTexture:SetDrawLayer(texture.style.layer, 0)
    topTexture:SetDrawLayer(texture.style.layer, 0)
    bottomTexture:SetDrawLayer(texture.style.layer, 0)
    -- position
    leftTexture:ClearAllPoints()
    rightTexture:ClearAllPoints()
    topTexture:ClearAllPoints()
    bottomTexture:ClearAllPoints()

    if texture.style.position[1] then
        leftTexture:SetPoint("LEFT", -texture.style.position[1], 0)
    else
        leftTexture:SetPoint("RIGHT", -texture.style.width, 0)
    end
    if texture.style.position[3] then
        leftTexture:SetPoint("TOP", 0, texture.style.position[3])
    end
    if texture.style.position[4] then
        leftTexture:SetPoint("BOTTOM", 0, -texture.style.position[4])
    end
    if texture.style.position[2] then
        rightTexture:SetPoint("RIGHT", texture.style.position[2], 0)
    else
        rightTexture:SetPoint("LEFT", texture.style.width - (texture.style.position[1] + 1), 0)
    end
    if texture.style.position[3] then
        rightTexture:SetPoint("TOP", 0, texture.style.position[3])
    end
    if texture.style.position[4] then
        rightTexture:SetPoint("BOTTOM", 0, -texture.style.position[4])
    end
    if texture.style.position[1] then
        topTexture:SetPoint("LEFT", -texture.style.position[1] + 1, 0)
    end
    if texture.style.position[2] then
        topTexture:SetPoint("RIGHT", texture.style.position[2] - 1, 0)
    end
    if texture.style.position[3] then
        topTexture:SetPoint("TOP", 0, texture.style.position[3])
    else
        topTexture:SetPoint("BOTTOM", 0, texture.style.height - 1)
    end
    if texture.style.position[1] then
        bottomTexture:SetPoint("LEFT", -texture.style.position[1] + 1, 0)
    end
    if texture.style.position[2] then
        bottomTexture:SetPoint("RIGHT", texture.style.position[2] - 1, 0)
    end
    if texture.style.position[4] then
        bottomTexture:SetPoint("BOTTOM", 0, -texture.style.position[4])
    else
        bottomTexture:SetPoint("TOP", 0, -(texture.style.height + 1) + (texture.style.position[3] + 2))
    end
    -- size
    leftTexture:SetWidth(1)
    if texture.style.height then
        leftTexture:SetHeight(texture.style.height)
    end
    rightTexture:SetWidth(1)
    if texture.style.height then
        rightTexture:SetHeight(texture.style.height)
    end
    topTexture:SetHeight(1)
    if texture.style.width then
        topTexture:SetWidth(texture.style.width - 2)
    end
    bottomTexture:SetHeight(1)
    if texture.style.width then
        bottomTexture:SetWidth(texture.style.width - 2)
    end
    -- texture
    if texture.style.gradient then
        -- set mode
        texture.style.mode = "gradient"
        -- clear any old  settings
        leftTexture:SetTexture() -- clear image
        -- leftTexture:SetAlpha(1) -- reset alpha
        rightTexture:SetTexture() -- clear image
        -- rightTexture:SetAlpha(1) -- reset alpha
        topTexture:SetTexture() -- clear image
        -- topTexture:SetAlpha(1) -- reset alpha
        bottomTexture:SetTexture() -- clear image
        -- bottomTexture:SetAlpha(1) -- reset alpha

        local r1, g1, b1, r2, g2, b2, a1, a2

        if texture.style.gradient.orientation == "HORIZONTAL" then
            -- clear settings
            setGradient(leftTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
            setGradient(rightTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
            topTexture:SetColorTexture(1, 1, 1, 1) -- clear color
            bottomTexture:SetColorTexture(1, 1, 1, 1) -- clear color

            -- aply settings
            r1, g1, b1 = GetBlizzColorValues(texture.style.gradient.color[1])
            r2, g2, b2 = GetBlizzColorValues(texture.style.gradient.color[2])
            a1, a2 = texture.style.alpha[1], texture.style.alpha[2]

            setColor(leftTexture, r1, g1, b1, a1)
            setColor(rightTexture, r2, g2, b2, a2)
            setGradient(topTexture, "HORIZONTAL", r1, g1, b1, a1, r2, g2, b2, a2)
            setGradient(bottomTexture, "HORIZONTAL", r1, g1, b1, a1, r2, g2, b2, a2)
        elseif texture.style.gradient.orientation == "VERTICAL" then
            -- clear settings
            leftTexture:SetColorTexture(1, 1, 1, 1) -- clear color
            rightTexture:SetColorTexture(1, 1, 1, 1) -- clear color
            setGradient(topTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
            setGradient(bottomTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)

            -- aply settings
            r1, g1, b1 = GetBlizzColorValues(texture.style.gradient.color[2])
            r2, g2, b2 = GetBlizzColorValues(texture.style.gradient.color[1])
            a1, a2 = texture.style.alpha[2], texture.style.alpha[1]

            setColor(topTexture, r2, g2, b2, a2)
            setColor(bottomTexture, r1, g1, b1, a1)
            setGradient(leftTexture, "VERTICAL", r1, g1, b1, a1, r2, g2, b2, a2)
            setGradient(rightTexture, "VERTICAL", r1, g1, b1, a1, r2, g2, b2, a2)
        else
            texture.style.mode = "gradient: no orientation!"
            -- should never be here
        end
    elseif texture.style.color then
        -- set mode
        texture.style.mode = "color"
        -- clear any old settings
        setGradient(leftTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
        setGradient(rightTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
        setGradient(topTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
        setGradient(bottomTexture, "HORIZONTAL", 1, 1, 1, 1, 1, 1, 1, 1)
        -- apply settings
        local r, g, b = GetBlizzColorValues(texture.style.color)

        setColor(leftTexture, r, g, b, texture.style.alpha[1])
        setColor(rightTexture, r, g, b, texture.style.alpha[1])
        setColor(topTexture, r, g, b, texture.style.alpha[1])
        setColor(bottomTexture, r, g, b, texture.style.alpha[1])
    else
        -- set mode
        texture.style.mode = "none!"
        -- clear the texture
        leftTexture:SetTexture() -- clear image
        setGradient(leftTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
        leftTexture:SetColorTexture(0, 0, 0, 0) -- clear color
        rightTexture:SetTexture() -- clear image
        setGradient(rightTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
        rightTexture:SetColorTexture(0, 0, 0, 0) -- clear color
        topTexture:SetTexture() -- clear image
        setGradient(topTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
        topTexture:SetColorTexture(0, 0, 0, 0) -- clear color
        bottomTexture:SetTexture() -- clear image
        setGradient(bottomTexture, "HORIZONTAL", 0, 0, 0, 0, 0, 0, 0, 0) -- clear gradient
        bottomTexture:SetColorTexture(0, 0, 0, 0) -- clear color
    end
end

---@class Diesal.Style.ShadowStyle : Diesal.Style.Style
---@field edgeFile? string
---@field edgeSize? number
---@field red? number
---@field green? number
---@field blue? number

---@class Diesal.Style.Shadow : Frame, BackdropTemplate
---@field style Diesal.Style.ShadowStyle

---@class Diesal.Style.ShadowObject : Diesal.GUI.ObjectBase
---@field shadow Diesal.Style.Shadow

---@param object Diesal.Style.ShadowObject
---@param frame Frame
---@param style Diesal.Style.ShadowStyle
function DiesalStyle:StyleShadow(object, frame, style)
    object.shadow = object.shadow or CreateFrame("Frame", nil, frame, BackdropTemplateMixin and "BackdropTemplate") --CreateFrame("Frame",nil,frame)
    object.shadow:Show()
    if not object.shadow.style or style.clear then
        object.shadow.style = {}
    end
    local shadowStyle = object.shadow.style
    -- ~~ Format New Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    local red, green, blue = DiesalTools.GetColor(style.color)
    local offset = style.offset and type(style.offset) == "number" and { style.offset, style.offset, style.offset, style.offset } or style.offset
    -- Setting ~~~~~~~~~~~~~~~~~~~~~~~ New Setting ~~~~~~~~~~~~~~~ Old Setting ~~~~~~~~~~~~~~~~~ Default ~~~~~~~~~~~~~~~~~~
    shadowStyle.edgeFile = style.edgeFile or shadowStyle.edgeFile or getMedia("border", "shadow")
    shadowStyle.edgeSize = style.edgeSize or shadowStyle.edgeSize or 28

    shadowStyle.red = red or shadowStyle.red or 0
    shadowStyle.green = green or shadowStyle.green or 0
    shadowStyle.blue = blue or shadowStyle.blue or 0
    shadowStyle.alpha = style.alpha or shadowStyle.alpha or 0.45

    shadowStyle.offset = offset or shadowStyle.offset or { 20, 20, 20, 20 }
    -- ~~ Apply Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    if shadowStyle.offset[1] then
        object.shadow:SetPoint("LEFT", -shadowStyle.offset[1], 0)
    end
    if shadowStyle.offset[2] then
        object.shadow:SetPoint("RIGHT", shadowStyle.offset[2], 0)
    end
    if shadowStyle.offset[3] then
        object.shadow:SetPoint("TOP", 0, shadowStyle.offset[3])
    end
    if shadowStyle.offset[4] then
        object.shadow:SetPoint("BOTTOM", 0, -shadowStyle.offset[4])
    end

    object.shadow:SetBackdrop({ edgeFile = shadowStyle.edgeFile, edgeSize = shadowStyle.edgeSize })
    object.shadow:SetBackdropBorderColor(shadowStyle.red, shadowStyle.green, shadowStyle.blue, shadowStyle.alpha)
end

--[[ Font style table format
TODO style.offset ( offset|{ Left, Right, Top, Bottom })
TODO style.width ( width )
TODO style.height ( height )

style.font ( Path to a font file )
style.fontSize ( Size (point size) of the font to be displayed (in pixels) )
style.flags ( Additional properties specified by one or more of the following tokens: MONOCHROME, OUTLINE | THICKOUTLINE ) (comma delimitered string)
style.alpha ( alpha )
style.color ( hexColor|{ Red, Green, Blue } [0-255])
style.lineSpacing ( number - Sets the font instance's amount of spacing between lines)
]]

---@class Diesal.Style.FontStyle
---@field font string
---@field filename string
---@field fontSize number
---@field flags string
---@field alpha number
---@field color Diesal.Style.Color
---@field lineSpacing number
---@field red number
---@field green number
---@field blue number

---@class Diesal.Style.FontString : FontString
---@field style Diesal.Style.FontStyle

---@param fontInstance Diesal.Style.FontString
---@param name string
---@param style Diesal.Style.FontStyle
function DiesalStyle:StyleFont(fontInstance, name, style)
    local filename, fontSize, flags = fontInstance:GetFont()
    local red, green, blue, alpha = fontInstance:GetTextColor()
    local lineSpacing = fontInstance:GetSpacing()
    -- Fallback to DiesalFontNormal for Patch 8.1
    if not filename then
        filename, fontSize, flags = DiesalFontNormal:GetFont()
        red, green, blue, alpha = DiesalFontNormal:GetTextColor()
        lineSpacing = DiesalFontNormal:GetSpacing()
    end
    ---@diagnostic disable-next-line: assign-type-mismatch
    style.red, style.green, style.blue = DiesalTools.GetColor(style.color)
    -- ~~ Set Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    style.filename = style.filename or filename
    style.fontSize = style.fontSize or fontSize
    style.flags = style.flags or flags

    style.red = style.red or red
    style.green = style.green or green
    style.blue = style.blue or blue
    style.alpha = style.alpha or alpha
    style.lineSpacing = style.lineSpacing or lineSpacing
    -- ~~ Apply Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    fontInstance:SetFont(style.filename, style.fontSize, style.flags)
    fontInstance:SetTextColor(style.red, style.green, style.blue, style.alpha)
    fontInstance:SetSpacing(style.lineSpacing)

    fontInstance.style = style
end

---@param object Diesal.GUI.ObjectBase
---@param name string
---@param style Diesal.Style.Style
function DiesalStyle:UpdateObjectStyle(object, name, style)
    if not style or type(style) ~= "table" then
        return
    end
    if type(name) ~= "string" then
        return
    end
    -- ~~ Clear Texture ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if style.clear then
        -- clear texture
        if object.textures[name] then
            DiesalStyle:ReleaseTexture(object, name)
        end
        -- clear OUTLINE
        for i = 1, #OUTLINES do
            if object.textures[name .. OUTLINES[i]] then
                DiesalStyle:ReleaseTexture(object, name .. OUTLINES[i])
            end
        end
    end
    -- add texture name to style for better debugging
    style.name = name
    -- ~~ Get styleType ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if not style.type then
        return
    end
    local styleType = DiesalTools.Capitalize(style.type)
    if not DiesalStyle["Style" .. styleType] then
        geterrorhandler()(style.type .. " is not a valid style type")
        return
    end
    -- ~~ Get Frame ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    local framename = name:match("^[ \t]*([%w%d%_]*)")
    local frame = object[framename]
    if not frame then
        return
    end
    -- ~~ Style ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    if styleType == "Texture" then
        local texture = object.textures[name]
        if not texture then
            texture = newTexture()
            object.textures[name] = texture
        end
        texture:SetParent(frame)
        DiesalStyle:StyleTexture(texture, style)
        return
    end
    if styleType == "Outline" then
        local textures = {}
        for i = 1, #OUTLINES do
            local texture = object.textures[name .. OUTLINES[i]]
            if type(texture) == "nil" then
                texture = newTexture()
                object.textures[name .. OUTLINES[i]] = texture
            end
            texture:SetParent(frame)
            textures[i] = texture
        end
        DiesalStyle:StyleOutline(textures[1], textures[2], textures[3], textures[4], style)
        return
    end
    if styleType == "Shadow" then
        ---@cast object Diesal.Style.ShadowObject
        DiesalStyle:StyleShadow(object, frame, style --[[ @as Diesal.Style.ShadowStyle ]])
        return
    end
    if styleType == "Font" then
        DiesalStyle:StyleFont(frame, name, style --[[ @as Diesal.Style.FontStyle ]])
    end
end

---@param object Diesal.GUI.ObjectBase
---@param name string
---@param style Diesal.Style.Style
function DiesalStyle:SetObjectStyle(object, name, style)
    if not style or type(style) ~= "table" then
        return
    end
    if type(name) ~= "string" then
        return
    end
    -- clear texture
    if object.textures[name] then
        DiesalStyle:ReleaseTexture(object, name)
    end
    -- clear OUTLINE
    for i = 1, #OUTLINES do
        if object.textures[name .. OUTLINES[i]] then
            DiesalStyle:ReleaseTexture(object, name .. OUTLINES[i])
        end
    end
    -- Set object style
    DiesalStyle:UpdateObjectStyle(object, name, style)
end

---@param object Diesal.GUI.ObjectBase
---@param Stylesheet Diesal.Style.Stylesheet
function DiesalStyle:UpdateObjectStylesheet(object, Stylesheet)
    if not Stylesheet or type(Stylesheet) ~= "table" then
        return
    end
    if not object.textures then
        object.textures = {}
    end

    for name, style in pairs(Stylesheet) do
        self:UpdateObjectStyle(object, name, style)
    end
end

---@param object Diesal.GUI.ObjectBase
---@param Stylesheet Diesal.Style.Stylesheet
function DiesalStyle:SetObjectStylesheet(object, Stylesheet)
    if not object.textures then
        object.textures = {}
    end

    DiesalStyle:ReleaseTextures(object)

    for name, style in pairs(Stylesheet) do
        self:UpdateObjectStyle(object, name, style)
    end
end

---@param object Diesal.GUI.ObjectBase
---@param name string
function DiesalStyle:ReleaseTexture(object, name)
    if not object or not object.textures or not object.textures[name] then
        error("No such texture on ojbect", 2)
        return
    end
    releaseTexture(object.textures[name])
    object.textures[name] = nil
end

---@param object Diesal.GUI.ObjectBase
function DiesalStyle:ReleaseTextures(object)
    for name, texture in pairs(object.textures) do
        releaseTexture(texture)
        object.textures[name] = nil
    end
end

---@param mediaType string
---@param name string
function DiesalStyle:GetMedia(mediaType, name)
    return getMedia(mediaType, name)
end

---@param mediaType string
---@param name string
---@param mediaFile string
function DiesalStyle:AddMedia(mediaType, name, mediaFile)
    addMedia(mediaType, name, mediaFile)
end
