try {
    let fonts = [
        {"font": "50px  sans-serif", "text": "0-_{w."}, {
            "font": "50px  serif",
            "text": "0-_{w."
        }, {"font": "50px 'Andale Mono',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Arial Narrow',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Arial Unicode MS',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Batang',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Batang',  serif", "text": "0-_{w."}, {
            "font": "50px 'Bell MT',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Bell MT',  serif", "text": "0-_{w."}, {
            "font": "50px 'Brush Script',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Brush Script',  serif", "text": "0-_{w."}, {
            "font": "50px 'Brush Script MT',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Calibri',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Calibri',  serif",
            "text": "0-_{w."
        }, {"font": "50px 'Charter',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Courier',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Courier New',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Curlz MT',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Curlz MT',  serif", "text": "0-_{w."}, {
            "font": "50px 'DejaVu Sans',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'DejaVu Sans',  serif", "text": "0-_{w."}, {
            "font": "50px 'DejaVu Sans Mono',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'DejaVu Sans Mono',  serif", "text": "0-_{w."}, {
            "font": "50px 'DejaVu Serif Condensed',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'DejaVu Serif Condensed',  serif", "text": "0-_{w."}, {
            "font": "50px 'Droid Sans',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Droid Sans',  serif", "text": "0-_{w."}, {
            "font": "50px 'Droid Sans Fallback',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Droid Sans Fallback',  serif", "text": "0-_{w."}, {
            "font": "50px 'Droid Serif',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Droid Serif',  serif", "text": "0-_{w."}, {
            "font": "50px 'Forte',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Forte',  serif", "text": "0-_{w."}, {
            "font": "50px 'Futura',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Geneva',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Hei',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Leelawadee',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Leelawadee',  serif",
            "text": "0-_{w."
        }, {"font": "50px 'Levenim MT',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Levenim MT',  serif",
            "text": "0-_{w."
        }, {"font": "50px 'Liberation Sans',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Liberation Sans',  serif",
            "text": "0-_{w."
        }, {
            "font": "50px 'Liberation Sans Narrow',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Liberation Sans Narrow',  serif", "text": "0-_{w."}, {
            "font": "50px 'Marlett',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Marlett',  serif", "text": "0-_{w."}, {
            "font": "50px 'Meiryo UI',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Meiryo UI',  serif", "text": "0-_{w."}, {
            "font": "50px 'Microsoft Uighur',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Microsoft Uighur',  serif", "text": "0-_{w."}, {
            "font": "50px 'Microsoft YaHei UI',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Microsoft YaHei UI',  serif", "text": "0-_{w."}, {
            "font": "50px 'MS Mincho',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'MS Mincho',  serif", "text": "0-_{w."}, {
            "font": "50px 'MS UI Gothic',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'MS UI Gothic',  serif", "text": "0-_{w."}, {
            "font": "50px 'NanumGothic',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Nirmala UI',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Nirmala UI',  serif",
            "text": "0-_{w."
        }, {"font": "50px 'Palatino',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Papyrus',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'PMingLiU',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'PMingLiU',  serif",
            "text": "0-_{w."
        }, {"font": "50px 'PT Serif',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'SimHei',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'SimHei',  serif", "text": "0-_{w."}, {
            "font": "50px 'STIXVariants',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'STSong',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Traditional Arabic',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Traditional Arabic',  serif", "text": "0-_{w."}, {
            "font": "50px 'Urdu Typesetting',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Urdu Typesetting',  serif", "text": "0-_{w."}, {
            "font": "50px 'Verdana',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Wingdings',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Wingdings 3',  sans-serif",
            "text": "0-_{w."
        }, {"font": "50px 'Helkevtrica',  sans-serif", "text": "0-_{w."}, {
            "font": "50px 'Helkevtrica',  serif",
            "text": "0-_{w."
        }, {"font": "1000px sans-serif", "text": "₹"}, {"font": "1000px sans-serif", "text": "▁"}, {
            "font": "1000px sans-serif",
            "text": "₺"
        }, {"font": "1000px sans-serif", "text": "ꜽ"}, {"font": "1000px sans-serif", "text": "�"}, {
            "font": "1000px sans-serif",
            "text": "₸"
        }, {"font": "1000px sans-serif", "text": "׆"}, {"font": "1000px sans-serif", "text": "ẞ"}, {
            "font": "1000px sans-serif",
            "text": "ॿ"
        }, {"font": "1000px sans-serif", "text": ""}, {"font": "1000px sans-serif", "text": "᳚"}, {
            "font": "1000px sans-serif",
            "text": "៝"
        }, {"font": "1000px sans-serif", "text": "⎮"}, {"font": "1000px sans-serif", "text": "ം"}, {
            "font": "1000px sans-serif",
            "text": "ஂ"
        }, {"font": "1000px sans-serif", "text": "ᅚ"}, {"font": "1000px sans-serif", "text": "␥"}, {
            "font": "1000px sans-serif",
            "text": "〮"
        }, {"font": "1000px sans-serif", "text": "꠰"}, {"font": "1000px sans-serif", "text": "⬆"}, {
            "font": "1000px sans-serif",
            "text": "⇤"
        }, {"font": "1000px sans-serif", "text": "₽"}, {"font": "1000px sans-serif", "text": "ⱻ"}, {
            "font": "1000px sans-serif",
            "text": "₰"
        }, {"font": "1000px sans-serif", "text": "ﯮ"}, {"font": "1000px sans-serif", "text": ""}, {
            "font": "1000px sans-serif",
            "text": ""
        }, {"font": "1000px sans-serif", "text": ""}, {"font": "1000px sans-serif", "text": "Ⴀ"}, {
            "font": "1000px sans-serif",
            "text": "𝞐"
        }, {"font": "1000px sans-serif", "text": "܀"}, {"font": "1000px sans-serif", "text": "ᥐ"}, {
            "font": "1000px sans-serif",
            "text": "ゕ"
        }, {"font": "1000px sans-serif", "text": "匭"}, {
            "font": "1000px sans-serif",
            "text": "؜"
        }, {"font": "1000px sans-serif", "text": "⃣"}, {"font": "1000px sans-serif", "text": "￹"}, {
            "font": "1000px sans-serif",
            "text": "Ș"
        }, {"font": "1000px sans-serif", "text": "֏"}, {"font": "1000px sans-serif", "text": "ࣤ"}, {
            "font": "1000px sans-serif",
            "text": "঳"
        }, {"font": "1000px sans-serif", "text": "᱐"}, {"font": "1000px sans-serif", "text": "☙"}, {
            "font": "1000px serif",
            "text": "₹"
        }, {"font": "1000px serif", "text": "▁"}, {"font": "1000px serif", "text": "₺"}, {
            "font": "1000px serif",
            "text": "ꜽ"
        }, {"font": "1000px serif", "text": "�"}, {"font": "1000px serif", "text": "₸"}, {
            "font": "1000px serif",
            "text": "׆"
        }, {"font": "1000px serif", "text": "ẞ"}, {"font": "1000px serif", "text": "ॿ"}, {
            "font": "1000px serif",
            "text": ""
        }, {"font": "1000px serif", "text": "᳚"}, {"font": "1000px serif", "text": "៝"}, {
            "font": "1000px serif",
            "text": "⎮"
        }, {"font": "1000px serif", "text": "ം"}, {"font": "1000px serif", "text": "ஂ"}, {
            "font": "1000px serif",
            "text": "ᅚ"
        }, {"font": "1000px serif", "text": "␥"}, {"font": "1000px serif", "text": "〮"}, {
            "font": "1000px serif",
            "text": "꠰"
        }, {"font": "1000px serif", "text": "⬆"}, {"font": "1000px serif", "text": "⇤"}, {
            "font": "1000px serif",
            "text": "₽"
        }, {"font": "1000px serif", "text": "ⱻ"}, {"font": "1000px serif", "text": "₰"}, {
            "font": "1000px serif",
            "text": "ﯮ"
        }, {"font": "1000px serif", "text": ""}, {"font": "1000px serif", "text": ""}, {
            "font": "1000px serif",
            "text": ""
        }, {"font": "1000px serif", "text": "Ⴀ"}, {"font": "1000px serif", "text": "𝞐"}, {
            "font": "1000px serif",
            "text": "܀"
        }, {"font": "1000px serif", "text": "ᥐ"}, {"font": "1000px serif", "text": "ゕ"}, {
            "font": "1000px serif",
            "text": "匭"
        }, {"font": "1000px serif", "text": "؜"}, {"font": "1000px serif", "text": "⃣"}, {
            "font": "1000px serif",
            "text": "￹"
        }, {"font": "1000px serif", "text": "Ș"}, {"font": "1000px serif", "text": "֏"}, {
            "font": "1000px serif",
            "text": "ࣤ"
        }, {"font": "1000px serif", "text": "঳"}, {"font": "1000px serif", "text": "᱐"}, {
            "font": "1000px serif",
            "text": "☙"
        }, {"font": "1000px monospace", "text": "₹"}, {"font": "1000px monospace", "text": "▁"}, {
            "font": "1000px monospace",
            "text": "₺"
        }, {"font": "1000px monospace", "text": "ꜽ"}, {"font": "1000px monospace", "text": "�"}, {
            "font": "1000px monospace",
            "text": "₸"
        }, {"font": "1000px monospace", "text": "׆"}, {"font": "1000px monospace", "text": "ẞ"}, {
            "font": "1000px monospace",
            "text": "ॿ"
        }, {"font": "1000px monospace", "text": ""}, {"font": "1000px monospace", "text": "᳚"}, {
            "font": "1000px monospace",
            "text": "៝"
        }, {"font": "1000px monospace", "text": "⎮"}, {"font": "1000px monospace", "text": "ം"}, {
            "font": "1000px monospace",
            "text": "ஂ"
        }, {"font": "1000px monospace", "text": "ᅚ"}, {"font": "1000px monospace", "text": "␥"}, {
            "font": "1000px monospace",
            "text": "〮"
        }, {"font": "1000px monospace", "text": "꠰"}, {"font": "1000px monospace", "text": "⬆"}, {
            "font": "1000px monospace",
            "text": "⇤"
        }, {"font": "1000px monospace", "text": "₽"}, {"font": "1000px monospace", "text": "ⱻ"}, {
            "font": "1000px monospace",
            "text": "₰"
        }, {"font": "1000px monospace", "text": "ﯮ"}, {"font": "1000px monospace", "text": ""}, {
            "font": "1000px monospace",
            "text": ""
        }, {"font": "1000px monospace", "text": ""}, {"font": "1000px monospace", "text": "Ⴀ"}, {
            "font": "1000px monospace",
            "text": "𝞐"
        }, {"font": "1000px monospace", "text": "܀"}, {"font": "1000px monospace", "text": "ᥐ"}, {
            "font": "1000px monospace",
            "text": "ゕ"
        }, {"font": "1000px monospace", "text": "匭"}, {"font": "1000px monospace", "text": "؜"}, {
            "font": "1000px monospace",
            "text": "⃣"
        }, {"font": "1000px monospace", "text": "￹"}, {"font": "1000px monospace", "text": "Ș"}, {
            "font": "1000px monospace",
            "text": "֏"
        }, {"font": "1000px monospace", "text": "ࣤ"}, {"font": "1000px monospace", "text": "঳"}, {
            "font": "1000px monospace",
            "text": "᱐"
        }, {"font": "1000px monospace", "text": "☙"}, {"font": "1000px cursive", "text": "₹"}, {
            "font": "1000px cursive",
            "text": "▁"
        }, {"font": "1000px cursive", "text": "₺"}, {"font": "1000px cursive", "text": "ꜽ"}, {
            "font": "1000px cursive",
            "text": "�"
        }, {"font": "1000px cursive", "text": "₸"}, {"font": "1000px cursive", "text": "׆"}, {
            "font": "1000px cursive",
            "text": "ẞ"
        }, {"font": "1000px cursive", "text": "ॿ"}, {"font": "1000px cursive", "text": ""}, {
            "font": "1000px cursive",
            "text": "᳚"
        }, {"font": "1000px cursive", "text": "៝"}, {"font": "1000px cursive", "text": "⎮"}, {
            "font": "1000px cursive",
            "text": "ം"
        }, {"font": "1000px cursive", "text": "ஂ"}, {"font": "1000px cursive", "text": "ᅚ"}, {
            "font": "1000px cursive",
            "text": "␥"
        }, {"font": "1000px cursive", "text": "〮"}, {"font": "1000px cursive", "text": "꠰"}, {
            "font": "1000px cursive",
            "text": "⬆"
        }, {"font": "1000px cursive", "text": "⇤"}, {"font": "1000px cursive", "text": "₽"}, {
            "font": "1000px cursive",
            "text": "ⱻ"
        }, {"font": "1000px cursive", "text": "₰"}, {"font": "1000px cursive", "text": "ﯮ"}, {
            "font": "1000px cursive",
            "text": ""
        }, {"font": "1000px cursive", "text": ""}, {"font": "1000px cursive", "text": ""}, {
            "font": "1000px cursive",
            "text": "Ⴀ"
        }, {"font": "1000px cursive", "text": "𝞐"}, {"font": "1000px cursive", "text": "܀"}, {
            "font": "1000px cursive",
            "text": "ᥐ"
        }, {"font": "1000px cursive", "text": "ゕ"}, {"font": "1000px cursive", "text": "匭"}, {
            "font": "1000px cursive",
            "text": "؜"
        }, {"font": "1000px cursive", "text": "⃣"}, {"font": "1000px cursive", "text": "￹"}, {
            "font": "1000px cursive",
            "text": "Ș"
        }, {"font": "1000px cursive", "text": "֏"}, {"font": "1000px cursive", "text": "ࣤ"}, {
            "font": "1000px cursive",
            "text": "঳"
        }, {"font": "1000px cursive", "text": "᱐"}, {"font": "1000px cursive", "text": "☙"}, {
            "font": "1000px fantasy",
            "text": "₹"
        }, {"font": "1000px fantasy", "text": "▁"}, {"font": "1000px fantasy", "text": "₺"}, {
            "font": "1000px fantasy",
            "text": "ꜽ"
        }, {"font": "1000px fantasy", "text": "�"}, {"font": "1000px fantasy", "text": "₸"}, {
            "font": "1000px fantasy",
            "text": "׆"
        }, {"font": "1000px fantasy", "text": "ẞ"}, {"font": "1000px fantasy", "text": "ॿ"}, {
            "font": "1000px fantasy",
            "text": ""
        }, {"font": "1000px fantasy", "text": "᳚"}, {"font": "1000px fantasy", "text": "៝"}, {
            "font": "1000px fantasy",
            "text": "⎮"
        }, {"font": "1000px fantasy", "text": "ം"}, {"font": "1000px fantasy", "text": "ஂ"}, {
            "font": "1000px fantasy",
            "text": "ᅚ"
        }, {"font": "1000px fantasy", "text": "␥"}, {"font": "1000px fantasy", "text": "〮"}, {
            "font": "1000px fantasy",
            "text": "꠰"
        }, {"font": "1000px fantasy", "text": "⬆"}, {"font": "1000px fantasy", "text": "⇤"}, {
            "font": "1000px fantasy",
            "text": "₽"
        }, {"font": "1000px fantasy", "text": "ⱻ"}, {"font": "1000px fantasy", "text": "₰"}, {
            "font": "1000px fantasy",
            "text": "ﯮ"
        }, {"font": "1000px fantasy", "text": ""}, {"font": "1000px fantasy", "text": ""}, {
            "font": "1000px fantasy",
            "text": ""
        }, {"font": "1000px fantasy", "text": "Ⴀ"}, {"font": "1000px fantasy", "text": "𝞐"}, {
            "font": "1000px fantasy",
            "text": "܀"
        }, {"font": "1000px fantasy", "text": "ᥐ"}, {"font": "1000px fantasy", "text": "ゕ"}, {
            "font": "1000px fantasy",
            "text": "匭"
        }, {"font": "1000px fantasy", "text": "؜"}, {"font": "1000px fantasy", "text": "⃣"}, {
            "font": "1000px fantasy",
            "text": "￹"
        }, {"font": "1000px fantasy", "text": "Ș"}, {"font": "1000px fantasy", "text": "֏"}, {
            "font": "1000px fantasy",
            "text": "ࣤ"
        }, {"font": "1000px fantasy", "text": "঳"}, {"font": "1000px fantasy", "text": "᱐"}, {
            "font": "1000px fantasy",
            "text": "☙"
        }, {"font": "72px monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px serif", "text": "mmmmmmmmlli"}, {
            "font": "72px ARNOPRO, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px ARNOPRO, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px ARNOPRO, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px AgencyFB, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px AgencyFB, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px AgencyFB, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px ArabicTypesetting, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px ArabicTypesetting, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px ArabicTypesetting, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px ArialUnicodeMS, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px ArialUnicodeMS, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px ArialUnicodeMS, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px AvantGardeBkBT, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px AvantGardeBkBT, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px AvantGardeBkBT, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px BankGothicMdBT, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px BankGothicMdBT, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px BankGothicMdBT, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Batang, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Batang, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Batang, serif",
            "text": "mmmmmmmmlli"
        }, {
            "font": "72px BitstreamVeraSansMono, monospace",
            "text": "mmmmmmmmlli"
        }, {
            "font": "72px BitstreamVeraSansMono, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px BitstreamVeraSansMono, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Calibri, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Calibri, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Calibri, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Century, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px Century, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Century, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px CenturyGothic, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px CenturyGothic, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px CenturyGothic, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Clarendon, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px Clarendon, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Clarendon, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px EUROSTILE, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px EUROSTILE, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px EUROSTILE, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px FranklinGothic, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px FranklinGothic, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px FranklinGothic, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px FuturaBkBT, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px FuturaBkBT, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px FuturaBkBT, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px FuturaMdBT, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px FuturaMdBT, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px FuturaMdBT, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px GOTHAM, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px GOTHAM, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px GOTHAM, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px GillSans, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px GillSans, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px GillSans, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px HELV, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px HELV, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px HELV, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Haettenschweiler, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px Haettenschweiler, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Haettenschweiler, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px HelveticaNeue, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px HelveticaNeue, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px HelveticaNeue, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Humanst521BT, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px Humanst521BT, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Humanst521BT, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Leelawadee, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Leelawadee, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Leelawadee, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px LetterGothic, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px LetterGothic, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px LetterGothic, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px LevenimMT, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px LevenimMT, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px LevenimMT, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px LucidaBright, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px LucidaBright, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px LucidaBright, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px LucidaSans, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px LucidaSans, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px LucidaSans, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MSMincho, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px MSMincho, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MSMincho, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MSOutlook, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MSOutlook, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MSOutlook, serif",
            "text": "mmmmmmmmlli"
        }, {
            "font": "72px MSReferenceSpecialty, monospace",
            "text": "mmmmmmmmlli"
        }, {
            "font": "72px MSReferenceSpecialty, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MSReferenceSpecialty, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MSUIGothic, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MSUIGothic, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MSUIGothic, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MTExtra, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px MTExtra, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MTExtra, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MYRIADPRO, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MYRIADPRO, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MYRIADPRO, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Marlett, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px Marlett, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Marlett, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MeiryoUI, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MeiryoUI, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MeiryoUI, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MicrosoftUighur, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px MicrosoftUighur, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MicrosoftUighur, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MinionPro, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MinionPro, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px MinionPro, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MonotypeCorsiva, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px MonotypeCorsiva, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px MonotypeCorsiva, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px PMingLiU, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px PMingLiU, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px PMingLiU, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Pristina, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px Pristina, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Pristina, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px SCRIPTINA, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px SCRIPTINA, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px SCRIPTINA, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px SegoeUILight, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px SegoeUILight, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px SegoeUILight, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Serifa, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Serifa, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Serifa, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px SimHei, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px SimHei, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px SimHei, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px SmallFonts, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px SmallFonts, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px SmallFonts, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Staccato222BT, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px Staccato222BT, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Staccato222BT, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px TRAJANPRO, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px TRAJANPRO, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px TRAJANPRO, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px UniversCE55Medium, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px UniversCE55Medium, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px UniversCE55Medium, serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Vrinda, monospace",
            "text": "mmmmmmmmlli"
        }, {"font": "72px Vrinda, sans-serif", "text": "mmmmmmmmlli"}, {
            "font": "72px Vrinda, serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px ZWAdobeF, monospace", "text": "mmmmmmmmlli"}, {
            "font": "72px ZWAdobeF, sans-serif",
            "text": "mmmmmmmmlli"
        }, {"font": "72px ZWAdobeF, serif", "text": "mmmmmmmmlli"}]

    let fontsRes = {}
    var canvas = document.createElement('canvas');
    var ctx = canvas.getContext('2d')
    ctx.textBaseline = 'top';
    for (let i = 0; i < fonts.length; i++) {
        ctx.font = fonts[i].font;
        let met = ctx.measureText(fonts[i].text)
        if (!fontsRes[fonts[i].font]) {
            fontsRes[fonts[i].font] = {}
        }
        fontsRes[fonts[i].font][fonts[i].text] = {
            width: met.width,
            actualboundingboxascent: met.actualBoundingBoxAscent,
            actualboundingboxleft: met.actualBoundingBoxLeft,
            actualboundingboxright: met.actualBoundingBoxRight,
            fontboundingboxascent: met.fontBoundingBoxAscent,
            actualboundingboxdescent: met.actualBoundingBoxDescent,
        }
    }


    let imgsRes = {};

    let sss = [
        {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["😎", -1, 96],
            "imageData": [18, 90, 1, 1]
        }, {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["6️⃣", -1, 96],
            "imageData": [38, 77, 1, 1]
        }, {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["🍼", -1, 96],
            "imageData": [48, 28, 1, 1]
        }, {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["🏴󠁧󠁢󠁥󠁮󠁧󠁿", -1, 96],
            "imageData": [94, 23, 1, 1]
        }, {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["📊", -1, 96],
            "imageData": [26, 46, 1, 1]
        }, {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["🏴󠁧󠁢󠁥󠁮󠁧󠁿", -1, 96],
            "imageData": [47, 23, 1, 1]
        }, {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["㊗️", -1, 96],
            "imageData": [37, 17, 1, 1]
        }, {
            "font": "94px sans-serif",
            "fillStyle": "#000000",
            "fillText": ["⛎", -1, 96],
            "imageData": [62, 28, 1, 1]
        }
    ]

    let imgRes = {};
    for (let i = 0; i < sss.length; i++) {

        var a = document.createElement('canvas')
        a.width = 96
        a.height = 96
        let ctx = a.getContext('2d');
        let s = sss[i];
        ctx.font = s.font;
        ctx.fillStyle = s.fillStyle;
        ctx.fillText(...s.fillText)

        let data = ctx.getImageData(...s.imageData);
        if (!imgRes[s.font]) {
            imgRes[s.font] = {}
        }
        imgRes[s.font][s.imageData + ''] = data.data + ''

    }


    let glArgs = {
        3413: 8,
        3412: 8,
        3411: 8,
        3410: 8,
        3414: 24,
        35661: 32,
        34076: 16384,
        36349: 1024,
        34024: 16384,
        34930: 16,
        3379: 16384,
        36348: 31,
        34921: 16,
        35660: 16,
        36347: 1024,
        7937: 'WebKit WebGL',
        35724: 'WebGL GLSL ES 1.0 (OpenGL ES GLSL ES 1.0 Chromium)',
        3415: 0,
        7936: 'WebKit',
        7938: 'WebGL 1.0 (OpenGL ES 2.0 Chromium)',
        37445: 'Google Inc.',
        37446: 'ANGLE (Apple, Apple M1 Max, OpenGL 4.1)',
        34047: 16
    };


    var glARgs = Object.keys(glArgs);
    var canvas = document.createElement('canvas')
    var gl = canvas.getContext('webgl')
    gl.getExtension('WEBGL_debug_renderer_info')
    gl.getExtension('EXT_texture_filter_anisotropic')
    for (let i = 0; i < glARgs.length; i++) {
        glArgs[glARgs[i]] = gl.getParameter(parseInt(glARgs[i]))
    }


    delete canvas
    let navigatorparams = {
        appname: navigator.appName,
        appversion: navigator.appVersion,
        appcodename: navigator.appCodeName,
        hardwareconcurrency: navigator.hardwareConcurrency,
        maxtouchpoints: navigator.maxTouchPoints,
        platform: navigator.platform,
        product: navigator.product,
        productsub: navigator.productSub,
        useragent: navigator.userAgent,
        vendor: navigator.vendor,
        vendorsub: navigator.vendorSub,
        donottrack: navigator.doNotTrack,
    }

    let screenparams = {
        height: screen.height,
        width: screen.width,
        availheight: screen.availHeight,
        availwidth: screen.availWidth,
        pixeldepth: screen.pixelDepth,
        colordepth: screen.colorDepth,
    }


    let featurePolicy;
    if (document.featurePolicy) {
        featurePolicy = {
            features: document.featurePolicy.features(),
            allowedfeatures: document.featurePolicy.allowedFeatures(),
        }
    }
    let windowparams = {
        innerheight: window.innerHeight,
        innerwidth: window.innerWidth,
        outerheight: window.outerHeight,
        outerwidth: window.outerWidth,
        screenx: window.screenX,
        screeny: window.screenY,
        pageyoffset: window.pageYOffset,
        devicepixelratio: window.devicePixelRatio,
    }


    let plugins = navigator.plugins;

    let plgs = {}

    function getObj(r) {

        return {
            description: r.description,
            suffixes: r.suffixes,
            type: r.type,
        }

    }

    for (let i = 0; i < plugins.length; i++) {
        let p = plugins.item(i);
        let pi = {}
        let keys = ['0', '1', 'application/pdf', 'text/pdf', 'description', 'filename', 'length', 'name'];
        for (const key of keys) {
            let r = p[key];
            if (typeof r === 'object') {
                r = getObj(r)
                r.enabledPlugin = [];
            }
            pi[key] = r
        }
        plgs[i] = pi
    }

    let mimes = [];
    let mimeTypes = navigator.mimeTypes;
    for (let i = 0; i < mimeTypes.length; i++) {
        let mime = mimeTypes.item(i);
        mimes.push({
            description: mime.description,
            suffixes: mime.suffixes,
            type: mime.type,
        })
    }

    function getDataUrl() {
        var canvas = document.createElement('canvas');
        let ctx = canvas.getContext('2d');
        ctx.font = '18pt Sans';
        ctx.textBaseline = 'top'
        ctx.fillText('Hel$&?6%){mZ+#@', 2, 2)
        return canvas.toDataURL("image/png");

    }

    function getDataUrl2() {
        var canvas = document.createElement('canvas');
        let ctx = canvas.getContext('2d');
        canvas.width = 5;
        canvas.height = 5;
        ctx.font = '20px Arial';
        ctx.shadowOffsetX = 2;
        ctx.shadowOffsetY = 2;
        ctx.shadowBlur = 2;
        ctx.textBaseline = 'top'
        ctx.fillStyle = 'rgba(22, 22, 22, 0.08636862211354912)'
        ctx.fillText('Hel$&?6%){mZ+#@👺', 105, 105)
        return {
            data: ctx.getImageData(0, 0, 5, 5).data + '',
            url: canvas.toDataURL()
        }

    }


    function canplay() {
        let videos = {
            "audio/aac; codecs=\"flac\"": "",
            "audio/flac": "probably",
            "audio/mpeg; codecs=\"mp3\"": "probably",
            "audio/mpeg; codecs=\"vp9\"": "",
            "audio/webm; codecs=\"vp8\"": "",
            "audio/webz": "",
            "audio/x-m4a; codecs=\"mp3\"": "",
            "audio/x-m4a; codecs=\"vp8, mp4a.40\"": "",
            "audio/x-m4a; codecs=\"vp9, mp4a.40.2\"": "",
            "video/mp4": "maybe",
            "video/mp4; codecs=\"ac-3\"": "",
            "video/mp4; codecs=\"avc1.42011E\"": "",
            "video/mp4; codecs=\"avc1.42E009\"": "maybe",
            "video/mp4; codecs=\"avc1.42E034\"": "probably",
            "video/mp4; codecs=\"avc1.42F01E\"": "probably",
            "video/mp4; codecs=\"avc1.4D001E\"": "probably",
            "video/mp4; codecs=\"avc3.42001E\"": "probably",
            "video/mp4; codecs=\"avc3.42E01E, mp4a.40.29\"": "probably",
            "video/mp4; codecs=\"flac\"": "probably",
            "video/mp4; codecs=\"hev1\"": "",
            "video/mp4; codecs=\"hvc1x\"": "",
            "video/mp4; codecs=\"lavc1337\"": "",
            "video/mp4; codecs=\"mp4a.40.02\"": "probably",
            "video/mp4; codecs=\"mp4a.40.5\"": "probably",
            "video/mp4; codecs=\"mp4a.67\"": "probably",
            "video/mp4; codecs=\"opus\"": "probably",
            "video/ogg; codecs=\"flac\"": "probably",
            "video/ogg; codecs=\"opus\"": "probably",
            "video/ogg; codecs=\"vp8\"": "probably",
            "video/webm": "maybe",
            "video/webm; codecs=\"av01.0.04M.08\"": "probably",
            "video/webm; codecs=\"vp09.02.10.08\"": "probably",
            "video/x-dv": "",
            "video/x-m4v; codecs=\"avc1.42AC23\"": "maybe"
        };
        var v = document.createElement('video');
        for (let i = 0; i < videos.length; i++) {
            videos[i] = v.canPlayType(videos[i]);
        }
        return videos;
    }

    function stringToHex(str) {
        var val = "";
        for (var i = 0; i < str.length; i++) {
            let a = (str.charCodeAt(i) - 20).toString(16);
            if (a.length == 1) {
                val += "0" + a;
            } else {
                val += a
            }
        }
        return val;
    }

    let webglImg = {};
    let userAgentData = {};

    navigator.userAgentData && navigator.userAgentData.getHighEntropyValues(['architecture', 'bitness', 'brands', 'mobile', 'model', 'platform',
        'platformVersion', 'uaFullVersion', 'wow64', 'fullVersionList']).then(e => {

        userAgentData['highValue'] = e
        userAgentData['brands'] = navigator.userAgentData.brands
        userAgentData['mobile'] = navigator.userAgentData.mobile
        userAgentData['platform'] = navigator.userAgentData.platform
        // console.log(JSON.stringify(userAgentData))


    })

    webglImg = function () {
        let canvas = document.createElement("canvas");
        canvas.width = 150;
        canvas.height = 150;
        let ctx = canvas.getContext('webgl2');
        let shader = ctx.createShader(35633);
        ctx.shaderSource(shader, '\n        attribute vec4 aPosition;\n        attribute vec4 aColor;\n        uniform vec4 anOffset;\n        varying vec4 vColor;\n        void main(void) {\n          gl_Position = aPosition + anOffset;\n          vColor = aColor;\n        }\n      ');
        ctx.compileShader(shader);
        let shaderParam1 = ctx.getShaderParameter(shader, 35713);
        let shader2 = ctx.createShader(35632);
        ctx.shaderSource(shader2, '\n        precision mediump float;\n        varying vec4 vColor;\n        void main(void) {\n          gl_FragColor = vColor;\n        }\n      ');
        ctx.compileShader(shader2);
        let shaderParam2 = ctx.getShaderParameter(shader2, 35713);
        let program = ctx.createProgram();
        ctx.attachShader(program, shader);
        ctx.attachShader(program, shader2);
        ctx.linkProgram(program);
        let programParam1 = ctx.getProgramParameter(program, 35714);
        let buffer1 = ctx.createBuffer();
        ctx.bindBuffer(34962, buffer1);
        var bl_27 = [0, 0.5, 0.699999988079071, -0.6000000238418579, -0.4000000059604645, -0.800000011920929];

        var bl_0 = [0.30000001192092896, 0.699999988079071, 0, 1, 0.10000000149011612, 0, 0.8999999761581421, 1, 0.8999999761581421, 0, 0, 1];

        let Float32Array1 = new Float32Array(bl_27);
        ctx.bufferData(34962, Float32Array1, 35044);
        let buffer2 = ctx.createBuffer();
        ctx.bindBuffer(34962, buffer2);
        let Float32Array2 = new Float32Array(bl_0);
        ctx.bufferData(34962, Float32Array2, 35044);
        let attribLocationAPosition = ctx.getAttribLocation(program, 'aPosition');
        let attribLocationAColor = ctx.getAttribLocation(program, 'aColor');
        ctx.bindBuffer(34962, buffer1);
        ctx.vertexAttribPointer(0, 2, 5126, false, 0, 0);
        ctx.enableVertexAttribArray(0);
        ctx.bindBuffer(34962, buffer2);
        ctx.vertexAttribPointer(1, 4, 5126, false, 0, 0);
        ctx.enableVertexAttribArray(1);
        ctx.useProgram(program);
        let webglUniformLocation = ctx.getUniformLocation(program, 'anOffset');
        ctx.uniform4fv(webglUniformLocation, [0.2, 0, 0, 0])
        ctx.drawArrays(5, 0, 3)
        let unint8Array = new Uint8Array(90000);
        ctx.readPixels(50, 0, 100, 128, 6408, 5121, unint8Array);

        var compressString = function (S) {
            let nums = S.split(",")
            let str = ''
            let i = 0
            while (i < nums.length) {
                let j = i + 1
                while (nums[i] == nums[j]) {
                    j++
                }
                if ((j - i) !== 1) {
                    str = str + '|' + nums[i] + '-' + (j - i)
                } else {
                    str = str + '|' + nums[i]
                }
                i = j
            }
            res = str.length >= S.length ? S : str
            return res
        };

        return {
            strs: compressString(unint8Array + ''),
            url: canvas.toDataURL()
        }
    }()
    setTimeout(function () {
        let result = {
            windowparams: windowparams,
            screenparams: screenparams,
            navigatorparams: navigatorparams,
            featurepolicy: featurePolicy,
            plugins: plgs,
            mimetypes: mimes,
            fontsres: fontsRes,
            imgsres: imgRes,
            glres: glArgs,
            jpg: getDataUrl(),
            jpg2: getDataUrl2(),
            canplay: canplay(),
            useragentdata: userAgentData,
            webglimg: webglImg,
        }
        let body = JSON.stringify(result);
        // body = stringToHex(encodeURIComponent(body))
        // console.log(2, body.length)

// /collect
//         fetch("https://stage.unififi.com/env/shape", {
        fetch("/collect", {
            "headers": {
                "accept": "*/*",
                "accept-language": "en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7",
                "cache-control": "no-cache",
                "pragma": "no-cache",
                "sec-fetch-dest": "empty",
                "sec-fetch-mode": "cors",
                "sec-fetch-site": "cross-site"
            },
            "body": body,
            "method": "POST",
            "mode": "cors",
            "credentials": "omit"
        }).then(e => {
            console.log(e.text())
        })
    }, 2000)


} catch (e) {

}