🏡 index : quine-global/webdriverio.git

export interface DeviceDescriptorsSource {
    userAgent: string
    viewport: {
        width: number
        height: number
    }
    deviceScaleFactor: number
    isMobile: boolean
    hasTouch: boolean
}
export type DeviceName = keyof typeof deviceDescriptorsSource

export const deviceDescriptorsSource = {
    'Blackberry PlayBook': {
        userAgent: 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/18.0 Safari/536.2+',
        viewport: {
            width: 600,
            height: 1024
        },
        deviceScaleFactor: 1,
        isMobile: true,
        hasTouch: true
    },
    'Blackberry PlayBook landscape': {
        userAgent: 'Mozilla/5.0 (PlayBook; U; RIM Tablet OS 2.1.0; en-US) AppleWebKit/536.2+ (KHTML like Gecko) Version/18.0 Safari/536.2+',
        viewport: {
            width: 1024,
            height: 600
        },
        deviceScaleFactor: 1,
        isMobile: true,
        hasTouch: true
    },
    'BlackBerry Z30': {
        userAgent: 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/18.0 Mobile Safari/537.10+',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'BlackBerry Z30 landscape': {
        userAgent: 'Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/18.0 Mobile Safari/537.10+',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy Note 3': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/18.0 Mobile Safari/534.30',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy Note 3 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/18.0 Mobile Safari/534.30',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy Note II': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/18.0 Mobile Safari/534.30',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy Note II landscape': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.1; en-us; GT-N7100 Build/JRO03C) AppleWebKit/534.30 (KHTML, like Gecko) Version/18.0 Mobile Safari/534.30',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S III': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/18.0 Mobile Safari/534.30',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S III landscape': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/18.0 Mobile Safari/534.30',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S5': {
        userAgent: 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S5 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S8': {
        userAgent: 'Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 360,
            height: 740
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S8 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 7.0; SM-G950U Build/NRD90M) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 740,
            height: 360
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S9 +': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 320,
            height: 658
        },
        deviceScaleFactor: 4.5,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy S9 + landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; SM-G965U Build/R16NW) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 658,
            height: 320
        },
        deviceScaleFactor: 4.5,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy Tab S4': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 712,
            height: 1138
        },
        deviceScaleFactor: 2.25,
        isMobile: true,
        hasTouch: true
    },
    'Galaxy Tab S4 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.1.0; SM-T837A) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 1138,
            height: 712
        },
        deviceScaleFactor: 2.25,
        isMobile: true,
        hasTouch: true
    },
    'iPad(gen 5)': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 768,
            height: 1024
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad(gen 5) landscape': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 1024,
            height: 768
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad(gen 6)': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 768,
            height: 1024
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad(gen 6) landscape': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 1024,
            height: 768
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad(gen 7)': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 810,
            height: 1080
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad(gen 7) landscape': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 1080,
            height: 810
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad Mini': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 768,
            height: 1024
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad Mini landscape': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 1024,
            height: 768
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad Pro 11': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 834,
            height: 1194
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPad Pro 11 landscape': {
        userAgent: 'Mozilla/5.0 (iPad; CPU OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 1194,
            height: 834
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 6': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 375,
            height: 667
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 6 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 667,
            height: 375
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 6 Plus': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 414,
            height: 736
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 6 Plus landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 736,
            height: 414
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 7': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 375,
            height: 667
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 7 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 667,
            height: 375
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 7 Plus': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 414,
            height: 736
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 7 Plus landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 736,
            height: 414
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 8': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 375,
            height: 667
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 8 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 667,
            height: 375
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 8 Plus': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 414,
            height: 736
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 8 Plus landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 736,
            height: 414
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone SE': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/18.0 Mobile/14E304 Safari/602.1',
        viewport: {
            width: 320,
            height: 568
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone SE landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Version/18.0 Mobile/14E304 Safari/602.1',
        viewport: {
            width: 568,
            height: 320
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone X': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 375,
            height: 812
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone X landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/18.0 Mobile/15A372 Safari/604.1',
        viewport: {
            width: 812,
            height: 375
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone XR': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 414,
            height: 896
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone XR landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 896,
            height: 414
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 11': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 414,
            height: 715
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 11 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 800,
            height: 364
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 11 Pro': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 375,
            height: 635
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 11 Pro landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 724,
            height: 325
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 11 Pro Max': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 414,
            height: 715
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 11 Pro Max landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 808,
            height: 364
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 390,
            height: 664
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 750,
            height: 340
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12 Pro': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 390,
            height: 664
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12 Pro landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 750,
            height: 340
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12 Pro Max': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 428,
            height: 746
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12 Pro Max landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 832,
            height: 378
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12 Mini': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 375,
            height: 629
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 12 Mini landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 712,
            height: 325
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 390,
            height: 664
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 750,
            height: 342
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13 Pro': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 390,
            height: 664
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13 Pro landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 750,
            height: 342
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13 Pro Max': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 428,
            height: 746
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13 Pro Max landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 832,
            height: 380
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13 Mini': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 375,
            height: 629
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 13 Mini landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 712,
            height: 327
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 390,
            height: 664
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 750,
            height: 340
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14 Plus': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 428,
            height: 746
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14 Plus landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 832,
            height: 378
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14 Pro': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 393,
            height: 660
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14 Pro landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 734,
            height: 343
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14 Pro Max': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 430,
            height: 740
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 14 Pro Max landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 814,
            height: 380
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 393,
            height: 659
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15 landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 734,
            height: 343
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15 Plus': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 430,
            height: 739
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15 Plus landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 814,
            height: 380
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15 Pro': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 393,
            height: 659
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15 Pro landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 734,
            height: 343
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15 Pro Max': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 430,
            height: 739
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'iPhone 15 Pro Max landscape': {
        userAgent: 'Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1',
        viewport: {
            width: 814,
            height: 380
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Kindle Fire HDX': {
        userAgent: 'Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true',
        viewport: {
            width: 800,
            height: 1280
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Kindle Fire HDX landscape': {
        userAgent: 'Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true',
        viewport: {
            width: 1280,
            height: 800
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'LG Optimus L70': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 384,
            height: 640
        },
        deviceScaleFactor: 1.25,
        isMobile: true,
        hasTouch: true
    },
    'LG Optimus L70 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; U; Android 4.4.2; en-us; LGMS323 Build/KOT49I.MS32310c) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 640,
            height: 384
        },
        deviceScaleFactor: 1.25,
        isMobile: true,
        hasTouch: true
    },
    'Microsoft Lumia 550': {
        userAgent: 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36 Edge/14.14263',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Microsoft Lumia 550 landscape': {
        userAgent: 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 550) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36 Edge/14.14263',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Microsoft Lumia 950': {
        userAgent: 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36 Edge/14.14263',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 4,
        isMobile: true,
        hasTouch: true
    },
    'Microsoft Lumia 950 landscape': {
        userAgent: 'Mozilla/5.0 (Windows Phone 10.0; Android 4.2.1; Microsoft; Lumia 950) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36 Edge/14.14263',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 4,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 10': {
        userAgent: 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 800,
            height: 1280
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 10 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 10 Build/MOB31T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 1280,
            height: 800
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 4': {
        userAgent: 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 384,
            height: 640
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 4 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 4.4.2; Nexus 4 Build/KOT49H) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 640,
            height: 384
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 5': {
        userAgent: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 5 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 5X': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 412,
            height: 732
        },
        deviceScaleFactor: 2.625,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 5X landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 5X Build/OPR4.170623.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 732,
            height: 412
        },
        deviceScaleFactor: 2.625,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 6': {
        userAgent: 'Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 412,
            height: 732
        },
        deviceScaleFactor: 3.5,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 6 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 7.1.1; Nexus 6 Build/N6F26U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 732,
            height: 412
        },
        deviceScaleFactor: 3.5,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 6P': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 412,
            height: 732
        },
        deviceScaleFactor: 3.5,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 6P landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Nexus 6P Build/OPP3.170518.006) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 732,
            height: 412
        },
        deviceScaleFactor: 3.5,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 7': {
        userAgent: 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 600,
            height: 960
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Nexus 7 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 6.0.1; Nexus 7 Build/MOB30X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 960,
            height: 600
        },
        deviceScaleFactor: 2,
        isMobile: true,
        hasTouch: true
    },
    'Nokia Lumia 520': {
        userAgent: 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)',
        viewport: {
            width: 320,
            height: 533
        },
        deviceScaleFactor: 1.5,
        isMobile: true,
        hasTouch: true
    },
    'Nokia Lumia 520 landscape': {
        userAgent: 'Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 520)',
        viewport: {
            width: 533,
            height: 320
        },
        deviceScaleFactor: 1.5,
        isMobile: true,
        hasTouch: true
    },
    'Nokia N9': {
        userAgent: 'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13',
        viewport: {
            width: 480,
            height: 854
        },
        deviceScaleFactor: 1,
        isMobile: true,
        hasTouch: true
    },
    'Nokia N9 landscape': {
        userAgent: 'Mozilla/5.0 (MeeGo; NokiaN9) AppleWebKit/534.13 (KHTML, like Gecko) NokiaBrowser/8.5.0 Mobile Safari/534.13',
        viewport: {
            width: 854,
            height: 480
        },
        deviceScaleFactor: 1,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 2': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 411,
            height: 731
        },
        deviceScaleFactor: 2.625,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 2 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0; Pixel 2 Build/OPD3.170816.012) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 731,
            height: 411
        },
        deviceScaleFactor: 2.625,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 2 XL': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 411,
            height: 823
        },
        deviceScaleFactor: 3.5,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 2 XL landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 8.0.0; Pixel 2 XL Build/OPD1.170816.004) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 823,
            height: 411
        },
        deviceScaleFactor: 3.5,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 3': {
        userAgent: 'Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 393,
            height: 786
        },
        deviceScaleFactor: 2.75,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 3 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 9; Pixel 3 Build/PQ1A.181105.017.A1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 786,
            height: 393
        },
        deviceScaleFactor: 2.75,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 4': {
        userAgent: 'Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 353,
            height: 745
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 4 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 10; Pixel 4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 745,
            height: 353
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 4a(5G)': {
        userAgent: 'Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 412,
            height: 765
        },
        deviceScaleFactor: 2.63,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 4a(5G) landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 11; Pixel 4a (5G)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 840,
            height: 312
        },
        deviceScaleFactor: 2.63,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 5': {
        userAgent: 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 393,
            height: 727
        },
        deviceScaleFactor: 2.75,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 5 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 11; Pixel 5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 802,
            height: 293
        },
        deviceScaleFactor: 2.75,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 7': {
        userAgent: 'Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 412,
            height: 839
        },
        deviceScaleFactor: 2.625,
        isMobile: true,
        hasTouch: true
    },
    'Pixel 7 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 14; Pixel 7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 863,
            height: 360
        },
        deviceScaleFactor: 2.625,
        isMobile: true,
        hasTouch: true
    },
    'Moto G4': {
        userAgent: 'Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 360,
            height: 640
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Moto G4 landscape': {
        userAgent: 'Mozilla/5.0 (Linux; Android 7.0; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Mobile Safari/537.36',
        viewport: {
            width: 640,
            height: 360
        },
        deviceScaleFactor: 3,
        isMobile: true,
        hasTouch: true
    },
    'Desktop Chrome HiDPI': {
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 1280,
            height: 720
        },
        deviceScaleFactor: 2,
        isMobile: false,
        hasTouch: false
    },
    'Desktop Edge HiDPI': {
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36 Edg/128.0.6613.18',
        viewport: {
            width: 1280,
            height: 720
        },
        deviceScaleFactor: 2,
        isMobile: false,
        hasTouch: false
    },
    'Desktop Firefox HiDPI': {
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
        viewport: {
            width: 1280,
            height: 720
        },
        deviceScaleFactor: 2,
        isMobile: false,
        hasTouch: false
    },
    'Desktop Safari': {
        userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Safari/605.1.15',
        viewport: {
            width: 1280,
            height: 720
        },
        deviceScaleFactor: 2,
        isMobile: false,
        hasTouch: false
    },
    'Desktop Chrome': {
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36',
        viewport: {
            width: 1280,
            height: 720
        },
        deviceScaleFactor: 1,
        isMobile: false,
        hasTouch: false
    },
    'Desktop Edge': {
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.6613.18 Safari/537.36 Edg/128.0.6613.18',
        viewport: {
            width: 1280,
            height: 720
        },
        deviceScaleFactor: 1,
        isMobile: false,
        hasTouch: false
    },
    'Desktop Firefox': {
        userAgent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:128.0) Gecko/20100101 Firefox/128.0',
        viewport: {
            width: 1280,
            height: 720
        },
        deviceScaleFactor: 1,
        isMobile: false,
        hasTouch: false
    }
}