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": "☙"
}]

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++) {
    console.log(glARgs[i])
    glArgs[glARgs[i]] = gl.getParameter(parseInt(glARgs[i]))
}

console.log(glArgs)


let navigatorParams = {
    appName: navigator.appName,
    appVersion: navigator.appVersion,
    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 features;
try{
    features = document.featurePolicy.features();
}catch (e){

}

let featurePolicy ;
if (document.featurePolicy){
    featurePolicy = {
        features: features,
        allowedFeatures: document.featurePolicy.allowedFeatures(),
        getAllowlistForFeature: 'url',
    }
}
let windowParams = {
    featurePolicy: featurePolicy,
    innerHeight: window.innerHeight,
    innerWidth: window.innerWidth,
    outerHeight: window.outerHeight,
    outerWidth: window.outerWidth,
    screenX: window.screenX,
    screenY: window.screenY,
    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;
}

let result = {
    windowParams: windowParams,
    screenParams: screenParams,
    navigatorParams: navigatorParams,
    plugins: plgs,
    mimeTypes: mimes,
    fontsRes: fontsRes,
    imgsRes: imgRes,
    glRes: glArgs,
    jpg: getDataUrl(),
    jpg2: getDataUrl2(),
    canPlay: canplay(),
}

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": JSON.stringify(result),
    "method": "POST",
    "mode": "cors",
    "credentials": "omit"
}).then(e => {
    console.log(e.text())
})