diff --git a/test_runner/src/main/kotlin/ftl/android/AndroidCatalog.kt b/test_runner/src/main/kotlin/ftl/android/AndroidCatalog.kt index 26b664c7a2..9e13df92be 100644 --- a/test_runner/src/main/kotlin/ftl/android/AndroidCatalog.kt +++ b/test_runner/src/main/kotlin/ftl/android/AndroidCatalog.kt @@ -81,12 +81,12 @@ object AndroidCatalog { logLn("Unable to find device type for $modelId. PHYSICAL used as fallback in cost calculations") } - return form.equals(DeviceType.VIRTUAL.name, ignoreCase = true) + return form.equals(DeviceType.VIRTUAL.name, ignoreCase = true) || form.equals(DeviceType.EMULATOR.name, ignoreCase = true) } } enum class DeviceType { - VIRTUAL, PHYSICAL + VIRTUAL, PHYSICAL, EMULATOR } sealed class DeviceConfigCheck diff --git a/test_runner/src/main/kotlin/ftl/environment/TestEnvironmentInfo.kt b/test_runner/src/main/kotlin/ftl/environment/TestEnvironmentInfo.kt index 307e09dc46..54f4e40b45 100644 --- a/test_runner/src/main/kotlin/ftl/environment/TestEnvironmentInfo.kt +++ b/test_runner/src/main/kotlin/ftl/environment/TestEnvironmentInfo.kt @@ -28,4 +28,6 @@ const val RESOLUTION = "RESOLUTION" const val OS_VERSION_IDS = "OS_VERSION_IDS" const val TAGS = "TAGS" const val PHYSICAL_DEVICE = "PHYSICAL" +const val VIRTUAL_DEVICE = "VIRTUAL" +const val EMULATOR_DEVICE = "EMULATOR" const val OS_VERSION_ID = "OS_VERSION_ID" diff --git a/test_runner/src/main/kotlin/ftl/environment/android/ListAndroidDevices.kt b/test_runner/src/main/kotlin/ftl/environment/android/ListAndroidDevices.kt index 6617c05c8e..c0daf40110 100644 --- a/test_runner/src/main/kotlin/ftl/environment/android/ListAndroidDevices.kt +++ b/test_runner/src/main/kotlin/ftl/environment/android/ListAndroidDevices.kt @@ -1,6 +1,7 @@ package ftl.environment.android import com.google.testing.model.AndroidModel +import ftl.environment.EMULATOR_DEVICE import ftl.environment.FORM import ftl.environment.MAKE import ftl.environment.MODEL_ID @@ -10,6 +11,7 @@ import ftl.environment.PHYSICAL_DEVICE import ftl.environment.RESOLUTION import ftl.environment.TAGS import ftl.environment.TestEnvironmentInfo +import ftl.environment.VIRTUAL_DEVICE import ftl.environment.createTableColumnFor import ftl.environment.getOrCreateList import ftl.environment.orUnknown @@ -47,5 +49,10 @@ private val AndroidModel.resolution get() = if (screenX == null || screenY == null) "UNKNOWN" else "$screenY x $screenX" private val formToSystemOutColorMapper: (String) -> SystemOutColor = { - if (it == PHYSICAL_DEVICE) SystemOutColor.YELLOW else SystemOutColor.BLUE + when (it) { + PHYSICAL_DEVICE -> SystemOutColor.YELLOW + VIRTUAL_DEVICE -> SystemOutColor.BLUE + EMULATOR_DEVICE -> SystemOutColor.GREEN + else -> SystemOutColor.DEFAULT + } } diff --git a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt index c5ddcdca3b..b24583cc9e 100644 --- a/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt +++ b/test_runner/src/test/kotlin/ftl/args/AndroidArgsTest.kt @@ -208,7 +208,7 @@ class AndroidArgsTest { app: $appApk test: $testApk device: - - model: shamu + - model: walleye version: 18 """ ).validate() @@ -836,7 +836,7 @@ AndroidArgs @Test fun `cli device`() { val cli = AndroidRunCommand() - CommandLine(cli).parseArgs("--device=model=shamu,version=22,locale=zh_CN,orientation=default") + CommandLine(cli).parseArgs("--device=model=walleye,version=27,locale=zh_CN,orientation=default") val yaml = """ gcloud: @@ -849,7 +849,7 @@ AndroidArgs assertThat(defaultDevices.size).isEqualTo(1) val androidArgs = AndroidArgs.load(yaml, cli).validate() - val expectedDevice = Device("shamu", "22", "zh_CN", "default", isVirtual = false) + val expectedDevice = Device("walleye", "27", "zh_CN", "default", isVirtual = false) val actualDevices = androidArgs.devices assertThat(actualDevices.first()).isEqualTo(expectedDevice) assertThat(actualDevices.size).isEqualTo(1) @@ -858,7 +858,7 @@ AndroidArgs @Test fun `cli device repeat`() { val cli = AndroidRunCommand() - val deviceCmd = "--device=model=shamu,version=22,locale=zh_CN,orientation=default" + val deviceCmd = "--device=model=walleye,version=27,locale=zh_CN,orientation=default" CommandLine(cli).parseArgs(deviceCmd, deviceCmd) val yaml = """ @@ -867,7 +867,7 @@ AndroidArgs test: $testApk """ val androidArgs = AndroidArgs.load(yaml, cli).validate() - val expectedDevice = Device("shamu", "22", "zh_CN", "default", false) + val expectedDevice = Device("walleye", "27", "zh_CN", "default", false) val actualDevices = androidArgs.devices assertThat(actualDevices.size).isEqualTo(2) assertThat(actualDevices[0]).isEqualTo(expectedDevice) diff --git a/test_runner/src/test/kotlin/ftl/fixtures/android_catalog.json b/test_runner/src/test/kotlin/ftl/fixtures/android_catalog.json index 239f5a3f12..b254b9ba28 100644 --- a/test_runner/src/test/kotlin/ftl/fixtures/android_catalog.json +++ b/test_runner/src/test/kotlin/ftl/fixtures/android_catalog.json @@ -1,3271 +1,6924 @@ { - "models" : [ { - "brand" : "OnePlus", - "codename" : "A0001", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "A0001", - "manufacturer" : "OnePlus", - "name" : "OnePlus One", - "screenDensity" : 401, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "22" ] - }, { - "brand" : "Sony", - "codename" : "D6503", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "D6503", - "manufacturer" : "Sony", - "name" : "Xperia Z2", - "screenDensity" : 424, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Sony", - "codename" : "D6603", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "D6603", - "manufacturer" : "Sony", - "name" : "Xperia Z3", - "screenDensity" : 424, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Sony", - "codename" : "E5803", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "E5803", - "manufacturer" : "Sony", - "name" : "Xperia Z5 Compact", - "screenDensity" : 323, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Sony", - "codename" : "F5121", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "F5121", - "manufacturer" : "Sony", - "name" : "Sony Xperia X", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Nokia", - "codename" : "FRT", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "FRT", - "manufacturer" : "HMD Global", - "name" : "Nokia 1 (Android GO)", - "screenDensity" : 240, - "screenX" : 480, - "screenY" : 854, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "27" ] - }, { - "brand" : "Sony", - "codename" : "G8142", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "G8142", - "manufacturer" : "Sony", - "name" : "Sony XPERIA XZ Premium", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "25" ] - }, { - "brand" : "Sony", - "codename" : "G8441", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "G8441", - "manufacturer" : "Sony", - "name" : "Xperia XZ1 Compact", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "26" ] - }, { - "brand" : "HUAWEI", - "codename" : "HWMHA", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "HWMHA", - "manufacturer" : "Huawei", - "name" : "Huawei Mate 9", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "24" ] - }, { - "brand" : "Google", - "codename" : "Nexus10", - "form" : "VIRTUAL", - "formFactor" : "TABLET", - "id" : "Nexus10", - "manufacturer" : "Samsung", - "name" : "Nexus 10", - "screenDensity" : 320, - "screenX" : 1600, - "screenY" : 2560, - "supportedAbis" : [ "x86" ], - "supportedVersionIds" : [ "19", "21", "22" ] - }, { - "brand" : "Google", - "codename" : "Nexus4", - "form" : "VIRTUAL", - "formFactor" : "PHONE", - "id" : "Nexus4", - "manufacturer" : "LG", - "name" : "Nexus 4", - "screenDensity" : 320, - "screenX" : 768, - "screenY" : 1280, - "supportedAbis" : [ "x86" ], - "supportedVersionIds" : [ "19", "21", "22" ] - }, { - "brand" : "Google", - "codename" : "Nexus5", - "form" : "VIRTUAL", - "formFactor" : "PHONE", - "id" : "Nexus5", - "manufacturer" : "LG", - "name" : "Nexus 5", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "x86", "23:armeabi", "23:armeabi-v7a" ], - "supportedVersionIds" : [ "19", "21", "22", "23" ] - }, { - "brand" : "Google", - "codename" : "Nexus5X", - "form" : "VIRTUAL", - "formFactor" : "PHONE", - "id" : "Nexus5X", - "manufacturer" : "LG", - "name" : "Nexus 5X", - "screenDensity" : 423, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "x86", "23:armeabi", "23:armeabi-v7a", "24:armeabi", "24:armeabi-v7a", "25:armeabi", "25:armeabi-v7a", "26:armeabi", "26:armeabi-v7a" ], - "supportedVersionIds" : [ "23", "24", "25", "26" ] - }, { - "brand" : "Google", - "codename" : "Nexus6", - "form" : "VIRTUAL", - "formFactor" : "PHONE", - "id" : "Nexus6", - "manufacturer" : "Motorola", - "name" : "Nexus 6", - "screenDensity" : 560, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "x86", "23:armeabi", "23:armeabi-v7a", "24:armeabi", "24:armeabi-v7a", "25:armeabi", "25:armeabi-v7a" ], - "supportedVersionIds" : [ "21", "22", "23", "24", "25" ] - }, { - "brand" : "Google", - "codename" : "Nexus6P", - "form" : "VIRTUAL", - "formFactor" : "PHONE", - "id" : "Nexus6P", - "manufacturer" : "Google", - "name" : "Nexus 6P", - "screenDensity" : 518, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "x86", "23:armeabi", "23:armeabi-v7a", "24:armeabi", "24:armeabi-v7a", "25:armeabi", "25:armeabi-v7a", "26:armeabi", "26:armeabi-v7a", "27:armeabi", "27:armeabi-v7a" ], - "supportedVersionIds" : [ "23", "24", "25", "26", "27" ] - }, { - "brand" : "Google", - "codename" : "Nexus7", - "form" : "VIRTUAL", - "formFactor" : "TABLET", - "id" : "Nexus7", - "manufacturer" : "Asus", - "name" : "Nexus 7 (2012)", - "screenDensity" : 213, - "screenX" : 800, - "screenY" : 1280, - "supportedAbis" : [ "x86" ], - "supportedVersionIds" : [ "19", "21", "22" ] - }, { - "brand" : "Generic", - "codename" : "Nexus7_clone_16_9", - "form" : "VIRTUAL", - "formFactor" : "TABLET", - "id" : "Nexus7_clone_16_9", - "manufacturer" : "Generic", - "name" : "Nexus7 clone, DVD 16:9 aspect ratio", - "screenDensity" : 160, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "x86", "23:armeabi", "23:armeabi-v7a", "24:armeabi", "24:armeabi-v7a", "25:armeabi", "25:armeabi-v7a", "26:armeabi", "26:armeabi-v7a" ], - "supportedVersionIds" : [ "23", "24", "25", "26" ], - "tags" : [ "beta" ] - }, { - "brand" : "Google", - "codename" : "Nexus9", - "form" : "VIRTUAL", - "formFactor" : "TABLET", - "id" : "Nexus9", - "manufacturer" : "HTC", - "name" : "Nexus 9", - "screenDensity" : 320, - "screenX" : 1536, - "screenY" : 2048, - "supportedAbis" : [ "x86", "23:armeabi", "23:armeabi-v7a", "24:armeabi", "24:armeabi-v7a", "25:armeabi", "25:armeabi-v7a" ], - "supportedVersionIds" : [ "21", "22", "23", "24", "25" ] - }, { - "brand" : "Generic", - "codename" : "NexusLowRes", - "form" : "VIRTUAL", - "formFactor" : "PHONE", - "id" : "NexusLowRes", - "manufacturer" : "Generic", - "name" : "Low-resolution MDPI phone", - "screenDensity" : 160, - "screenX" : 360, - "screenY" : 640, - "supportedAbis" : [ "x86", "23:armeabi", "23:armeabi-v7a", "24:armeabi", "24:armeabi-v7a", "25:armeabi", "25:armeabi-v7a", "26:armeabi", "26:armeabi-v7a", "27:armeabi", "27:armeabi-v7a", "28:armeabi", "28:armeabi-v7a", "29:armeabi", "29:armeabi-v7a" ], - "supportedVersionIds" : [ "23", "24", "25", "26", "27", "28" ] - }, { - "brand" : "OnePlus", - "codename" : "OnePlus5", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "OnePlus5", - "manufacturer" : "OnePlus", - "name" : "OnePlus 5", - "screenDensity" : 420, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "26" ], - "tags" : [ "deprecated=26" ] - }, { - "brand" : "Google", - "codename" : "Pixel2", - "form" : "VIRTUAL", - "formFactor" : "PHONE", - "id" : "Pixel2", - "manufacturer" : "Google", - "name" : "Pixel 2", - "screenDensity" : 441, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "x86", "26:armeabi", "26:armeabi-v7a", "27:armeabi", "27:armeabi-v7a", "28:armeabi", "28:armeabi-v7a", "29:armeabi", "29:armeabi-v7a" ], - "supportedVersionIds" : [ "26", "27", "28" ] - }, { - "brand" : "DOCOMO", - "codename" : "SH-04H", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "SH-04H", - "manufacturer" : "SHARP", - "name" : "SH-04H", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ] - }, { - "brand" : "samsung", - "codename" : "a5y17lte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "a5y17lte", - "manufacturer" : "Samsung", - "name" : "Galaxy A5 2017", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "24" ] - }, { - "brand" : "Motorola", - "codename" : "athene", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "athene", - "manufacturer" : "Motorola", - "name" : "Moto G4 Plus", - "screenDensity" : 401, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "Motorola", - "codename" : "athene_f", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "athene_f", - "manufacturer" : "Motorola", - "name" : "Moto G4", - "screenDensity" : 401, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "google", - "codename" : "blueline", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "blueline", - "manufacturer" : "Google", - "name" : "Pixel 3", - "screenDensity" : 440, - "screenX" : 1080, - "screenY" : 2160, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "28", "Q-beta-3" ] - }, { - "brand" : "razer", - "codename" : "cheryl", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "cheryl", - "manufacturer" : "Razer", - "name" : "Razer Phone", - "screenDensity" : 480, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "25" ] - }, { - "brand" : "Motorola", - "codename" : "condor_umts", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "condor_umts", - "manufacturer" : "Motorola", - "name" : "Moto E", - "screenDensity" : 240, - "screenX" : 540, - "screenY" : 960, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "samsung", - "codename" : "crownqlteue", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "crownqlteue", - "manufacturer" : "Samsung", - "name" : "Galaxy Note 9 USA", - "screenDensity" : 420, - "screenX" : 1080, - "screenY" : 2220, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "27" ] - }, { - "brand" : "Motorola", - "codename" : "falcon_umts", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "falcon_umts", - "manufacturer" : "Motorola", - "name" : "Moto G (1st Gen)", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "ASUS", - "codename" : "flo", - "form" : "PHYSICAL", - "formFactor" : "TABLET", - "id" : "flo", - "manufacturer" : "Asus", - "name" : "Nexus 7 (2013)", - "screenDensity" : 320, - "screenX" : 1200, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "19", "21" ] - }, { - "brand" : "LG", - "codename" : "g3", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "g3", - "manufacturer" : "LG", - "name" : "LG G3", - "screenDensity" : 640, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "19" ] - }, { - "brand" : "Samsung", - "codename" : "grandpplte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "grandpplte", - "manufacturer" : "Samsung", - "name" : "Galaxy J2 Prime SM-G532M", - "screenDensity" : 240, - "screenX" : 540, - "screenY" : 960, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "motorola", - "codename" : "griffin", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "griffin", - "manufacturer" : "Motorola", - "name" : "Moto Z XT1650", - "screenDensity" : 640, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "24" ] - }, { - "brand" : "LG", - "codename" : "hammerhead", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "hammerhead", - "manufacturer" : "LG", - "name" : "Nexus 5", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "21", "23" ] - }, { - "brand" : "Motorola", - "codename" : "harpia", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "harpia", - "manufacturer" : "Motorola", - "name" : "Moto G Play (4th Gen) XT1607", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "Samsung", - "codename" : "hero2lte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "hero2lte", - "manufacturer" : "Samsung", - "name" : "Galaxy S7 edge", - "screenDensity" : 640, - "screenX" : 2560, - "screenY" : 1440, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "Samsung", - "codename" : "herolte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "herolte", - "manufacturer" : "Samsung", - "name" : "Galaxy S7", - "screenDensity" : 577, - "screenX" : 2560, - "screenY" : 1440, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Samsung", - "codename" : "hlte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "hlte", - "manufacturer" : "Samsung", - "name" : "Galaxy Note 3 Duos", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "19" ] - }, { - "brand" : "HTC", - "codename" : "htc_m8", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "htc_m8", - "manufacturer" : "HTC", - "name" : "HTC One (M8)", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "19" ] - }, { - "brand" : "Huawei", - "codename" : "hwALE-H", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "hwALE-H", - "manufacturer" : "Huawei", - "name" : "Huawei P8 lite", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "21" ] - }, { - "brand" : "Samsung", - "codename" : "j1acevelte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "j1acevelte", - "manufacturer" : "Samsung", - "name" : "Galaxy J1 ace SM-J111M", - "screenDensity" : 240, - "screenX" : 480, - "screenY" : 800, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "22" ] - }, { - "brand" : "Samsung", - "codename" : "j5lte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "j5lte", - "manufacturer" : "Samsung", - "name" : "Galaxy J5", - "screenDensity" : 294, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Samsung", - "codename" : "j7xelte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "j7xelte", - "manufacturer" : "Samsung", - "name" : "Galaxy J7 (SM-J710MN)", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "Samsung", - "codename" : "lt02wifi", - "form" : "PHYSICAL", - "formFactor" : "TABLET", - "id" : "lt02wifi", - "manufacturer" : "Samsung", - "name" : "Galaxy Tab 3", - "screenDensity" : 160, - "screenX" : 1024, - "screenY" : 600, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "19" ] - }, { - "brand" : "lge", - "codename" : "lucye", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "lucye", - "manufacturer" : "LG", - "name" : "LG G6 LGUS997", - "screenDensity" : 640, - "screenX" : 1440, - "screenY" : 2880, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "24" ] - }, { - "brand" : "lge", - "codename" : "lv0", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "lv0", - "manufacturer" : "LG", - "name" : "LG K3", - "screenDensity" : 240, - "screenX" : 480, - "screenY" : 854, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "Samsung", - "codename" : "m0", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "m0", - "manufacturer" : "Samsung", - "name" : "Samsung Galaxy S3", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "18" ] - }, { - "brand" : "LG", - "codename" : "mako", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "mako", - "manufacturer" : "LG", - "name" : "Nexus 4", - "screenDensity" : 320, - "screenX" : 768, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "essential", - "codename" : "mata", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "mata", - "manufacturer" : "Essential Products", - "name" : "Essential PH-1", - "screenDensity" : 480, - "screenX" : 1312, - "screenY" : 2560, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "25" ] - }, { - "brand" : "lge", - "codename" : "mlv1", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "mlv1", - "manufacturer" : "LG", - "name" : "LG K4 (LG-X230)", - "screenDensity" : 240, - "screenX" : 480, - "screenY" : 854, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "Motorola", - "codename" : "osprey_umts", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "osprey_umts", - "manufacturer" : "Motorola", - "name" : "Moto G (3rd Gen)", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "LG", - "codename" : "p1", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "p1", - "manufacturer" : "LG", - "name" : "LG G4", - "screenDensity" : 538, - "screenX" : 2560, - "screenY" : 1440, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "motorola", - "codename" : "potter", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "potter", - "manufacturer" : "Motorola", - "name" : "Moto G (5) Plus", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "24" ] - }, { - "brand" : "Google", - "codename" : "sailfish", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "sailfish", - "manufacturer" : "Google", - "name" : "Pixel", - "screenDensity" : 420, - "screenX" : 1920, - "screenY" : 1080, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "25", "26", "27", "28" ] - }, { - "brand" : "huawei", - "codename" : "sawfish", - "form" : "PHYSICAL", - "formFactor" : "WEARABLE", - "id" : "sawfish", - "manufacturer" : "Huawei", - "name" : "Huawei Watch 2", - "screenDensity" : 320, - "screenX" : 390, - "screenY" : 390, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "26" ], - "tags" : [ "beta" ] - }, { - "brand" : "Samsung", - "codename" : "serranolte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "serranolte", - "manufacturer" : "Samsung", - "name" : "Galaxy S4 mini", - "screenDensity" : 240, - "screenX" : 540, - "screenY" : 960, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Motorola", - "codename" : "shamu", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "shamu", - "manufacturer" : "Motorola", - "name" : "Nexus 6", - "screenDensity" : 560, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "21", "22", "23" ] - }, { - "brand" : "samsung", - "codename" : "star2qlteue", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "star2qlteue", - "manufacturer" : "Samsung", - "name" : "Samsung Galaxy S9+ (US)", - "screenDensity" : 420, - "screenX" : 1080, - "screenY" : 2220, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "26" ] - }, { - "brand" : "samsung", - "codename" : "starqlteue", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "starqlteue", - "manufacturer" : "Samsung", - "name" : "Samsung Galaxy S9 (US)", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 2220, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "26" ] - }, { - "brand" : "Samsung", - "codename" : "t03g", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "t03g", - "manufacturer" : "Samsung", - "name" : "Galaxy Note 2", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Google", - "codename" : "taimen", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "taimen", - "manufacturer" : "Google", - "name" : "Pixel 2 XL", - "screenDensity" : 560, - "screenX" : 1440, - "screenY" : 2880, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "26", "27" ] - }, { - "brand" : "Motorola", - "codename" : "titan_umts", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "titan_umts", - "manufacturer" : "Motorola", - "name" : "Moto G (2nd Gen)", - "screenDensity" : 320, - "screenX" : 720, - "screenY" : 1280, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Samsung", - "codename" : "trelte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "trelte", - "manufacturer" : "Samsung", - "name" : "Galaxy Note 4", - "screenDensity" : 386, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ] - }, { - "brand" : "Motorola", - "codename" : "victara", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "victara", - "manufacturer" : "Motorola", - "name" : "Moto X", - "screenDensity" : 480, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "19" ] - }, { - "brand" : "Google", - "codename" : "walleye", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "walleye", - "manufacturer" : "Google", - "name" : "Pixel 2", - "screenDensity" : 420, - "screenX" : 1080, - "screenY" : 1920, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "26", "27", "28" ], - "tags" : [ "default" ] - }, { - "brand" : "Samsung", - "codename" : "zeroflte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "zeroflte", - "manufacturer" : "Samsung", - "name" : "Galaxy S6", - "screenDensity" : 640, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ], - "supportedVersionIds" : [ "23" ] - }, { - "brand" : "Samsung", - "codename" : "zerolte", - "form" : "PHYSICAL", - "formFactor" : "PHONE", - "id" : "zerolte", - "manufacturer" : "Samsung", - "name" : "Galaxy S6 Edge", - "screenDensity" : 640, - "screenX" : 1440, - "screenY" : 2560, - "supportedAbis" : [ "arm64-v8a", "armeabi-v7a", "armeabi" ] - } ], - "runtimeConfiguration" : { - "locales" : [ { - "id" : "af", - "name" : "Afrikaans" - }, { - "id" : "af_NA", - "name" : "Afrikaans", - "region" : "Namibia" - }, { - "id" : "af_ZA", - "name" : "Afrikaans", - "region" : "South Africa" - }, { - "id" : "agq", - "name" : "Aghem" - }, { - "id" : "agq_CM", - "name" : "Aghem", - "region" : "Cameroon" - }, { - "id" : "ak", - "name" : "Akan" - }, { - "id" : "ak_GH", - "name" : "Akan", - "region" : "Ghana" - }, { - "id" : "am", - "name" : "Amharic" - }, { - "id" : "am_ET", - "name" : "Amharic", - "region" : "Ethiopia" - }, { - "id" : "ar", - "name" : "Arabic" - }, { - "id" : "ar_001", - "name" : "Arabic", - "region" : "World" - }, { - "id" : "ar_AE", - "name" : "Arabic", - "region" : "United Arab Emirates" - }, { - "id" : "ar_BH", - "name" : "Arabic", - "region" : "Bahrain" - }, { - "id" : "ar_DJ", - "name" : "Arabic", - "region" : "Djibouti" - }, { - "id" : "ar_DZ", - "name" : "Arabic", - "region" : "Algeria" - }, { - "id" : "ar_EG", - "name" : "Arabic", - "region" : "Egypt" - }, { - "id" : "ar_EH", - "name" : "Arabic", - "region" : "Western Sahara" - }, { - "id" : "ar_ER", - "name" : "Arabic", - "region" : "Eritrea" - }, { - "id" : "ar_IL", - "name" : "Arabic", - "region" : "Israel" - }, { - "id" : "ar_IQ", - "name" : "Arabic", - "region" : "Iraq" - }, { - "id" : "ar_JO", - "name" : "Arabic", - "region" : "Jordan" - }, { - "id" : "ar_KM", - "name" : "Arabic", - "region" : "Comoros" - }, { - "id" : "ar_KW", - "name" : "Arabic", - "region" : "Kuwait" - }, { - "id" : "ar_LB", - "name" : "Arabic", - "region" : "Lebanon" - }, { - "id" : "ar_LY", - "name" : "Arabic", - "region" : "Libya" - }, { - "id" : "ar_MA", - "name" : "Arabic", - "region" : "Morocco" - }, { - "id" : "ar_MR", - "name" : "Arabic", - "region" : "Mauritania" - }, { - "id" : "ar_OM", - "name" : "Arabic", - "region" : "Oman" - }, { - "id" : "ar_PS", - "name" : "Arabic", - "region" : "Palestine" - }, { - "id" : "ar_QA", - "name" : "Arabic", - "region" : "Qatar" - }, { - "id" : "ar_SA", - "name" : "Arabic", - "region" : "Saudi Arabia" - }, { - "id" : "ar_SD", - "name" : "Arabic", - "region" : "Sudan" - }, { - "id" : "ar_SO", - "name" : "Arabic", - "region" : "Somalia" - }, { - "id" : "ar_SS", - "name" : "Arabic", - "region" : "South Sudan" - }, { - "id" : "ar_SY", - "name" : "Arabic", - "region" : "Syria" - }, { - "id" : "ar_TD", - "name" : "Arabic", - "region" : "Chad" - }, { - "id" : "ar_TN", - "name" : "Arabic", - "region" : "Tunisia" - }, { - "id" : "ar_YE", - "name" : "Arabic", - "region" : "Yemen" - }, { - "id" : "as", - "name" : "Assamese" - }, { - "id" : "as_IN", - "name" : "Assamese", - "region" : "India" - }, { - "id" : "asa", - "name" : "Asu" - }, { - "id" : "asa_TZ", - "name" : "Asu", - "region" : "Tanzania" - }, { - "id" : "az", - "name" : "Azerbaijani" - }, { - "id" : "az_AZ", - "name" : "Azerbaijani", - "region" : "Azerbaijan" - }, { - "id" : "bas", - "name" : "Basaa" - }, { - "id" : "bas_CM", - "name" : "Basaa", - "region" : "Cameroon" - }, { - "id" : "be", - "name" : "Belarusian" - }, { - "id" : "be_BY", - "name" : "Belarusian", - "region" : "Belarus" - }, { - "id" : "bem", - "name" : "Bemba" - }, { - "id" : "bem_ZM", - "name" : "Bemba", - "region" : "Zambia" - }, { - "id" : "bez", - "name" : "Bena" - }, { - "id" : "bez_TZ", - "name" : "Bena", - "region" : "Tanzania" - }, { - "id" : "bg", - "name" : "Bulgarian" - }, { - "id" : "bg_BG", - "name" : "Bulgarian", - "region" : "Bulgaria" - }, { - "id" : "bm", - "name" : "Bambara" - }, { - "id" : "bm_ML", - "name" : "Bambara", - "region" : "Mali" - }, { - "id" : "bn", - "name" : "Bengali" - }, { - "id" : "bn_BD", - "name" : "Bengali", - "region" : "Bangladesh" - }, { - "id" : "bn_IN", - "name" : "Bengali", - "region" : "India" - }, { - "id" : "bo", - "name" : "Tibetan" - }, { - "id" : "bo_CN", - "name" : "Tibetan", - "region" : "China" - }, { - "id" : "bo_IN", - "name" : "Tibetan", - "region" : "India" - }, { - "id" : "br", - "name" : "Breton" - }, { - "id" : "br_FR", - "name" : "Breton", - "region" : "France" - }, { - "id" : "brx", - "name" : "Bodo" - }, { - "id" : "brx_IN", - "name" : "Bodo", - "region" : "India" - }, { - "id" : "bs", - "name" : "Bosnian" - }, { - "id" : "bs_BA", - "name" : "Bosnian", - "region" : "Bosnia and Herzegovina" - }, { - "id" : "ca", - "name" : "Catalan" - }, { - "id" : "ca_AD", - "name" : "Catalan", - "region" : "Andorra" - }, { - "id" : "ca_ES", - "name" : "Catalan", - "region" : "Spain" - }, { - "id" : "ca_FR", - "name" : "Catalan", - "region" : "France" - }, { - "id" : "ca_IT", - "name" : "Catalan", - "region" : "Italy" - }, { - "id" : "cgg", - "name" : "Chiga" - }, { - "id" : "cgg_UG", - "name" : "Chiga", - "region" : "Uganda" - }, { - "id" : "chr", - "name" : "Cherokee" - }, { - "id" : "chr_US", - "name" : "Cherokee", - "region" : "United States" - }, { - "id" : "cs", - "name" : "Czech" - }, { - "id" : "cs_CZ", - "name" : "Czech", - "region" : "Czech Republic" - }, { - "id" : "cy", - "name" : "Welsh" - }, { - "id" : "cy_GB", - "name" : "Welsh", - "region" : "United Kingdom" - }, { - "id" : "da", - "name" : "Danish" - }, { - "id" : "da_DK", - "name" : "Danish", - "region" : "Denmark" - }, { - "id" : "da_GL", - "name" : "Danish", - "region" : "Greenland" - }, { - "id" : "dav", - "name" : "Taita" - }, { - "id" : "dav_KE", - "name" : "Taita", - "region" : "Kenya" - }, { - "id" : "de", - "name" : "German" - }, { - "id" : "de_AT", - "name" : "German", - "region" : "Austria" - }, { - "id" : "de_BE", - "name" : "German", - "region" : "Belgium" - }, { - "id" : "de_CH", - "name" : "German", - "region" : "Switzerland" - }, { - "id" : "de_DE", - "name" : "German", - "region" : "Germany" - }, { - "id" : "de_LI", - "name" : "German", - "region" : "Liechtenstein" - }, { - "id" : "de_LU", - "name" : "German", - "region" : "Luxembourg" - }, { - "id" : "dje", - "name" : "Zarma" - }, { - "id" : "dje_NE", - "name" : "Zarma", - "region" : "Niger" - }, { - "id" : "dua", - "name" : "Duala" - }, { - "id" : "dua_CM", - "name" : "Duala", - "region" : "Cameroon" - }, { - "id" : "dyo", - "name" : "Jola-Fonyi" - }, { - "id" : "dyo_SN", - "name" : "Jola-Fonyi", - "region" : "Senegal" - }, { - "id" : "dz", - "name" : "Dzongkha" - }, { - "id" : "dz_BT", - "name" : "Dzongkha", - "region" : "Bhutan" - }, { - "id" : "ebu", - "name" : "Embu" - }, { - "id" : "ebu_KE", - "name" : "Embu", - "region" : "Kenya" - }, { - "id" : "ee", - "name" : "Ewe" - }, { - "id" : "ee_GH", - "name" : "Ewe", - "region" : "Ghana" - }, { - "id" : "ee_TG", - "name" : "Ewe", - "region" : "Togo" - }, { - "id" : "el", - "name" : "Greek" - }, { - "id" : "el_CY", - "name" : "Greek", - "region" : "Cyprus" - }, { - "id" : "el_GR", - "name" : "Greek", - "region" : "Greece" - }, { - "id" : "en", - "name" : "English", - "tags" : [ "default" ] - }, { - "id" : "en_001", - "name" : "English", - "region" : "World" - }, { - "id" : "en_150", - "name" : "English", - "region" : "Europe" - }, { - "id" : "en_AG", - "name" : "English", - "region" : "Antigua and Barbuda" - }, { - "id" : "en_AI", - "name" : "English", - "region" : "Anguilla" - }, { - "id" : "en_AS", - "name" : "English", - "region" : "American Samoa" - }, { - "id" : "en_AU", - "name" : "English", - "region" : "Australia" - }, { - "id" : "en_BB", - "name" : "English", - "region" : "Barbados" - }, { - "id" : "en_BE", - "name" : "English", - "region" : "Belgium" - }, { - "id" : "en_BM", - "name" : "English", - "region" : "Bermuda" - }, { - "id" : "en_BS", - "name" : "English", - "region" : "Bahamas" - }, { - "id" : "en_BW", - "name" : "English", - "region" : "Botswana" - }, { - "id" : "en_BZ", - "name" : "English", - "region" : "Belize" - }, { - "id" : "en_CA", - "name" : "English", - "region" : "Canada" - }, { - "id" : "en_CC", - "name" : "English", - "region" : "Cocos (Keeling) Islands" - }, { - "id" : "en_CK", - "name" : "English", - "region" : "Cook Islands" - }, { - "id" : "en_CM", - "name" : "English", - "region" : "Cameroon" - }, { - "id" : "en_CX", - "name" : "English", - "region" : "Christmas Island" - }, { - "id" : "en_DG", - "name" : "English", - "region" : "Diego Garcia" - }, { - "id" : "en_DM", - "name" : "English", - "region" : "Dominica" - }, { - "id" : "en_ER", - "name" : "English", - "region" : "Eritrea" - }, { - "id" : "en_FJ", - "name" : "English", - "region" : "Fiji" - }, { - "id" : "en_FK", - "name" : "English", - "region" : "Falkland Islands (Islas Malvinas)" - }, { - "id" : "en_FM", - "name" : "English", - "region" : "Micronesia" - }, { - "id" : "en_GB", - "name" : "English", - "region" : "United Kingdom" - }, { - "id" : "en_GD", - "name" : "English", - "region" : "Grenada" - }, { - "id" : "en_GG", - "name" : "English", - "region" : "Guernsey" - }, { - "id" : "en_GH", - "name" : "English", - "region" : "Ghana" - }, { - "id" : "en_GI", - "name" : "English", - "region" : "Gibraltar" - }, { - "id" : "en_GM", - "name" : "English", - "region" : "Gambia" - }, { - "id" : "en_GU", - "name" : "English", - "region" : "Guam" - }, { - "id" : "en_GY", - "name" : "English", - "region" : "Guyana" - }, { - "id" : "en_HK", - "name" : "English", - "region" : "Hong Kong" - }, { - "id" : "en_IE", - "name" : "English", - "region" : "Ireland" - }, { - "id" : "en_IM", - "name" : "English", - "region" : "Isle of Man" - }, { - "id" : "en_IN", - "name" : "English", - "region" : "India" - }, { - "id" : "en_IO", - "name" : "English", - "region" : "British Indian Ocean Territory" - }, { - "id" : "en_JE", - "name" : "English", - "region" : "Jersey" - }, { - "id" : "en_JM", - "name" : "English", - "region" : "Jamaica" - }, { - "id" : "en_KE", - "name" : "English", - "region" : "Kenya" - }, { - "id" : "en_KI", - "name" : "English", - "region" : "Kiribati" - }, { - "id" : "en_KN", - "name" : "English", - "region" : "Saint Kitts and Nevis" - }, { - "id" : "en_KY", - "name" : "English", - "region" : "Cayman Islands" - }, { - "id" : "en_LC", - "name" : "English", - "region" : "Saint Lucia" - }, { - "id" : "en_LR", - "name" : "English", - "region" : "Liberia" - }, { - "id" : "en_LS", - "name" : "English", - "region" : "Lesotho" - }, { - "id" : "en_MG", - "name" : "English", - "region" : "Madagascar" - }, { - "id" : "en_MH", - "name" : "English", - "region" : "Marshall Islands" - }, { - "id" : "en_MO", - "name" : "English", - "region" : "Macau" - }, { - "id" : "en_MP", - "name" : "English", - "region" : "Northern Mariana Islands" - }, { - "id" : "en_MS", - "name" : "English", - "region" : "Montserrat" - }, { - "id" : "en_MT", - "name" : "English", - "region" : "Malta" - }, { - "id" : "en_MU", - "name" : "English", - "region" : "Mauritius" - }, { - "id" : "en_MW", - "name" : "English", - "region" : "Malawi" - }, { - "id" : "en_NA", - "name" : "English", - "region" : "Namibia" - }, { - "id" : "en_NF", - "name" : "English", - "region" : "Norfolk Island" - }, { - "id" : "en_NG", - "name" : "English", - "region" : "Nigeria" - }, { - "id" : "en_NR", - "name" : "English", - "region" : "Nauru" - }, { - "id" : "en_NU", - "name" : "English", - "region" : "Niue" - }, { - "id" : "en_NZ", - "name" : "English", - "region" : "New Zealand" - }, { - "id" : "en_PG", - "name" : "English", - "region" : "Papua New Guinea" - }, { - "id" : "en_PH", - "name" : "English", - "region" : "Philippines" - }, { - "id" : "en_PK", - "name" : "English", - "region" : "Pakistan" - }, { - "id" : "en_PN", - "name" : "English", - "region" : "Pitcairn Islands" - }, { - "id" : "en_PR", - "name" : "English", - "region" : "Puerto Rico" - }, { - "id" : "en_PW", - "name" : "English", - "region" : "Palau" - }, { - "id" : "en_RW", - "name" : "English", - "region" : "Rwanda" - }, { - "id" : "en_SB", - "name" : "English", - "region" : "Solomon Islands" - }, { - "id" : "en_SC", - "name" : "English", - "region" : "Seychelles" - }, { - "id" : "en_SD", - "name" : "English", - "region" : "Sudan" - }, { - "id" : "en_SG", - "name" : "English", - "region" : "Singapore" - }, { - "id" : "en_SH", - "name" : "English", - "region" : "Saint Helena" - }, { - "id" : "en_SL", - "name" : "English", - "region" : "Sierra Leone" - }, { - "id" : "en_SS", - "name" : "English", - "region" : "South Sudan" - }, { - "id" : "en_SX", - "name" : "English", - "region" : "Sint Maarten" - }, { - "id" : "en_SZ", - "name" : "English", - "region" : "Swaziland" - }, { - "id" : "en_TC", - "name" : "English", - "region" : "Turks and Caicos Islands" - }, { - "id" : "en_TK", - "name" : "English", - "region" : "Tokelau" - }, { - "id" : "en_TO", - "name" : "English", - "region" : "Tonga" - }, { - "id" : "en_TT", - "name" : "English", - "region" : "Trinidad and Tobago" - }, { - "id" : "en_TV", - "name" : "English", - "region" : "Tuvalu" - }, { - "id" : "en_TZ", - "name" : "English", - "region" : "Tanzania" - }, { - "id" : "en_UG", - "name" : "English", - "region" : "Uganda" - }, { - "id" : "en_UM", - "name" : "English", - "region" : "U.S. Outlying Islands" - }, { - "id" : "en_US", - "name" : "English", - "region" : "United States" - }, { - "id" : "en_VC", - "name" : "English", - "region" : "St. Vincent & Grenadines" - }, { - "id" : "en_VG", - "name" : "English", - "region" : "British Virgin Islands" - }, { - "id" : "en_VI", - "name" : "English", - "region" : "U.S. Virgin Islands" - }, { - "id" : "en_VU", - "name" : "English", - "region" : "Vanuatu" - }, { - "id" : "en_WS", - "name" : "English", - "region" : "Samoa" - }, { - "id" : "en_ZA", - "name" : "English", - "region" : "South Africa" - }, { - "id" : "en_ZM", - "name" : "English", - "region" : "Zambia" - }, { - "id" : "en_ZW", - "name" : "English", - "region" : "Zimbabwe" - }, { - "id" : "eo", - "name" : "Esperanto" - }, { - "id" : "es", - "name" : "Spanish" - }, { - "id" : "es_419", - "name" : "Spanish", - "region" : "Latin America" - }, { - "id" : "es_AR", - "name" : "Spanish", - "region" : "Argentina" - }, { - "id" : "es_BO", - "name" : "Spanish", - "region" : "Bolivia" - }, { - "id" : "es_CL", - "name" : "Spanish", - "region" : "Chile" - }, { - "id" : "es_CO", - "name" : "Spanish", - "region" : "Colombia" - }, { - "id" : "es_CR", - "name" : "Spanish", - "region" : "Costa Rica" - }, { - "id" : "es_CU", - "name" : "Spanish", - "region" : "Cuba" - }, { - "id" : "es_DO", - "name" : "Spanish", - "region" : "Dominican Republic" - }, { - "id" : "es_EA", - "name" : "Spanish", - "region" : "Ceuta and Melilla" - }, { - "id" : "es_EC", - "name" : "Spanish", - "region" : "Ecuador" - }, { - "id" : "es_ES", - "name" : "Spanish", - "region" : "Spain" - }, { - "id" : "es_GQ", - "name" : "Spanish", - "region" : "Equatorial Guinea" - }, { - "id" : "es_GT", - "name" : "Spanish", - "region" : "Guatemala" - }, { - "id" : "es_HN", - "name" : "Spanish", - "region" : "Honduras" - }, { - "id" : "es_IC", - "name" : "Spanish", - "region" : "Canary Islands" - }, { - "id" : "es_MX", - "name" : "Spanish", - "region" : "Mexico" - }, { - "id" : "es_NI", - "name" : "Spanish", - "region" : "Nicaragua" - }, { - "id" : "es_PA", - "name" : "Spanish", - "region" : "Panama" - }, { - "id" : "es_PE", - "name" : "Spanish", - "region" : "Peru" - }, { - "id" : "es_PH", - "name" : "Spanish", - "region" : "Philippines" - }, { - "id" : "es_PR", - "name" : "Spanish", - "region" : "Puerto Rico" - }, { - "id" : "es_PY", - "name" : "Spanish", - "region" : "Paraguay" - }, { - "id" : "es_SV", - "name" : "Spanish", - "region" : "El Salvador" - }, { - "id" : "es_US", - "name" : "Spanish", - "region" : "United States" - }, { - "id" : "es_UY", - "name" : "Spanish", - "region" : "Uruguay" - }, { - "id" : "es_VE", - "name" : "Spanish", - "region" : "Venezuela" - }, { - "id" : "et", - "name" : "Estonian" - }, { - "id" : "et_EE", - "name" : "Estonian", - "region" : "Estonia" - }, { - "id" : "eu", - "name" : "Basque" - }, { - "id" : "eu_ES", - "name" : "Basque", - "region" : "Spain" - }, { - "id" : "ewo", - "name" : "Ewondo" - }, { - "id" : "ewo_CM", - "name" : "Ewondo", - "region" : "Cameroon" - }, { - "id" : "fa", - "name" : "Persian" - }, { - "id" : "fa_AF", - "name" : "Persian", - "region" : "Afghanistan" - }, { - "id" : "fa_IR", - "name" : "Persian", - "region" : "Iran" - }, { - "id" : "ff", - "name" : "Fulah" - }, { - "id" : "ff_SN", - "name" : "Fulah", - "region" : "Senegal" - }, { - "id" : "fi", - "name" : "Finnish" - }, { - "id" : "fi_FI", - "name" : "Finnish", - "region" : "Finland" - }, { - "id" : "fil", - "name" : "Filipino" - }, { - "id" : "fil_PH", - "name" : "Filipino", - "region" : "Philippines" - }, { - "id" : "fo", - "name" : "Faroese" - }, { - "id" : "fo_FO", - "name" : "Faroese", - "region" : "Faroe Islands" - }, { - "id" : "fr", - "name" : "French" - }, { - "id" : "fr_BE", - "name" : "French", - "region" : "Belgium" - }, { - "id" : "fr_BF", - "name" : "French", - "region" : "Burkina Faso" - }, { - "id" : "fr_BI", - "name" : "French", - "region" : "Burundi" - }, { - "id" : "fr_BJ", - "name" : "French", - "region" : "Benin" - }, { - "id" : "fr_BL", - "name" : "French", - "region" : "Saint Barthélemy" - }, { - "id" : "fr_CA", - "name" : "French", - "region" : "Canada" - }, { - "id" : "fr_CD", - "name" : "French", - "region" : "Congo (DRC)" - }, { - "id" : "fr_CF", - "name" : "French", - "region" : "Central African Republic" - }, { - "id" : "fr_CG", - "name" : "French", - "region" : "Congo (Republic)" - }, { - "id" : "fr_CH", - "name" : "French", - "region" : "Switzerland" - }, { - "id" : "fr_CI", - "name" : "French", - "region" : "Côte d’Ivoire" - }, { - "id" : "fr_CM", - "name" : "French", - "region" : "Cameroon" - }, { - "id" : "fr_DJ", - "name" : "French", - "region" : "Djibouti" - }, { - "id" : "fr_DZ", - "name" : "French", - "region" : "Algeria" - }, { - "id" : "fr_FR", - "name" : "French", - "region" : "France" - }, { - "id" : "fr_GA", - "name" : "French", - "region" : "Gabon" - }, { - "id" : "fr_GF", - "name" : "French", - "region" : "French Guiana" - }, { - "id" : "fr_GN", - "name" : "French", - "region" : "Guinea" - }, { - "id" : "fr_GP", - "name" : "French", - "region" : "Guadeloupe" - }, { - "id" : "fr_GQ", - "name" : "French", - "region" : "Equatorial Guinea" - }, { - "id" : "fr_HT", - "name" : "French", - "region" : "Haiti" - }, { - "id" : "fr_KM", - "name" : "French", - "region" : "Comoros" - }, { - "id" : "fr_LU", - "name" : "French", - "region" : "Luxembourg" - }, { - "id" : "fr_MA", - "name" : "French", - "region" : "Morocco" - }, { - "id" : "fr_MC", - "name" : "French", - "region" : "Monaco" - }, { - "id" : "fr_MF", - "name" : "French", - "region" : "Saint Martin" - }, { - "id" : "fr_MG", - "name" : "French", - "region" : "Madagascar" - }, { - "id" : "fr_ML", - "name" : "French", - "region" : "Mali" - }, { - "id" : "fr_MQ", - "name" : "French", - "region" : "Martinique" - }, { - "id" : "fr_MR", - "name" : "French", - "region" : "Mauritania" - }, { - "id" : "fr_MU", - "name" : "French", - "region" : "Mauritius" - }, { - "id" : "fr_NC", - "name" : "French", - "region" : "New Caledonia" - }, { - "id" : "fr_NE", - "name" : "French", - "region" : "Niger" - }, { - "id" : "fr_PF", - "name" : "French", - "region" : "French Polynesia" - }, { - "id" : "fr_PM", - "name" : "French", - "region" : "Saint Pierre and Miquelon" - }, { - "id" : "fr_RE", - "name" : "French", - "region" : "Réunion" - }, { - "id" : "fr_RW", - "name" : "French", - "region" : "Rwanda" - }, { - "id" : "fr_SC", - "name" : "French", - "region" : "Seychelles" - }, { - "id" : "fr_SN", - "name" : "French", - "region" : "Senegal" - }, { - "id" : "fr_SY", - "name" : "French", - "region" : "Syria" - }, { - "id" : "fr_TD", - "name" : "French", - "region" : "Chad" - }, { - "id" : "fr_TG", - "name" : "French", - "region" : "Togo" - }, { - "id" : "fr_TN", - "name" : "French", - "region" : "Tunisia" - }, { - "id" : "fr_VU", - "name" : "French", - "region" : "Vanuatu" - }, { - "id" : "fr_WF", - "name" : "French", - "region" : "Wallis and Futuna" - }, { - "id" : "fr_YT", - "name" : "French", - "region" : "Mayotte" - }, { - "id" : "ga", - "name" : "Irish" - }, { - "id" : "ga_IE", - "name" : "Irish", - "region" : "Ireland" - }, { - "id" : "gl", - "name" : "Galician" - }, { - "id" : "gl_ES", - "name" : "Galician", - "region" : "Spain" - }, { - "id" : "gsw", - "name" : "Swiss German" - }, { - "id" : "gsw_CH", - "name" : "Swiss German", - "region" : "Switzerland" - }, { - "id" : "gsw_LI", - "name" : "Swiss German", - "region" : "Liechtenstein" - }, { - "id" : "gu", - "name" : "Gujarati" - }, { - "id" : "gu_IN", - "name" : "Gujarati", - "region" : "India" - }, { - "id" : "guz", - "name" : "Gusii" - }, { - "id" : "guz_KE", - "name" : "Gusii", - "region" : "Kenya" - }, { - "id" : "gv", - "name" : "Manx" - }, { - "id" : "gv_IM", - "name" : "Manx", - "region" : "Isle of Man" - }, { - "id" : "ha", - "name" : "Hausa" - }, { - "id" : "ha_GH", - "name" : "Hausa", - "region" : "Ghana" - }, { - "id" : "ha_NE", - "name" : "Hausa", - "region" : "Niger" - }, { - "id" : "ha_NG", - "name" : "Hausa", - "region" : "Nigeria" - }, { - "id" : "haw", - "name" : "Hawaiian" - }, { - "id" : "haw_US", - "name" : "Hawaiian", - "region" : "United States" - }, { - "id" : "iw", - "name" : "Hebrew" - }, { - "id" : "iw_IL", - "name" : "Hebrew", - "region" : "Israel" - }, { - "id" : "hi", - "name" : "Hindi" - }, { - "id" : "hi_IN", - "name" : "Hindi", - "region" : "India" - }, { - "id" : "hr", - "name" : "Croatian" - }, { - "id" : "hr_BA", - "name" : "Croatian", - "region" : "Bosnia and Herzegovina" - }, { - "id" : "hr_HR", - "name" : "Croatian", - "region" : "Croatia" - }, { - "id" : "hu", - "name" : "Hungarian" - }, { - "id" : "hu_HU", - "name" : "Hungarian", - "region" : "Hungary" - }, { - "id" : "hy", - "name" : "Armenian" - }, { - "id" : "hy_AM", - "name" : "Armenian", - "region" : "Armenia" - }, { - "id" : "in", - "name" : "Indonesian" - }, { - "id" : "in_ID", - "name" : "Indonesian", - "region" : "Indonesia" - }, { - "id" : "ig", - "name" : "Igbo" - }, { - "id" : "ig_NG", - "name" : "Igbo", - "region" : "Nigeria" - }, { - "id" : "ii", - "name" : "Sichuan Yi" - }, { - "id" : "ii_CN", - "name" : "Sichuan Yi", - "region" : "China" - }, { - "id" : "is", - "name" : "Icelandic" - }, { - "id" : "is_IS", - "name" : "Icelandic", - "region" : "Iceland" - }, { - "id" : "it", - "name" : "Italian" - }, { - "id" : "it_CH", - "name" : "Italian", - "region" : "Switzerland" - }, { - "id" : "it_IT", - "name" : "Italian", - "region" : "Italy" - }, { - "id" : "it_SM", - "name" : "Italian", - "region" : "San Marino" - }, { - "id" : "ja", - "name" : "Japanese" - }, { - "id" : "ja_JP", - "name" : "Japanese", - "region" : "Japan" - }, { - "id" : "jgo", - "name" : "Ngomba" - }, { - "id" : "jgo_CM", - "name" : "Ngomba", - "region" : "Cameroon" - }, { - "id" : "jmc", - "name" : "Machame" - }, { - "id" : "jmc_TZ", - "name" : "Machame", - "region" : "Tanzania" - }, { - "id" : "ka", - "name" : "Georgian" - }, { - "id" : "ka_GE", - "name" : "Georgian", - "region" : "Georgia" - }, { - "id" : "kab", - "name" : "Kabyle" - }, { - "id" : "kab_DZ", - "name" : "Kabyle", - "region" : "Algeria" - }, { - "id" : "kam", - "name" : "Kamba" - }, { - "id" : "kam_KE", - "name" : "Kamba", - "region" : "Kenya" - }, { - "id" : "kde", - "name" : "Makonde" - }, { - "id" : "kde_TZ", - "name" : "Makonde", - "region" : "Tanzania" - }, { - "id" : "kea", - "name" : "Kabuverdianu" - }, { - "id" : "kea_CV", - "name" : "Kabuverdianu", - "region" : "Cape Verde" - }, { - "id" : "khq", - "name" : "Koyra Chiini" - }, { - "id" : "khq_ML", - "name" : "Koyra Chiini", - "region" : "Mali" - }, { - "id" : "ki", - "name" : "Kikuyu" - }, { - "id" : "ki_KE", - "name" : "Kikuyu", - "region" : "Kenya" - }, { - "id" : "kk", - "name" : "Kazakh" - }, { - "id" : "kk_KZ", - "name" : "Kazakh", - "region" : "Kazakhstan" - }, { - "id" : "kkj", - "name" : "Kako" - }, { - "id" : "kkj_CM", - "name" : "Kako", - "region" : "Cameroon" - }, { - "id" : "kl", - "name" : "Kalaallisut" - }, { - "id" : "kl_GL", - "name" : "Kalaallisut", - "region" : "Greenland" - }, { - "id" : "kln", - "name" : "Kalenjin" - }, { - "id" : "kln_KE", - "name" : "Kalenjin", - "region" : "Kenya" - }, { - "id" : "km", - "name" : "Khmer" - }, { - "id" : "km_KH", - "name" : "Khmer", - "region" : "Cambodia" - }, { - "id" : "kn", - "name" : "Kannada" - }, { - "id" : "kn_IN", - "name" : "Kannada", - "region" : "India" - }, { - "id" : "ko", - "name" : "Korean" - }, { - "id" : "ko_KP", - "name" : "Korean", - "region" : "North Korea" - }, { - "id" : "ko_KR", - "name" : "Korean", - "region" : "South Korea" - }, { - "id" : "kok", - "name" : "Konkani" - }, { - "id" : "kok_IN", - "name" : "Konkani", - "region" : "India" - }, { - "id" : "ks", - "name" : "Kashmiri" - }, { - "id" : "ks_IN", - "name" : "Kashmiri", - "region" : "India" - }, { - "id" : "ksb", - "name" : "Shambala" - }, { - "id" : "ksb_TZ", - "name" : "Shambala", - "region" : "Tanzania" - }, { - "id" : "ksf", - "name" : "Bafia" - }, { - "id" : "ksf_CM", - "name" : "Bafia", - "region" : "Cameroon" - }, { - "id" : "kw", - "name" : "Cornish" - }, { - "id" : "kw_GB", - "name" : "Cornish", - "region" : "United Kingdom" - }, { - "id" : "ky", - "name" : "Kyrgyz" - }, { - "id" : "ky_KG", - "name" : "Kyrgyz", - "region" : "Kyrgyzstan" - }, { - "id" : "lag", - "name" : "Langi" - }, { - "id" : "lag_TZ", - "name" : "Langi", - "region" : "Tanzania" - }, { - "id" : "lg", - "name" : "Ganda" - }, { - "id" : "lg_UG", - "name" : "Ganda", - "region" : "Uganda" - }, { - "id" : "lkt", - "name" : "Lakota" - }, { - "id" : "lkt_US", - "name" : "Lakota", - "region" : "United States" - }, { - "id" : "ln", - "name" : "Lingala" - }, { - "id" : "ln_AO", - "name" : "Lingala", - "region" : "Angola" - }, { - "id" : "ln_CD", - "name" : "Lingala", - "region" : "Congo (DRC)" - }, { - "id" : "ln_CF", - "name" : "Lingala", - "region" : "Central African Republic" - }, { - "id" : "ln_CG", - "name" : "Lingala", - "region" : "Congo (Republic)" - }, { - "id" : "lo", - "name" : "Lao" - }, { - "id" : "lo_LA", - "name" : "Lao", - "region" : "Laos" - }, { - "id" : "lt", - "name" : "Lithuanian" - }, { - "id" : "lt_LT", - "name" : "Lithuanian", - "region" : "Lithuania" - }, { - "id" : "lu", - "name" : "Luba-Katanga" - }, { - "id" : "lu_CD", - "name" : "Luba-Katanga", - "region" : "Congo (DRC)" - }, { - "id" : "luo", - "name" : "Luo" - }, { - "id" : "luo_KE", - "name" : "Luo", - "region" : "Kenya" - }, { - "id" : "luy", - "name" : "Luyia" - }, { - "id" : "luy_KE", - "name" : "Luyia", - "region" : "Kenya" - }, { - "id" : "lv", - "name" : "Latvian" - }, { - "id" : "lv_LV", - "name" : "Latvian", - "region" : "Latvia" - }, { - "id" : "mas", - "name" : "Masai" - }, { - "id" : "mas_KE", - "name" : "Masai", - "region" : "Kenya" - }, { - "id" : "mas_TZ", - "name" : "Masai", - "region" : "Tanzania" - }, { - "id" : "mer", - "name" : "Meru" - }, { - "id" : "mer_KE", - "name" : "Meru", - "region" : "Kenya" - }, { - "id" : "mfe", - "name" : "Morisyen" - }, { - "id" : "mfe_MU", - "name" : "Morisyen", - "region" : "Mauritius" - }, { - "id" : "mg", - "name" : "Malagasy" - }, { - "id" : "mg_MG", - "name" : "Malagasy", - "region" : "Madagascar" - }, { - "id" : "mgh", - "name" : "Makhuwa-Meetto" - }, { - "id" : "mgh_MZ", - "name" : "Makhuwa-Meetto", - "region" : "Mozambique" - }, { - "id" : "mgo", - "name" : "Meta'" - }, { - "id" : "mgo_CM", - "name" : "Meta'", - "region" : "Cameroon" - }, { - "id" : "mk", - "name" : "Macedonian" - }, { - "id" : "mk_MK", - "name" : "Macedonian", - "region" : "Macedonia (FYROM)" - }, { - "id" : "ml", - "name" : "Malayalam" - }, { - "id" : "ml_IN", - "name" : "Malayalam", - "region" : "India" - }, { - "id" : "mn", - "name" : "Mongolian" - }, { - "id" : "mn_MN", - "name" : "Mongolian", - "region" : "Mongolia" - }, { - "id" : "mr", - "name" : "Marathi" - }, { - "id" : "mr_IN", - "name" : "Marathi", - "region" : "India" - }, { - "id" : "ms", - "name" : "Malay" - }, { - "id" : "ms_BN", - "name" : "Malay", - "region" : "Brunei" - }, { - "id" : "ms_MY", - "name" : "Malay", - "region" : "Malaysia" - }, { - "id" : "ms_SG", - "name" : "Malay", - "region" : "Singapore" - }, { - "id" : "mt", - "name" : "Maltese" - }, { - "id" : "mt_MT", - "name" : "Maltese", - "region" : "Malta" - }, { - "id" : "mua", - "name" : "Mundang" - }, { - "id" : "mua_CM", - "name" : "Mundang", - "region" : "Cameroon" - }, { - "id" : "my", - "name" : "Burmese" - }, { - "id" : "my_MM", - "name" : "Burmese", - "region" : "Myanmar (Burma)" - }, { - "id" : "naq", - "name" : "Nama" - }, { - "id" : "naq_NA", - "name" : "Nama", - "region" : "Namibia" - }, { - "id" : "nb", - "name" : "Norwegian Bokmål" - }, { - "id" : "nb_NO", - "name" : "Norwegian Bokmål", - "region" : "Norway" - }, { - "id" : "nb_SJ", - "name" : "Norwegian Bokmål", - "region" : "Svalbard and Jan Mayen" - }, { - "id" : "nd", - "name" : "North Ndebele" - }, { - "id" : "nd_ZW", - "name" : "North Ndebele", - "region" : "Zimbabwe" - }, { - "id" : "ne", - "name" : "Nepali" - }, { - "id" : "ne_IN", - "name" : "Nepali", - "region" : "India" - }, { - "id" : "ne_NP", - "name" : "Nepali", - "region" : "Nepal" - }, { - "id" : "nl", - "name" : "Dutch" - }, { - "id" : "nl_AW", - "name" : "Dutch", - "region" : "Aruba" - }, { - "id" : "nl_BE", - "name" : "Dutch", - "region" : "Belgium" - }, { - "id" : "nl_BQ", - "name" : "Dutch", - "region" : "Caribbean Netherlands" - }, { - "id" : "nl_CW", - "name" : "Dutch", - "region" : "Curaçao" - }, { - "id" : "nl_NL", - "name" : "Dutch", - "region" : "Netherlands" - }, { - "id" : "nl_SR", - "name" : "Dutch", - "region" : "Suriname" - }, { - "id" : "nl_SX", - "name" : "Dutch", - "region" : "Sint Maarten" - }, { - "id" : "nmg", - "name" : "Kwasio" - }, { - "id" : "nmg_CM", - "name" : "Kwasio", - "region" : "Cameroon" - }, { - "id" : "nn", - "name" : "Norwegian Nynorsk" - }, { - "id" : "nn_NO", - "name" : "Norwegian Nynorsk", - "region" : "Norway" - }, { - "id" : "nnh", - "name" : "Ngiemboon" - }, { - "id" : "nnh_CM", - "name" : "Ngiemboon", - "region" : "Cameroon" - }, { - "id" : "nus", - "name" : "Nuer" - }, { - "id" : "nus_SD", - "name" : "Nuer", - "region" : "Sudan" - }, { - "id" : "nyn", - "name" : "Nyankole" - }, { - "id" : "nyn_UG", - "name" : "Nyankole", - "region" : "Uganda" - }, { - "id" : "om", - "name" : "Oromo" - }, { - "id" : "om_ET", - "name" : "Oromo", - "region" : "Ethiopia" - }, { - "id" : "om_KE", - "name" : "Oromo", - "region" : "Kenya" - }, { - "id" : "or", - "name" : "Oriya" - }, { - "id" : "or_IN", - "name" : "Oriya", - "region" : "India" - }, { - "id" : "pa", - "name" : "Punjabi" - }, { - "id" : "pa_PK", - "name" : "Punjabi", - "region" : "Pakistan" - }, { - "id" : "pa_IN", - "name" : "Punjabi", - "region" : "India" - }, { - "id" : "pl", - "name" : "Polish" - }, { - "id" : "pl_PL", - "name" : "Polish", - "region" : "Poland" - }, { - "id" : "ps", - "name" : "Pashto" - }, { - "id" : "ps_AF", - "name" : "Pashto", - "region" : "Afghanistan" - }, { - "id" : "pt", - "name" : "Portuguese" - }, { - "id" : "pt_AO", - "name" : "Portuguese", - "region" : "Angola" - }, { - "id" : "pt_BR", - "name" : "Portuguese", - "region" : "Brazil" - }, { - "id" : "pt_CV", - "name" : "Portuguese", - "region" : "Cape Verde" - }, { - "id" : "pt_GW", - "name" : "Portuguese", - "region" : "Guinea-Bissau" - }, { - "id" : "pt_MO", - "name" : "Portuguese", - "region" : "Macau" - }, { - "id" : "pt_MZ", - "name" : "Portuguese", - "region" : "Mozambique" - }, { - "id" : "pt_PT", - "name" : "Portuguese", - "region" : "Portugal" - }, { - "id" : "pt_ST", - "name" : "Portuguese", - "region" : "São Tomé and Príncipe" - }, { - "id" : "pt_TL", - "name" : "Portuguese", - "region" : "Timor-Leste" - }, { - "id" : "rm", - "name" : "Romansh" - }, { - "id" : "rm_CH", - "name" : "Romansh", - "region" : "Switzerland" - }, { - "id" : "rn", - "name" : "Rundi" - }, { - "id" : "rn_BI", - "name" : "Rundi", - "region" : "Burundi" - }, { - "id" : "ro", - "name" : "Romanian" - }, { - "id" : "ro_MD", - "name" : "Romanian", - "region" : "Moldova" - }, { - "id" : "ro_RO", - "name" : "Romanian", - "region" : "Romania" - }, { - "id" : "rof", - "name" : "Rombo" - }, { - "id" : "rof_TZ", - "name" : "Rombo", - "region" : "Tanzania" - }, { - "id" : "ru", - "name" : "Russian" - }, { - "id" : "ru_BY", - "name" : "Russian", - "region" : "Belarus" - }, { - "id" : "ru_KG", - "name" : "Russian", - "region" : "Kyrgyzstan" - }, { - "id" : "ru_KZ", - "name" : "Russian", - "region" : "Kazakhstan" - }, { - "id" : "ru_MD", - "name" : "Russian", - "region" : "Moldova" - }, { - "id" : "ru_RU", - "name" : "Russian", - "region" : "Russia" - }, { - "id" : "ru_UA", - "name" : "Russian", - "region" : "Ukraine" - }, { - "id" : "rw", - "name" : "Kinyarwanda" - }, { - "id" : "rw_RW", - "name" : "Kinyarwanda", - "region" : "Rwanda" - }, { - "id" : "rwk", - "name" : "Rwa" - }, { - "id" : "rwk_TZ", - "name" : "Rwa", - "region" : "Tanzania" - }, { - "id" : "saq", - "name" : "Samburu" - }, { - "id" : "saq_KE", - "name" : "Samburu", - "region" : "Kenya" - }, { - "id" : "sbp", - "name" : "Sangu" - }, { - "id" : "sbp_TZ", - "name" : "Sangu", - "region" : "Tanzania" - }, { - "id" : "seh", - "name" : "Sena" - }, { - "id" : "seh_MZ", - "name" : "Sena", - "region" : "Mozambique" - }, { - "id" : "ses", - "name" : "Koyraboro Senni" - }, { - "id" : "ses_ML", - "name" : "Koyraboro Senni", - "region" : "Mali" - }, { - "id" : "sg", - "name" : "Sango" - }, { - "id" : "sg_CF", - "name" : "Sango", - "region" : "Central African Republic" - }, { - "id" : "shi", - "name" : "Tachelhit" - }, { - "id" : "shi_MA", - "name" : "Tachelhit", - "region" : "Morocco" - }, { - "id" : "si", - "name" : "Sinhala" - }, { - "id" : "si_LK", - "name" : "Sinhala", - "region" : "Sri Lanka" - }, { - "id" : "sk", - "name" : "Slovak" - }, { - "id" : "sk_SK", - "name" : "Slovak", - "region" : "Slovakia" - }, { - "id" : "sl", - "name" : "Slovenian" - }, { - "id" : "sl_SI", - "name" : "Slovenian", - "region" : "Slovenia" - }, { - "id" : "sn", - "name" : "Shona" - }, { - "id" : "sn_ZW", - "name" : "Shona", - "region" : "Zimbabwe" - }, { - "id" : "so", - "name" : "Somali" - }, { - "id" : "so_DJ", - "name" : "Somali", - "region" : "Djibouti" - }, { - "id" : "so_ET", - "name" : "Somali", - "region" : "Ethiopia" - }, { - "id" : "so_KE", - "name" : "Somali", - "region" : "Kenya" - }, { - "id" : "so_SO", - "name" : "Somali", - "region" : "Somalia" - }, { - "id" : "sq", - "name" : "Albanian" - }, { - "id" : "sq_AL", - "name" : "Albanian", - "region" : "Albania" - }, { - "id" : "sq_MK", - "name" : "Albanian", - "region" : "Macedonia (FYROM)" - }, { - "id" : "sq_XK", - "name" : "Albanian", - "region" : "Kosovo" - }, { - "id" : "sr", - "name" : "Serbian" - }, { - "id" : "sr_BA", - "name" : "Serbian", - "region" : "Bosnia and Herzegovina" - }, { - "id" : "sr_ME", - "name" : "Serbian", - "region" : "Montenegro" - }, { - "id" : "sr_RS", - "name" : "Serbian", - "region" : "Serbia" - }, { - "id" : "sr_XK", - "name" : "Serbian", - "region" : "Kosovo" - }, { - "id" : "sv", - "name" : "Swedish" - }, { - "id" : "sv_AX", - "name" : "Swedish", - "region" : "Åland Islands" - }, { - "id" : "sv_FI", - "name" : "Swedish", - "region" : "Finland" - }, { - "id" : "sv_SE", - "name" : "Swedish", - "region" : "Sweden" - }, { - "id" : "sw", - "name" : "Swahili" - }, { - "id" : "sw_KE", - "name" : "Swahili", - "region" : "Kenya" - }, { - "id" : "sw_TZ", - "name" : "Swahili", - "region" : "Tanzania" - }, { - "id" : "sw_UG", - "name" : "Swahili", - "region" : "Uganda" - }, { - "id" : "swc", - "name" : "Congo Swahili" - }, { - "id" : "swc_CD", - "name" : "Congo Swahili", - "region" : "Congo (DRC)" - }, { - "id" : "ta", - "name" : "Tamil" - }, { - "id" : "ta_IN", - "name" : "Tamil", - "region" : "India" - }, { - "id" : "ta_LK", - "name" : "Tamil", - "region" : "Sri Lanka" - }, { - "id" : "ta_MY", - "name" : "Tamil", - "region" : "Malaysia" - }, { - "id" : "ta_SG", - "name" : "Tamil", - "region" : "Singapore" - }, { - "id" : "te", - "name" : "Telugu" - }, { - "id" : "te_IN", - "name" : "Telugu", - "region" : "India" - }, { - "id" : "teo", - "name" : "Teso" - }, { - "id" : "teo_KE", - "name" : "Teso", - "region" : "Kenya" - }, { - "id" : "teo_UG", - "name" : "Teso", - "region" : "Uganda" - }, { - "id" : "th", - "name" : "Thai" - }, { - "id" : "th_TH", - "name" : "Thai", - "region" : "Thailand" - }, { - "id" : "ti", - "name" : "Tigrinya" - }, { - "id" : "ti_ER", - "name" : "Tigrinya", - "region" : "Eritrea" - }, { - "id" : "ti_ET", - "name" : "Tigrinya", - "region" : "Ethiopia" - }, { - "id" : "to", - "name" : "Tongan" - }, { - "id" : "to_TO", - "name" : "Tongan", - "region" : "Tonga" - }, { - "id" : "tr", - "name" : "Turkish" - }, { - "id" : "tr_CY", - "name" : "Turkish", - "region" : "Cyprus" - }, { - "id" : "tr_TR", - "name" : "Turkish", - "region" : "Turkey" - }, { - "id" : "twq", - "name" : "Tasawaq" - }, { - "id" : "twq_NE", - "name" : "Tasawaq", - "region" : "Niger" - }, { - "id" : "tzm", - "name" : "Central Atlas Tamazight" - }, { - "id" : "tzm_MA", - "name" : "Central Atlas Tamazight", - "region" : "Morocco" - }, { - "id" : "ug", - "name" : "Uyghur" - }, { - "id" : "ug_CN", - "name" : "Uyghur", - "region" : "China" - }, { - "id" : "uk", - "name" : "Ukrainian" - }, { - "id" : "uk_UA", - "name" : "Ukrainian", - "region" : "Ukraine" - }, { - "id" : "ur", - "name" : "Urdu" - }, { - "id" : "ur_IN", - "name" : "Urdu", - "region" : "India" - }, { - "id" : "ur_PK", - "name" : "Urdu", - "region" : "Pakistan" - }, { - "id" : "uz", - "name" : "Uzbek" - }, { - "id" : "uz_AF", - "name" : "Uzbek", - "region" : "Afghanistan" - }, { - "id" : "uz_UZ", - "name" : "Uzbek", - "region" : "Uzbekistan" - }, { - "id" : "vai", - "name" : "Vai" - }, { - "id" : "vai_LR", - "name" : "Vai", - "region" : "Liberia" - }, { - "id" : "vi", - "name" : "Vietnamese" - }, { - "id" : "vi_VN", - "name" : "Vietnamese", - "region" : "Vietnam" - }, { - "id" : "vun", - "name" : "Vunjo" - }, { - "id" : "vun_TZ", - "name" : "Vunjo", - "region" : "Tanzania" - }, { - "id" : "xog", - "name" : "Soga" - }, { - "id" : "xog_UG", - "name" : "Soga", - "region" : "Uganda" - }, { - "id" : "yav", - "name" : "Yangben" - }, { - "id" : "yav_CM", - "name" : "Yangben", - "region" : "Cameroon" - }, { - "id" : "yo", - "name" : "Yoruba" - }, { - "id" : "yo_BJ", - "name" : "Yoruba", - "region" : "Benin" - }, { - "id" : "yo_NG", - "name" : "Yoruba", - "region" : "Nigeria" - }, { - "id" : "zgh", - "name" : "Standard Moroccan Tamazight" - }, { - "id" : "zgh_MA", - "name" : "Standard Moroccan Tamazight", - "region" : "Morocco" - }, { - "id" : "zh", - "name" : "Chinese" - }, { - "id" : "zh_CN", - "name" : "Chinese", - "region" : "China" - }, { - "id" : "zh_HK", - "name" : "Chinese", - "region" : "Hong Kong" - }, { - "id" : "zh_MO", - "name" : "Chinese", - "region" : "Macau" - }, { - "id" : "zh_SG", - "name" : "Chinese", - "region" : "Singapore" - }, { - "id" : "zh_TW", - "name" : "Chinese", - "region" : "Taiwan" - }, { - "id" : "zu", - "name" : "Zulu" - }, { - "id" : "zu_ZA", - "name" : "Zulu", - "region" : "South Africa" - } ], - "orientations" : [ { - "id" : "landscape", - "name" : "Landscape" - }, { - "id" : "portrait", - "name" : "Portrait", - "tags" : [ "default" ] - }, { - "id" : "default", - "name" : "Default" - } ] + "models": [ + { + "brand": "vivo", + "codename": "1805", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "1805", + "manufacturer": "Vivo", + "name": "vivo 1805", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2316, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/1Bc06fWc2fa8AnFoU37CQ9h84bI-4Nc4QfjcwX-WsG7wXoK-hDs3JSwkRAW0vvmXpeAGlzVUke4I" + }, + { + "brand": "Sony", + "codename": "602SO", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "602SO", + "manufacturer": "Sony", + "name": "602SO", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/90WcauuJiCYABEl8U0lcZeuS5STUbf2yW6UcUqjymnhFd8GoVzxGha1PjXIJvJQr4zXQkYuulTJJ" + }, + { + "brand": "Sony", + "codename": "801SO", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "801SO", + "manufacturer": "Sony", + "name": "801SO", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2880, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/LeuJjBs8fHykGcJnvC1QOpehSKkL0G-Mbsg-wEGpVuBziq0D2_zfQjPhYgIpaEfw0ddBaS7q2QOD" + }, + { + "brand": "oneplus", + "codename": "A0001", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "A0001", + "manufacturer": "OnePlus", + "name": "A0001", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/aJWZgsceIg37Cq3culGvHzGRgfR9DjPRkg05WTTj52qsZ3eDC0NsuZi6_Eta2-gA7A-QenZN-zim" + }, + { + "brand": "Nokia", + "codename": "A1N_sprout", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "A1N_sprout", + "manufacturer": "HMD Global", + "name": "Nokia 8 Sirocco", + "screenDensity": 560, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/oasSSIuwpj2a7vZUynkZ7n63nThsz4W9AZaMAGWAi57UFayQ_SGzrv0nePpyzKL2SkBG4TZABt4" + }, + { + "brand": "Nokia", + "codename": "AOP_sprout", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "AOP_sprout", + "manufacturer": "HMD Global", + "name": "Nokia 9", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2880, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/-NAm8zoviK2NaO03XDSRxnMBrABfD3bguKdD0OlQzB2g41n__Tfa_Ail5SXgDiR2QYXPzkua2kgZDA" + }, + { + "brand": "asus", + "codename": "ASUS_X00T_3", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "ASUS_X00T_3", + "manufacturer": "Asus", + "name": "ASUS_X00TD", + "screenDensity": 480, + "screenX": 2160, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27", + "28" + ] + }, + { + "brand": "asus", + "codename": "ASUS_Z01H_1", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "ASUS_Z01H_1", + "manufacturer": "Asus", + "name": "ASUS_Z01HDA", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/eIy1eSPjY9qCxpIrRmOCrfTcifGmXIr6p2rn87WioJOsjEqfNXDMW9P_bglMEaZi5tXcY8oeRg5u" + }, + { + "brand": "asus", + "codename": "ASUS_Z01KDA", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "ASUS_Z01KDA", + "manufacturer": "Asus", + "name": "ASUS_Z01KD", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/exQVQIQyKfmMgyu5aPO24ajo_Pfc-K3X5fEreNGbOl6QDZnTh_shVLrF9P1hbOUsrvc1F10lBEc" + }, + { + "brand": "Nokia", + "codename": "B2N_sprout", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "B2N_sprout", + "manufacturer": "HMD Global", + "name": "Nokia 7 plus", + "screenDensity": 420, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "tags": [ + "deprecated=28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/kZxU1r89KGfxIriCCKaBzjyVOrTQr0-3MT5MxFGtMylyTOcMxfXELQK5D99ErzgIbqyQ5R3Q10xV" + }, + { + "brand": "Sony", + "codename": "D6503", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "D6503", + "manufacturer": "Sony", + "name": "D6503", + "screenDensity": 424, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh6.ggpht.com/LkzIfLgD6TS8mA8fIDPu9U8niMZ6CysoG9Q-utiRD-VISLUIDSTRNhg4ph25Arp8dT7J_RluKcI" + }, + { + "brand": "Sony", + "codename": "D6603", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "D6603", + "manufacturer": "Sony", + "name": "Xperia Z3", + "screenDensity": 424, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/WFg3W52lbgD3-6Hz3wz4vMf8sGqz5mnZnTJ3KBAo8pLaab5ee_LqRWkht6hryN7gJY3R8aDgB_Q" + }, + { + "brand": "Nokia", + "codename": "DRG_sprout", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "DRG_sprout", + "manufacturer": "HMD Global", + "name": "Nokia 6.1 Plus", + "screenDensity": 420, + "screenX": 2280, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/peXVpDEZJKFY_KpD5Zh-GRj2uBX4CkaBElPx61LUZVDkWz8tfWoR1g1FcMJ4_TDigQ6wkdOQIEiy" + }, + { + "brand": "Sony", + "codename": "E5803", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "E5803", + "manufacturer": "Sony", + "name": "Xperia Z5 Compact", + "screenDensity": 323, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/y7XaXemxUYAUYbKztArVOkpQoOnCSYo-rk-j8PQW4TDaHiSkQ7YuDG203guYbBJmJC_IWd_KUOQr" + }, + { + "brand": "Sony", + "codename": "F5121", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "F5121", + "manufacturer": "Sony", + "name": "F5121", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/w9YfPXhQ4ui0hIhI0FndG3YUBHFsF6_1bnEicl8I0osOboek2jRQmV1aoD8IMjsHIme_6ihEc7F8" + }, + { + "brand": "Sony", + "codename": "F8331", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "F8331", + "manufacturer": "Sony", + "name": "F8331", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/vS4FBICg_dy1GJhHUGBRBAVYH285JCgrVtSqmfH-AIPIAsOkBZum8THi_rFpk4Y-NZyRbwwCbW-3" + }, + { + "brand": "Sony", + "codename": "F8332", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "F8332", + "manufacturer": "Sony", + "name": "F8332", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/vS4FBICg_dy1GJhHUGBRBAVYH285JCgrVtSqmfH-AIPIAsOkBZum8THi_rFpk4Y-NZyRbwwCbW-3" + }, + { + "brand": "Nokia", + "codename": "FRT", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "FRT", + "manufacturer": "HMD Global", + "name": "Nokia 1", + "screenDensity": 240, + "screenX": 480, + "screenY": 854, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/S1o2WB_jvLqf6frd_CSBPe1-aCOrykz3cbjCbfJGViwc9m_-Nxf0aYII63qnb7OpEZ19dMoAEUqw" + }, + { + "brand": "Sony", + "codename": "G8142", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "G8142", + "manufacturer": "Sony", + "name": "G8142", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "25", + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/-qrrnvxN1PFjHVaBSuVmDexxMXCHm6G1oquO-HX-gbb6MITH2HIC7CiJy5Nhq_EDUQE7-e3Y2qhJ" + }, + { + "brand": "Sony", + "codename": "G8232", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "G8232", + "manufacturer": "Sony", + "name": "G8232", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/g6y4KdEGJdyiU2fbzSe9S55flEYCQTSCZ_4ACb2FtZnFjTpiclx0fZyNytTBbynfuTupve3Sten-" + }, + { + "brand": "Sony", + "codename": "G8342", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "G8342", + "manufacturer": "Sony", + "name": "G8342", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/6kl2pZEURkS3hLzDbyBIJ4zochFRDM6RHn7dRPmsXEG1Nfu2EAGK9WfSBf5V8Lk1EBKpnEGkU-o9" + }, + { + "brand": "Sony", + "codename": "G8441", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "G8441", + "manufacturer": "Sony", + "name": "G8441", + "screenDensity": 320, + "screenX": 1280, + "screenY": 720, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/GKkzomYlZGEMWh5ks3ggxuFGtLLt2WQL8ECoGODek7Z7WrS_ZrusNegAaXxGidDe7NhNIRJHNwLh" + }, + { + "brand": "Sony", + "codename": "H8216", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "H8216", + "manufacturer": "Sony", + "name": "H8216", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/NGTtvMwJdYHOGkfyAXz0NWg66qX1aNpAaL68erhY8CdHHOuyO10x9kwkzsre7bef27he64hDsaRL" + }, + { + "brand": "Sony", + "codename": "H8266", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "H8266", + "manufacturer": "Sony", + "name": "H8266", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/NGTtvMwJdYHOGkfyAXz0NWg66qX1aNpAaL68erhY8CdHHOuyO10x9kwkzsre7bef27he64hDsaRL" + }, + { + "brand": "Sony", + "codename": "H8296", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "H8296", + "manufacturer": "Sony", + "name": "H8296", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/NGTtvMwJdYHOGkfyAXz0NWg66qX1aNpAaL68erhY8CdHHOuyO10x9kwkzsre7bef27he64hDsaRL" + }, + { + "brand": "Sony", + "codename": "H8314", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "H8314", + "manufacturer": "Sony", + "name": "H8314", + "screenDensity": 480, + "screenX": 2160, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Jn6t1R7TpcUSG3Rjt1Zc3Hbpq3c2U_COfy3p-VBItWaJ5XPXXAmIzYrO85pWpJ2iaZbLptDGFj2Y" + }, + { + "brand": "Sony", + "codename": "H8324", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "H8324", + "manufacturer": "Sony", + "name": "H8324", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Jn6t1R7TpcUSG3Rjt1Zc3Hbpq3c2U_COfy3p-VBItWaJ5XPXXAmIzYrO85pWpJ2iaZbLptDGFj2Y" + }, + { + "brand": "Sony", + "codename": "H8416", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "H8416", + "manufacturer": "Sony", + "name": "H8416", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2880, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/LeuJjBs8fHykGcJnvC1QOpehSKkL0G-Mbsg-wEGpVuBziq0D2_zfQjPhYgIpaEfw0ddBaS7q2QOD" + }, + { + "brand": "Sony", + "codename": "H9493", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "H9493", + "manufacturer": "Sony", + "name": "H9493", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2880, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/6WhvS2NcOJPVSBfHexaXg22G8SbOkLDyi8nv3D6u4--hZKJK8wMFEFMo-oxB4Pyg5_ciPepSmDMvkQ" + }, + { + "brand": "KDDI", + "codename": "HUR", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "HUR", + "manufacturer": "SHARP", + "name": "SHV39", + "screenDensity": 640, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/kpGCSiBDtE-3Q_0rvN3LcRiq-Bcj4PPj-ceJ8IBod-FEU0jwNbqfF9Ar9bMgibw7Bc8JIKP1OSJY" + }, + { + "brand": "HUAWEI", + "codename": "HW-01K", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "HW-01K", + "manufacturer": "Huawei", + "name": "HW-01K", + "screenDensity": 480, + "screenX": 2240, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "tags": [ + "deprecated=27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/oX5XoCA8Ew5TVHThaM-j7IWjB60VetyS2ZtZIHpAn58AclR9nGx_hAqpVerFhv-TTpRKVwjnPThS" + }, + { + "brand": "HONOR", + "codename": "HWCOR", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "HWCOR", + "manufacturer": "Huawei", + "name": "COR-L29", + "screenDensity": 480, + "screenX": 2340, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/U8VkhxAM2xAOXTTqi1Zt4v_r4_1FQmTKCcqKG-uwFvoJarYuFVj-pb37RKOKgtKvlhC_n2ATgHKQ" + }, + { + "brand": "HUAWEI", + "codename": "HWMHA", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "HWMHA", + "manufacturer": "Huawei", + "name": "MHA-L29", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "24" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/kWhwyvrchgAaa_hbhAH2uq1Wj_sPy6Jc98_Cs6Ju9K29NPH6tPnUk0SLfAbTmh1Zle-Vh4ibbUs" + }, + { + "brand": "HUAWEI", + "codename": "HWNEO", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "HWNEO", + "manufacturer": "Huawei", + "name": "NEO-L29", + "screenDensity": 640, + "screenX": 2160, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/3yFP3fkc9zZ7spvikuwDmVWj1eSs9ndCO8eJc541NWGt6ecwcpdBcfP58NeOeEFXKOv_5f8mKjI" + }, + { + "brand": "lge", + "codename": "L-01J", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "L-01J", + "manufacturer": "LG", + "name": "L-01J", + "screenDensity": 640, + "screenX": 1440, + "screenY": 2720, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/mQQxjkC-aSqCZ8ssvbkYE-3nKr6bp04o7Ur6HkCxwwDCjjdFL-OkqGC0Lrl_AG6Gs5IQ074LnBMiVQ" + }, + { + "brand": "Google", + "codename": "Nexus10", + "form": "VIRTUAL", + "formFactor": "TABLET", + "id": "Nexus10", + "manufacturer": "Samsung", + "name": "Nexus 10", + "screenDensity": 320, + "screenX": 1600, + "screenY": 2560, + "supportedAbis": [ + "x86" + ], + "supportedVersionIds": [ + "19", + "21", + "22" + ] + }, + { + "brand": "Google", + "codename": "Nexus4", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "Nexus4", + "manufacturer": "LG", + "name": "Nexus 4", + "screenDensity": 320, + "screenX": 768, + "screenY": 1280, + "supportedAbis": [ + "x86" + ], + "supportedVersionIds": [ + "19", + "21", + "22" + ] + }, + { + "brand": "Google", + "codename": "Nexus5", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "Nexus5", + "manufacturer": "LG", + "name": "Nexus 5", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a" + ], + "supportedVersionIds": [ + "19", + "21", + "22", + "23" + ] + }, + { + "brand": "Google", + "codename": "Nexus5X", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "Nexus5X", + "manufacturer": "LG", + "name": "Nexus 5X", + "screenDensity": 423, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a", + "24:armeabi", + "24:armeabi-v7a", + "25:armeabi", + "25:armeabi-v7a", + "26:armeabi", + "26:armeabi-v7a" + ], + "supportedVersionIds": [ + "23", + "24", + "25", + "26" + ] + }, + { + "brand": "Google", + "codename": "Nexus6", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "Nexus6", + "manufacturer": "Motorola", + "name": "Nexus 6", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a", + "24:armeabi", + "24:armeabi-v7a", + "25:armeabi", + "25:armeabi-v7a" + ], + "supportedVersionIds": [ + "21", + "22", + "23", + "24", + "25" + ] + }, + { + "brand": "Google", + "codename": "Nexus6P", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "Nexus6P", + "manufacturer": "Google", + "name": "Nexus 6P", + "screenDensity": 518, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a", + "24:armeabi", + "24:armeabi-v7a", + "25:armeabi", + "25:armeabi-v7a", + "26:armeabi", + "26:armeabi-v7a", + "27:armeabi", + "27:armeabi-v7a" + ], + "supportedVersionIds": [ + "23", + "24", + "25", + "26", + "27" + ] + }, + { + "brand": "Google", + "codename": "Nexus7", + "form": "VIRTUAL", + "formFactor": "TABLET", + "id": "Nexus7", + "manufacturer": "Asus", + "name": "Nexus 7 (2012)", + "screenDensity": 213, + "screenX": 800, + "screenY": 1280, + "supportedAbis": [ + "x86" + ], + "supportedVersionIds": [ + "19", + "21", + "22" + ] + }, + { + "brand": "Generic", + "codename": "Nexus7_clone_16_9", + "form": "VIRTUAL", + "formFactor": "TABLET", + "id": "Nexus7_clone_16_9", + "manufacturer": "Generic", + "name": "Nexus7 clone, DVD 16:9 aspect ratio", + "screenDensity": 160, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a", + "24:armeabi", + "24:armeabi-v7a", + "25:armeabi", + "25:armeabi-v7a", + "26:armeabi", + "26:armeabi-v7a" + ], + "supportedVersionIds": [ + "23", + "24", + "25", + "26" + ], + "tags": [ + "beta" + ] + }, + { + "brand": "Google", + "codename": "Nexus9", + "form": "VIRTUAL", + "formFactor": "TABLET", + "id": "Nexus9", + "manufacturer": "HTC", + "name": "Nexus 9", + "screenDensity": 320, + "screenX": 1536, + "screenY": 2048, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a", + "24:armeabi", + "24:armeabi-v7a", + "25:armeabi", + "25:armeabi-v7a" + ], + "supportedVersionIds": [ + "21", + "22", + "23", + "24", + "25" + ] + }, + { + "brand": "Generic", + "codename": "NexusLowRes", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "NexusLowRes", + "manufacturer": "Generic", + "name": "Low-resolution MDPI phone", + "screenDensity": 160, + "screenX": 360, + "screenY": 640, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a", + "24:armeabi", + "24:armeabi-v7a", + "25:armeabi", + "25:armeabi-v7a", + "26:armeabi", + "26:armeabi-v7a", + "27:armeabi", + "27:armeabi-v7a", + "28:armeabi", + "28:armeabi-v7a", + "29:armeabi", + "29:armeabi-v7a" + ], + "supportedVersionIds": [ + "23", + "24", + "25", + "26", + "27", + "28", + "29", + "30" + ], + "tags": [ + "beta=30" + ] + }, + { + "brand": "Generic", + "codename": "NexusLowRes_Q", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "NexusLowRes_Q", + "manufacturer": "Generic", + "name": "Low-resolution MDPI phone for Android Q", + "screenDensity": 160, + "screenX": 360, + "screenY": 640, + "supportedAbis": [ + "x86", + "29:armeabi", + "29:armeabi-v7a" + ] + }, + { + "brand": "Generic", + "codename": "NexusTabletLowRes2", + "form": "VIRTUAL", + "formFactor": "TABLET", + "id": "NexusTabletLowRes2", + "manufacturer": "Generic", + "name": "Generic 600x800 Android tablet", + "screenDensity": 160, + "screenX": 600, + "screenY": 800, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a" + ] + }, + { + "brand": "Generic", + "codename": "NexusTabletLowRes3", + "form": "VIRTUAL", + "formFactor": "TABLET", + "id": "NexusTabletLowRes3", + "manufacturer": "Generic", + "name": "Generic 600x720 Android tablet", + "screenDensity": 160, + "screenX": 600, + "screenY": 720, + "supportedAbis": [ + "x86", + "23:armeabi", + "23:armeabi-v7a" + ] + }, + { + "brand": "OnePlus", + "codename": "OnePlus3T", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "OnePlus3T", + "manufacturer": "OnePlus", + "name": "ONEPLUS A3003", + "screenDensity": 420, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/_bwnD3vYNOTQrWqLnlvP-_Pa1cdnjfJfRL1EM1m6Ig37hIOV6c799f0eCFg6DOvtRSxYH6RBcLg" + }, + { + "brand": "OnePlus", + "codename": "OnePlus5", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "OnePlus5", + "manufacturer": "OnePlus", + "name": "ONEPLUS A5000", + "screenDensity": 420, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/ZpfESR_730aTTHj4OLm2nx2rffZAybcikU6W-RaRUAgPQ8iJLM0k-k8xaUEXUiVPInPbjy3F1hY" + }, + { + "brand": "OnePlus", + "codename": "OnePlus5T", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "OnePlus5T", + "manufacturer": "OnePlus", + "name": "ONEPLUS A5010", + "screenDensity": 420, + "screenX": 2160, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/76XeI65AZsVnDMFpOTPl-J5OoferZTj5gqXAnUO6zokvmkJyZa12HdVcLiPC4CLWCi__7_hZ77lw" + }, + { + "brand": "OnePlus", + "codename": "OnePlus6T", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "OnePlus6T", + "manufacturer": "OnePlus", + "name": "ONEPLUS A6013", + "screenDensity": 420, + "screenX": 2340, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "tags": [ + "deprecated=28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/XvfYU4PEyjHM8BIEhG4xxXkM0H4yiPG9f714hp0UpUPcx5A3euCb-cFBGcf3eRoAovkK_KTVYe91" + }, + { + "brand": "ZTE", + "codename": "P855A03_NA", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "P855A03_NA", + "manufacturer": "Zte", + "name": "ZTE A2020U Pro", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2340, + "supportedAbis": [ + "armeabi", + "armeabi-v7a", + "armeabi" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/6XaKJd0md-JkETrTo3m6diXJsGKfU1m-cTsPdjHVt-hGgxBSxMSfHT3iIUTZNwZdA7l_zqv4l-Lx" + }, + { + "brand": "Google", + "codename": "Pixel2", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "Pixel2", + "manufacturer": "Google", + "name": "Pixel 2", + "screenDensity": 441, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "x86", + "26:armeabi", + "26:armeabi-v7a", + "27:armeabi", + "27:armeabi-v7a", + "28:armeabi", + "28:armeabi-v7a", + "29:armeabi", + "29:armeabi-v7a" + ], + "supportedVersionIds": [ + "26", + "27", + "28", + "29", + "30" + ], + "tags": [ + "beta=30" + ] + }, + { + "brand": "Google", + "codename": "Pixel2_Q", + "form": "VIRTUAL", + "formFactor": "PHONE", + "id": "Pixel2_Q", + "manufacturer": "Google", + "name": "Pixel 2 for Android Q", + "screenDensity": 441, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "x86", + "29:armeabi", + "29:armeabi-v7a" + ] + }, + { + "brand": "samsung", + "codename": "SC-02K", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SC-02K", + "manufacturer": "Samsung", + "name": "SC-02K", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2220, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/v2jQ18NEhtqVlsv8iPtZ1rAmN1Cg50knOA7BrBfL1PCthU6hGI8T_r2XP_dfpcPxQxtixmJfNZs" + }, + { + "brand": "samsung", + "codename": "SC-03K", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SC-03K", + "manufacturer": "Samsung", + "name": "SC-03K", + "screenDensity": 420, + "screenX": 1080, + "screenY": 2220, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "tags": [ + "deprecated=28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/3z0th18ljLa6z5cL38d4m8x9be7A-U7_mlIXfsNO1J_B2VJa_xvTbmCq_peDG8nauCB5oZQhmoNvag" + }, + { + "brand": "KDDI", + "codename": "SCV33", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SCV33", + "manufacturer": "Samsung", + "name": "SCV33", + "screenDensity": 640, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/BsoXC0dtpdBUTm4tRPafSTqEZKysp_Hd1NfzesPjO-B9u2dxc8V1970EwnmawJV3Lbr3vmC7e1q5" + }, + { + "brand": "KDDI", + "codename": "SCV37", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SCV37", + "manufacturer": "Samsung", + "name": "SCV37", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/ZZVJyg7Vd2-hKiuJ5_N0s6JJvcsvV4bffgfZR1hHrxMDfKr9P4uHg6EIyIFf318Z5K1nC-odhlR4" + }, + { + "brand": "DOCOMO", + "codename": "SH-03K", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SH-03K", + "manufacturer": "SHARP", + "name": "SH-03K", + "screenDensity": 640, + "screenX": 1440, + "screenY": 3040, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/a-UkZJXIaIJdfT30CkVB1GF4dWCPWC6jzXCr8d3Wu3-aFMRjYpVpcV0eVMwFeI7p0GWXRvQVmRs" + }, + { + "brand": "DOCOMO", + "codename": "SH-04H", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SH-04H", + "manufacturer": "SHARP", + "name": "SH-04H", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/tfo1wW-jOdEnHjuXo57kWSzarw1mg1tzRgP8G-2pWrgeqyycMzeXqnDPYHtcfKXPBiy_cLPpRqPb" + }, + { + "brand": "docomo", + "codename": "SO-01J", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SO-01J", + "manufacturer": "Sony", + "name": "SO-01J", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/vS4FBICg_dy1GJhHUGBRBAVYH285JCgrVtSqmfH-AIPIAsOkBZum8THi_rFpk4Y-NZyRbwwCbW-3" + }, + { + "brand": "docomo", + "codename": "SO-03J", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SO-03J", + "manufacturer": "Sony", + "name": "SO-03J", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/90WcauuJiCYABEl8U0lcZeuS5STUbf2yW6UcUqjymnhFd8GoVzxGha1PjXIJvJQr4zXQkYuulTJJ" + }, + { + "brand": "KDDI", + "codename": "SOV33", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SOV33", + "manufacturer": "Sony", + "name": "SOV33", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/35uNQcLHN2Tqt2cNHVJvjWBNiVFLnB5_sQGCf2IQGX4jF6ooJyNDHefR7l8f2jttyshW6lyTM_MN" + }, + { + "brand": "KDDI", + "codename": "SOV34", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "SOV34", + "manufacturer": "Sony", + "name": "SOV34", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/vS4FBICg_dy1GJhHUGBRBAVYH285JCgrVtSqmfH-AIPIAsOkBZum8THi_rFpk4Y-NZyRbwwCbW-3" + }, + { + "brand": "Lenovo", + "codename": "TB-8504F", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "TB-8504F", + "manufacturer": "Lenovo", + "name": "Lenovo TB-8504F", + "screenDensity": 213, + "screenX": 1280, + "screenY": 800, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/ZR4nKTSdXC-r5E4suo22fHgnNkikuN8RzQ7_VWnIYyQXVgcsl5dLOnQw564reJrzpnWJTpmkmZU" + }, + { + "brand": "samsung", + "codename": "a5y17lte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "a5y17lte", + "manufacturer": "Samsung", + "name": "SM-A520F", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/n4FSRepM051wVKjJRcYjFov9NevFfo7flGHyIHdUCWp88d1ivWgxn5cokVJuZPRyGIYTaPAzGpza" + }, + { + "brand": "samsung", + "codename": "a9y18qlte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "a9y18qlte", + "manufacturer": "Samsung", + "name": "SM-A920F", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/ZGdp0pGgOSKbXakhvxfjQNiUQDK_aafZ_h-ztb_1_yMvXcipu0powRCr_lfu1gW41s8ObjX4xLE" + }, + { + "brand": "samsung", + "codename": "a9y18qltechn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "a9y18qltechn", + "manufacturer": "Samsung", + "name": "SM-A9200", + "screenDensity": 420, + "screenX": 1080, + "screenY": 2220, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/ZGdp0pGgOSKbXakhvxfjQNiUQDK_aafZ_h-ztb_1_yMvXcipu0powRCr_lfu1gW41s8ObjX4xLE" + }, + { + "brand": "motorola", + "codename": "addison", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "addison", + "manufacturer": "Motorola", + "name": "XT1635-01", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/FwTRBcZlB6uB9C8i16vvuL1qvf3jKhw5fFoWeOjx5rCGyX2z0j6OrdzkRk8LHAJsjkxmFkXohuc" + }, + { + "brand": "motorola", + "codename": "albus", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "albus", + "manufacturer": "Motorola", + "name": "Moto Z2 Play", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/NyrU1eN-4arc6vCraZZoPosUZ5JRydS5jAVfOp_rtf1VKNiWfiidnNYy7vF52s8qQK-ASS_wWoWq" + }, + { + "brand": "motorola", + "codename": "aljeter_n", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "aljeter_n", + "manufacturer": "Motorola", + "name": "moto g(6) play", + "screenDensity": 320, + "screenX": 1440, + "screenY": 720, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/GocPEWzyBQY5r0jqqkrm22un_j7QBla_hMES4UVavQj0_IobSUZ_6yTvOwf2RACkPiqYWvaOxAc" + }, + { + "brand": "lge", + "codename": "anna", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "anna", + "manufacturer": "LG", + "name": "LGM-X800L", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/mQQxjkC-aSqCZ8ssvbkYE-3nKr6bp04o7Ur6HkCxwwDCjjdFL-OkqGC0Lrl_AG6Gs5IQ074LnBMiVQ" + }, + { + "brand": "samsung", + "codename": "astarqltechn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "astarqltechn", + "manufacturer": "Samsung", + "name": "SM-G8850", + "screenDensity": 420, + "screenX": 1080, + "screenY": 2220, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/LLalttUuZk5ljOI4pg82_dQneGfp2vhjafZz7G9uiF5sZNfdIpIivUCFloIGRVr2qfKFpjOpVHuc" + }, + { + "brand": "samsung", + "codename": "astarqlteskt", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "astarqlteskt", + "manufacturer": "Samsung", + "name": "SM-G885S", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Mvr3ATkk4UU5BBW1OP4oGbKhjpfSxDAauxhD4dKRi0jzrV9ruRhf_X3EFQLF397B4YpJf5oZLeU" + }, + { + "brand": "motorola", + "codename": "athene", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "athene", + "manufacturer": "Motorola", + "name": "Moto G (4)", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "23" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/NeViTy68Ks5jTCgnTJXw-stotdMuAMXy70BxDu65_BUvRQdVXJEfVhAmSjNyCEiWUx3dG2Lb4_WX" + }, + { + "brand": "motorola", + "codename": "athene_f", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "athene_f", + "manufacturer": "Motorola", + "name": "Moto G (4)", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/C4NWNFhPTAMwqLP1ICv1S6bzF8pFp1iykn0cXL3boz1MSAI1JK1bXUp9YGG1BPBXI9QnXoIjOxTDLw" + }, + { + "brand": "razer", + "codename": "aura", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "aura", + "manufacturer": "Razer", + "name": "Phone 2", + "screenDensity": 480, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/na7vrADVOlOHt8n3OGf-H3rNT4yazrFHATcGXEGYsJMY4H9hn6kKWmJN5LF0V7hGbjNqSacUYik" + }, + { + "brand": "motorola", + "codename": "beckham", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "beckham", + "manufacturer": "Motorola", + "name": "Moto Z3 Play", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/uLGitMd4wEUWK-e1E4x49VcwMMv-Uldlsb48ej4KgB3s2BtSqyRXRd_ZVbnQAwZHBumHCoBr0iQf" + }, + { + "brand": "samsung", + "codename": "beyond1", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "beyond1", + "manufacturer": "Samsung", + "name": "SM-G973F", + "screenDensity": 420, + "screenX": 1080, + "screenY": 2280, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/51n90VMMdQTj8C455bkDTw8Y4tZ51cLplz80KsJG4MCqBWX6UCK54QE4z2am_iBKHtU8ypDyjpng" + }, + { + "brand": "google", + "codename": "blueline", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "blueline", + "manufacturer": "Google", + "name": "Pixel 3", + "screenDensity": 440, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/A-RPvqzMpVIUpyVmgwDawhYjSsYIGRquDl1cCKqvO-QAx9UnMR4IFfaY0ge5IQZxwzSguthlzkmgFw" + }, + { + "brand": "samsung", + "codename": "c5proltechn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "c5proltechn", + "manufacturer": "Samsung", + "name": "SM-C5010", + "screenDensity": 420, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/U4RhNZoQhlNxzf3rcxe_NtsBGxxuZvDgrLXEh0pUqxLN2pO4wsHmFY6ny-kcWMtLjftuGIdLttQ" + }, + { + "brand": "xiaomi", + "codename": "cactus", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "cactus", + "manufacturer": "Xiaomi", + "name": "Redmi 6A", + "screenDensity": 320, + "screenX": 720, + "screenY": 1440, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/c07v2Tu4nxWOaaLJKr266xcvZ1Tc7Yacjhv5gcc9weh2lWekmmdm6lviTScreGiJEO1uGMiVais" + }, + { + "brand": "Xiaomi", + "codename": "capricorn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "capricorn", + "manufacturer": "Xiaomi", + "name": "MI 5s", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/sYiPV-aBXyJL-qji6fIZHUFFNznXtS9uGqt0BvXBeKlrpJHTZ1UkAXJOEtCUUFMq6Y6tSFahNqr7" + }, + { + "brand": "razer", + "codename": "cheryl", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "cheryl", + "manufacturer": "Razer", + "name": "Phone", + "screenDensity": 480, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/jUbbqqY5056fWjAlsDB8CfR-1a7vkmTSYh1wuLS3PoBYsmufmEPll17odSwrlvG_YNh5R34agR7O" + }, + { + "brand": "motorola", + "codename": "condor_umts", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "condor_umts", + "manufacturer": "Motorola", + "name": "XT1021", + "screenDensity": 240, + "screenX": 540, + "screenY": 960, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/6-jvxcq85z6YoS6U5GlK7ob6jg9n_1vcITnZEH49-KBw5TIDQ_Zb-gPaDQCgP2dn1maZ19Rdd4kDPA" + }, + { + "brand": "samsung", + "codename": "crownlte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "crownlte", + "manufacturer": "Samsung", + "name": "SM-N960F", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/VnGU9nyOQ7-sR78drGUvBvx-5YZ3uPt4GnOhgivSSoyGgDUeVDE-kNdJsQZyB8k5rW_z5gdOjtG3pA" + }, + { + "brand": "samsung", + "codename": "crownlteks", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "crownlteks", + "manufacturer": "Samsung", + "name": "SM-N960N", + "screenDensity": 420, + "screenX": 1080, + "screenY": 2220, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/FcSl4c18SfGXHx68x6c2UEI2pYmJk2C0EkMSgm4crGQdRjivQIiLFSpsVEWAUSZPgqAHyWIsSduv" + }, + { + "brand": "samsung", + "codename": "crownqltechn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "crownqltechn", + "manufacturer": "Samsung", + "name": "SM-N9600", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2960, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/PXeC47toPODDw2mKeIrUEs0eSMDqzphHEslMb2ChbsOsFFez_8NYjmX5-u4t1zuM-LnJb-IWOyDD" + }, + { + "brand": "samsung", + "codename": "crownqlteue", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "crownqlteue", + "manufacturer": "Samsung", + "name": "SM-N960U1", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/nsHOF3Gfm88-OLi6Q5qZWoE4sw_OVvhoAuE5Fo6aYfAYd031Y8bdsBhTQfdTkLfC5Ou_7l-77oA" + }, + { + "brand": "samsung", + "codename": "cruiserlteatt", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "cruiserlteatt", + "manufacturer": "Samsung", + "name": "SM-G892A", + "screenDensity": 480, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/73bZIZkHnD9kfKfv_DOnIUr5k8m7__enM67o9e8cxa-IQjzq0CwQ0jMxK7XW8lxLcpzZD4I1hDCEhA" + }, + { + "brand": "samsung", + "codename": "cruiserltesq", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "cruiserltesq", + "manufacturer": "Samsung", + "name": "SM-G892U", + "screenDensity": 480, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/S4ZW1XgARJMlKaTQXjvfj8mIZpmPcqa4xDeREFWRnPmgi9FFJ2NaTPiXsXcyjboALfOL2LTDBmE" + }, + { + "brand": "motorola", + "codename": "deen_sprout", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "deen_sprout", + "manufacturer": "Motorola", + "name": "motorola one", + "screenDensity": 320, + "screenX": 720, + "screenY": 1520, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/bLWGaCbeZkCSldi7ItLAJUOj8g-sCNY-dA3mz5Hy5TtXlj40yjaL-jRsz9D6TNGCTqNlAFcbV87z" + }, + { + "brand": "Xiaomi", + "codename": "dipper", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "dipper", + "manufacturer": "Xiaomi", + "name": "MI 8", + "screenDensity": 440, + "screenX": 1080, + "screenY": 2248, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/iVFouYp4325uDIPV5nvwPnNvW1pKvqB4-3hfIohOEOVNaiNOXgOYeo5euUazGstNBVuD5Rkc4X1d-A" + }, + { + "brand": "samsung", + "codename": "dream2lte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "dream2lte", + "manufacturer": "Samsung", + "name": "SM-G955F", + "screenDensity": 420, + "screenX": 1440, + "screenY": 2960, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/fE0fkf8E-AvaOnoBrZsaF2nuWJmK2wsUy7vVs8HW1so9VwQuqP7PimlEt2pfmfm24Vt_BUvRVXbt" + }, + { + "brand": "samsung", + "codename": "dream2lteks", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "dream2lteks", + "manufacturer": "Samsung", + "name": "SM-G955N", + "screenDensity": 420, + "screenX": 1440, + "screenY": 2960, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/tDSXmiMyVrQfpwOcYaUsCfOAlUb7e2b6Yj_b7-QrJ5cyQqGP32So5qsjlEECHWrSwj0Zhut_lBFHdQ" + }, + { + "brand": "samsung", + "codename": "dream2qltesq", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "dream2qltesq", + "manufacturer": "Samsung", + "name": "SM-G955U", + "screenDensity": 420, + "screenX": 1440, + "screenY": 2960, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/J2Z8osWlxO60aP-jSkLIwkyTIKi4Ig5s7gAFWyCFL4R09jpEEra4pppix-jS2yWcM8llUstXqJfW" + }, + { + "brand": "samsung", + "codename": "dream2qlteue", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "dream2qlteue", + "manufacturer": "Samsung", + "name": "SM-G955U1", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/cg5fu0EYPO3mvDtbuPqwDiA_-BHxdLQxNu3AvjRyZGbuVKpQGQ6T5RgLJ-HbkXUjA5keZjqAcdhI" + }, + { + "brand": "samsung", + "codename": "dreamqlteue", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "dreamqlteue", + "manufacturer": "Samsung", + "name": "SM-G950U1", + "screenDensity": 480, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/zWCYsmAeJDpdf858GtKNRskl1M3UipVxLsVDimYNXHSDXWyKxlvN0ntzMbgBr32GCxUqPdHm1bo" + }, + { + "brand": "Xiaomi", + "codename": "equuleus", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "equuleus", + "manufacturer": "Xiaomi", + "name": "MI 8 Pro", + "screenDensity": 440, + "screenX": 1080, + "screenY": 2248, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Q0CVYPJS8eM515-oOVltO-0bVmeW1n8QySrvY_kezdnBpL7AbqIDjT-clLp4G50m7G6ZhqbmQUs3" + }, + { + "brand": "motorola", + "codename": "falcon_umts", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "falcon_umts", + "manufacturer": "Motorola", + "name": "XT1034", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/7-9UrP_LsiZUoVDG_kSAYPtlHU0a9QMEQSRawSxPlNJyEIHIFj57g-GsaLzYmZMTkIySoVyu_nMGYQ" + }, + { + "brand": "google", + "codename": "flame", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "flame", + "manufacturer": "Google", + "name": "Pixel 4", + "screenDensity": 440, + "screenX": 1080, + "screenY": 2280, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "29", + "30" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/PR7t8EexUdGPAMAjvPtWlS6WnhUXS5OVphhlpaOL_3ziFN1ip12RRdKoIMQ1G3QWiIdKI1ahY6I" + }, + { + "brand": "google", + "codename": "flo", + "form": "PHYSICAL", + "formFactor": "TABLET", + "id": "flo", + "manufacturer": "Asus", + "name": "Nexus 7", + "screenDensity": 320, + "screenX": 1920, + "screenY": 1200, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "19", + "21" + ], + "thumbnailUrl": "https://lh3.ggpht.com/DYFkgrJuwYBWu1_ib6GUhKqszsUx__EyGXf2y_5112_GAiwKm8lj5Me0ySRIAhzvnHy5ayVEpHHpWg" + }, + { + "brand": "lge", + "codename": "g3", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "g3", + "manufacturer": "LG", + "name": "LG-D855", + "screenDensity": 640, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/ZFgSJNODltO2YvsnK3bpQtYF96vA0RmBy1ZmjCmNhIonQaj5BQtdDHYtnd8FTi5JZjjoul84Gjk" + }, + { + "brand": "samsung", + "codename": "grandpplte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "grandpplte", + "manufacturer": "Samsung", + "name": "SM-G532M", + "screenDensity": 240, + "screenX": 960, + "screenY": 540, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/IbR6PPYmV5F6ErZyjE4euvSaSVTS0wvTrbkTTQmGK-0nkMs5dM0wtXQV4fDsiCa305NVFpu4x88" + }, + { + "brand": "samsung", + "codename": "greatlte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "greatlte", + "manufacturer": "Samsung", + "name": "SM-N950F", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/AjJd50yCDvzpvV28Xhe9D66b1hBfmkFl5JKSR-ipDVG6cx7-8Hylb5J1cZ2_DQGQLeQUkYYg66Pe" + }, + { + "brand": "samsung", + "codename": "greatlteks", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "greatlteks", + "manufacturer": "Samsung", + "name": "SM-N950N", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/nHJL8Nw9yUSxJj1q9WskGJZtTltl0XqOGhvw1HlA-wSITh6v7LimsPUBehXKUZYgRYgPYI3Fm1cQGQ" + }, + { + "brand": "samsung", + "codename": "greatqlte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "greatqlte", + "manufacturer": "Samsung", + "name": "SM-N950U", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/oPfMSkk4ee8S39qGhsxagwo7pMgtBz6wcnXpzbNqYB_6kM0kSKgUbLMTwYd3cigr5r7NlP3YgpKX" + }, + { + "brand": "samsung", + "codename": "greatqltechn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "greatqltechn", + "manufacturer": "Samsung", + "name": "SM-N9500", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2960, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/t8GF5d3rZPH_i3AYBODmv6eCjVSVoNXeZBNuAKPPQZqNbdGuUcGPtZF21nK99fjKOrkgOHV6euMZPQ" + }, + { + "brand": "motorola", + "codename": "griffin", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "griffin", + "manufacturer": "Motorola", + "name": "XT1650", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "24" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/LiBYTSr3xQ7VHF62fDVPs3JgQ8d_F441YWuuWAbWYkiH7FRy_wyko-DyfsHV2kc8erE1uv4s9t9V" + }, + { + "brand": "Verizon", + "codename": "gts3lltevzw", + "form": "PHYSICAL", + "formFactor": "TABLET", + "id": "gts3lltevzw", + "manufacturer": "Samsung", + "name": "SM-T827V", + "screenDensity": 320, + "screenX": 2048, + "screenY": 1536, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Ei1LFgQvf4Yj3wDCKdnge1mlusicePcwVnsSFqFcTtbJUecMZAEy_cjfLTKNwXDxs1lZJtgto-HVaw" + }, + { + "brand": "Verizon", + "codename": "gts4lltevzw", + "form": "PHYSICAL", + "formFactor": "TABLET", + "id": "gts4lltevzw", + "manufacturer": "Samsung", + "name": "SM-T837V", + "screenDensity": 360, + "screenX": 1600, + "screenY": 2560, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/2TsL3i7Gs_ILH8AJzGGDNQEoBWzog5WxbZmXLVHmS8PonYQ5rGqqmr_m0v79xHMCBQRdJQaCLPE" + }, + { + "brand": "samsung", + "codename": "gts4lvwifi", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "gts4lvwifi", + "manufacturer": "Samsung", + "name": "SM-T720", + "screenDensity": 360, + "screenX": 2560, + "screenY": 1600, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/MAA0l3w2lD9yTdnaNqmjfQ5z98wh-sS_TPqV9OWPHuHPFuAHHa-Wvfaeyb9HAX8xHnxZRRZsCHk" + }, + { + "brand": "lge", + "codename": "h1", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "h1", + "manufacturer": "LG", + "name": "LG-H831", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/KBhqDPLwkv0BLOWqj1-T-3eU0sr58CAmwrlTMOWkWqscQh-OYvUzPNOxqfooUyVtFwNG6fA7dSk" + }, + { + "brand": "google", + "codename": "hammerhead", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hammerhead", + "manufacturer": "LG", + "name": "Nexus 5", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "23" + ], + "thumbnailUrl": "https://lh5.ggpht.com/qxU0oYP3cwwYZMG_xkfwOQE2yVzFIbKaE1xxkBtA9UBncP6XyItLc85-cTLtFA_lZNHmMH7Pxdo" + }, + { + "brand": "motorola", + "codename": "harpia", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "harpia", + "manufacturer": "Motorola", + "name": "Moto G Play", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "23" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/aKod2b8C3siC0gmFd476ckJ3akKySdQgpJgpUMfNcKJWHWhr9B_r8BuQezNk8cmIx_WGeGUC6xrHbg" + }, + { + "brand": "samsung", + "codename": "hero2lte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hero2lte", + "manufacturer": "Samsung", + "name": "SM-G935F", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/FAXLqc3Lymy81Mmb_4Ipw-EMxf0xrtp6c6ucrUxAGiHRMLAobSXjSBEOFgVW6ZQv6YvcmnbRDkYD" + }, + { + "brand": "samsung", + "codename": "hero2qlteatt", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hero2qlteatt", + "manufacturer": "Samsung", + "name": "SAMSUNG-SM-G935A", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/qLLkWFkmoxa9Ps6uzNQpWmk4sXTQdDnjH3hagHcXxrVyoA_QW9_VpRHp5-uh3Oyb1ZLw8bI8heY" + }, + { + "brand": "samsung", + "codename": "hero2qltechn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hero2qltechn", + "manufacturer": "Samsung", + "name": "SM-G9350", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/iRhN_I6roRLR48j6uoANdelfD9qOBdcsdzQPawMeIFvQIVFJJW2sesos12a0hMm90yF2e697sTU" + }, + { + "brand": "samsung", + "codename": "hero2qltespr", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hero2qltespr", + "manufacturer": "Samsung", + "name": "SM-G935P", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/u8CP15P3dZsy4qjDp66NMgZbA90g4IeBPmGoJ37EPMhhrgh5rUN8UN1vdaIWOM9vsQLDBhltcwe22A" + }, + { + "brand": "samsung", + "codename": "hero2qltetmo", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hero2qltetmo", + "manufacturer": "Samsung", + "name": "SM-G935T", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/_HXkMe1lB_FyrMARYGqidApZOqUQLGsYCndjJ88W-jU74w7oNB9mT3FX7jcFr83H4391T2XKhpE" + }, + { + "brand": "samsung", + "codename": "hero2qlteusc", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hero2qlteusc", + "manufacturer": "Samsung", + "name": "SM-G935R4", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/EBenxYAvtWviX4MkAsIugGo9Ow-yasxMcl4uIEqsOsQEvN-Tl7CYpPos3mBgoyPOSX-PxcMLUsQQ" + }, + { + "brand": "Verizon", + "codename": "hero2qltevzw", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hero2qltevzw", + "manufacturer": "Samsung", + "name": "SM-G935V", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/GQIdScnrG32yjuyGP9MTQiC22NHalNB3Q9YWIM4jhwATuxrUk_u6KxPBmfEvxkke7QnCLRBB0UWW" + }, + { + "brand": "samsung", + "codename": "herolte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "herolte", + "manufacturer": "Samsung", + "name": "SM-930F", + "screenDensity": 577, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Bb8I_AgPj7zBw67vLc0RqHtW5zKXYZtvKYyZtQ6IbxRm1avJ3QN7wFp3VfdNsA-SJK6vz7ckQPo" + }, + { + "brand": "samsung", + "codename": "heroqlteaio", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqlteaio", + "manufacturer": "Samsung", + "name": "SAMSUNG-SM-G930AZ", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/1YV68rNeQzvTs5eFTgO8sQ2SHqslXStqHKTWjjsi8tetd6fZ3x-3MMYZe_ZG1boIDE6TI-gr-3Tlbw" + }, + { + "brand": "samsung", + "codename": "heroqlteatt", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqlteatt", + "manufacturer": "Samsung", + "name": "SAMSUNG-SM-G930A", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/HRzyEU-wTZT85rZ8bimdYdeG7u_vHJqKhzroRIAef0wIAQoyHdeClHPw7hMP159g4bIzAepRkWVl3Q" + }, + { + "brand": "samsung", + "codename": "heroqltemtr", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqltemtr", + "manufacturer": "Samsung", + "name": "SM-G930T1", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Dezj2uqK0M4PivAyh2MY2EY7obubJ4DDUmkERZdHUSy7B7ZEDoiBzZay-V9ipparMnN7C1BZmW4e" + }, + { + "brand": "samsung", + "codename": "heroqltespr", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqltespr", + "manufacturer": "Samsung", + "name": "SM-G930P", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/tyqr_6-lqhL7qmDoiB6-Y1yZ-OuF8SWBOcXhk2IFZh3ISqZidw8qIY5FE75QzYj8h0r7Cpaoekjy" + }, + { + "brand": "samsung", + "codename": "heroqltetfnvzw", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqltetfnvzw", + "manufacturer": "Samsung", + "name": "SM-G930VL", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/TkihAZOyE2uz4EAPDi4sHpuNN6gsBike5dt7Vbwdgst0HeGG0nIUMGcM865ry2BcaNR_dq9pHcMrkA" + }, + { + "brand": "samsung", + "codename": "heroqltetmo", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqltetmo", + "manufacturer": "Samsung", + "name": "SM-G930T", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/2eEkIkzVsZynVScCJTB4se_nzAtBNuRlIID2AJodFHFx1eI6Ep_AQkDhk4Nb3txvMoo9NzQbn4MALA" + }, + { + "brand": "samsung", + "codename": "heroqlteue", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqlteue", + "manufacturer": "Samsung", + "name": "SM-G930U", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/-sCzrgvFmLYreO-nnkRK7xxXlR2p0PcqTbMedlqOw5JslVVmzNTsB8UuXqFtCnYIm6wCZ91CkEpccQ" + }, + { + "brand": "samsung", + "codename": "heroqlteusc", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqlteusc", + "manufacturer": "Samsung", + "name": "SM-G930R4", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/1-j9d2MNOc54DM06zlQBWnZNeM91a8YrjiQCxF7IZGnnrOlzAK9POZG6yqUnQTdWzW5M7R3KRGceww" + }, + { + "brand": "Verizon", + "codename": "heroqltevzw", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "heroqltevzw", + "manufacturer": "Samsung", + "name": "SM-G930V", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/0c7YTryaEE_nRoXg6DPWNakaMyyV42dbQCCApH2AW9WOvBQrmyrXpH8-oBibW_MhXN4zVzZyWLRo7g" + }, + { + "brand": "samsung", + "codename": "hlte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hlte", + "manufacturer": "Samsung", + "name": "SM-N9005", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/OM0K0aYT6R0M_YAJXBO_gZuUkZYEYQs22PMtsGZU2Jh-4A9JxEpKLt2fGsvE30NTnpmqmNveLvU" + }, + { + "brand": "htc", + "codename": "htc_m8", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "htc_m8", + "manufacturer": "HTC", + "name": "HTC One_M8", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/pZCat9fLKkc5N1Myi5ZYR-UeEUUsmYZuZVEJql4hhM2V7gAL0e-NbWeZ5KJsLQTvv3kzSR5WEs6tIQ" + }, + { + "brand": "htc", + "codename": "htc_ocedugl", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "htc_ocedugl", + "manufacturer": "HTC", + "name": "HTC_U-1u", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/HzO61Vquk8tjYQN4ig-U3-mXnUBaOj3wcwAXZVKcGTXe-dLGFHRc33NZslJiYfwTrNrG0T43k2yBXA" + }, + { + "brand": "htc", + "codename": "htc_ocmdugl", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "htc_ocmdugl", + "manufacturer": "HTC", + "name": "HTC U11 plus", + "screenDensity": 640, + "screenX": 2880, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/ZiZPQzxOmdoquCCClxTQU_oSZmpN1TNE5LnVJrCB3uGECKvjIoD056U5J0gpbAMig9YqPNRs1kL5" + }, + { + "brand": "htc", + "codename": "htc_ocndugl", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "htc_ocndugl", + "manufacturer": "HTC", + "name": "HTC U11", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/0-2GswzYuMBwMtnCh4q6C9pU68voyKYnjR2DW3b2y_gxHm6xSe7rUNbWsh_mJwmbVFdykFIGCMrt" + }, + { + "brand": "htc", + "codename": "htc_pmeuhl", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "htc_pmeuhl", + "manufacturer": "HTC", + "name": "HTC 10", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/VtAbWkLGTD8e5hEE5CL4KV_Op2Cfdsi05pmfVHPh20IafBH2j4atshpsGhlKa7s5KpBRSa7t1w64" + }, + { + "brand": "Huawei", + "codename": "hwALE-H", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "hwALE-H", + "manufacturer": "Huawei", + "name": "ALE-L23", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "21" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/kHH92lgwYTlHSr2gx4jDsLGOqzUAPwPL-lEbopIkZwcpxPRX3V1zip9u6JQ8vo3ELo5bcfHXieJcHA" + }, + { + "brand": "samsung", + "codename": "j1acevelte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "j1acevelte", + "manufacturer": "Samsung", + "name": "SM-J111M", + "screenDensity": 240, + "screenX": 480, + "screenY": 800, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/703nbVMEKvvwygLNUx7wQLjaX6ggiGy7mc-lw7xPFwjG-U1s-daSlbzpEAWq9z0cONFGTs_xZ2o" + }, + { + "brand": "samsung", + "codename": "j5lte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "j5lte", + "manufacturer": "Samsung", + "name": "SM-J500F", + "screenDensity": 294, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Xb2R2cQuo971e3VuddoV9LV_nr8issaszeLlpku-aNl-aVQ_2K41KGkRN1ztbG1FqrBhq0j2gokx" + }, + { + "brand": "samsung", + "codename": "j7xelte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "j7xelte", + "manufacturer": "Samsung", + "name": "SM-J710MN", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/H4_Qg3dO2LShMJECn6CeKpyJ_gZtS5MpsfhkCYl31ZgZf1zZRJikZ4DOzuJOnz2ZeCZiBx8Yay55" + }, + { + "brand": "motorola", + "codename": "james", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "james", + "manufacturer": "Motorola", + "name": "moto e5 play", + "screenDensity": 320, + "screenX": 1280, + "screenY": 720, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/OJ2Uvo7H0thDQTaKr3eUAO50-5yHagHLINea_BYNwnDvVEs8jA5jIq0dCByAw1nzxL_36YwryC0M" + }, + { + "brand": "motorola", + "codename": "jeter", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "jeter", + "manufacturer": "Motorola", + "name": "moto g(6) play", + "screenDensity": 320, + "screenX": 1440, + "screenY": 720, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/c0nvdIY5MqPbloD9MFdG8MhuapwpKfHn29BKD4dnFFilV7Du1lCyg6vHe03pN6ltHMHvP3VyrtvA" + }, + { + "brand": "lge", + "codename": "joan", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "joan", + "manufacturer": "LG", + "name": "LG-H932", + "screenDensity": 640, + "screenX": 2880, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/_RGBhW19dHQww5npD_uCSgv48m_ziTOC1KAXSK0dDCAwkq4snw-rLUmmUcI7IryOEcleAaHj-fM" + }, + { + "brand": "lge", + "codename": "judypn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "judypn", + "manufacturer": "LG", + "name": "LM-V405", + "screenDensity": 560, + "screenX": 1440, + "screenY": 3120, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/79-OKmsXWRQW-gO3SleYA7IR_BLTOizZJiZyq0mhJM2j9HIsfzFnPD5y1VVOEfEqGTuzTlosCes" + }, + { + "brand": "motorola", + "codename": "lake_n", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "lake_n", + "manufacturer": "Motorola", + "name": "moto g(7) plus", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2270, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/nMp-cy-C-zfDFy0cmwHZkZwT0vh4PF8W5tTlDiP-mk2QXVtT-pUKoXlKevQuUZ7HxA6VTTEqdD9opQ" + }, + { + "brand": "Xiaomi", + "codename": "lithium", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "lithium", + "manufacturer": "Xiaomi", + "name": "MIX", + "screenDensity": 480, + "screenX": 2040, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/krgqQDGkQYlyw1fjtFuwwzzTRd12yROjzeuV8Xf5Tkcc-4gyYybvA15hHKcYgpkXEosLHgLktQ9k" + }, + { + "brand": "samsung", + "codename": "lt02wifi", + "form": "PHYSICAL", + "formFactor": "TABLET", + "id": "lt02wifi", + "manufacturer": "Samsung", + "name": "SM-T210", + "screenDensity": 160, + "screenX": 1024, + "screenY": 600, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "19" + ], + "thumbnailUrl": "https://lh5.ggpht.com/ZSda2eYJgosreODD1rvNNpbCzU74L5FJafqAYUX_K4FevNBoU7eLk9asLIjfdcW9lRq8TaaFATQ" + }, + { + "brand": "lge", + "codename": "lucye", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "lucye", + "manufacturer": "LG", + "name": "VS988", + "screenDensity": 640, + "screenX": 2880, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "24" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/7bUeKesu7wkvY0bF3vD5oqi8xbum-t1IbIXMRGwrFh51H8FTrXiF-1EFVPQpV0H787MFBSzvG1o" + }, + { + "brand": "lge", + "codename": "lv0", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "lv0", + "manufacturer": "LG", + "name": "LG-AS110", + "screenDensity": 240, + "screenX": 480, + "screenY": 854, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "23" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/7g_xh8i3kF7oHMjStyLLfI3cyXScJUO47YUUZHS9nw6EPYjebUKHUtPoynSqk8KE-H4SzxgqZpN9" + }, + { + "brand": "samsung", + "codename": "m0", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "m0", + "manufacturer": "Samsung", + "name": "GT-I9300", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "18" + ], + "thumbnailUrl": "https://lh4.ggpht.com/qq5OXGjxEFNU651nlyADoFrWqHQQLfUI7FOdtRatjLpSB2haNUPGL9InisXUKLwdAgcVYP8yNJH2hA" + }, + { + "brand": "google", + "codename": "mako", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "mako", + "manufacturer": "LG", + "name": "Nexus 4", + "screenDensity": 320, + "screenX": 768, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh5.ggpht.com/HegEsD6Xf5kKec6HhajrcUqNr35Wc2oMIssCgOWbmTAnYVrTM5rE8Wxix2kGA0IdnhHqXVMTdAX_" + }, + { + "brand": "essential", + "codename": "mata", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "mata", + "manufacturer": "Essential Products", + "name": "PH-1", + "screenDensity": 480, + "screenX": 1312, + "screenY": 2560, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "25" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/GnDhaIYlmza7Cjrg0rdZ-GKp640f2Zvg59qJRqCjA1ZU6fcDcf8dnGmE5B6bo5ukQcZSHwOhLTCH" + }, + { + "brand": "lge", + "codename": "mlv1", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "mlv1", + "manufacturer": "LG", + "name": "LG-X230", + "screenDensity": 240, + "screenX": 854, + "screenY": 480, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "23" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/ZeX9il0i0wKDtJjkPsfH7_MGCQcGDXCyyLzr80e2LNcoODDk67Y8KY901Nq2C-tV-F-F3iJeZyrakw" + }, + { + "brand": "Xiaomi", + "codename": "natrium", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "natrium", + "manufacturer": "Xiaomi", + "name": "MI 5s Plus", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/VA5AbKJ8DgKP4kZQxXa7tE9aO1tpp5_A-q_Jbp_Iy3LbY98wconCtfjngO6ZsyvTjt40-UxSV4tE" + }, + { + "brand": "Xiaomi", + "codename": "nitrogen", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "nitrogen", + "manufacturer": "Xiaomi", + "name": "MI MAX 3", + "screenDensity": 440, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/HCpS1LHGD6Og7DFS9BWt6Y5Tkw63_TnpCZwU6eO9engcV4KdbNY71_84gtSsFxJpfAX66Tg2xZKPFw" + }, + { + "brand": "Motorola", + "codename": "osprey_umts", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "osprey_umts", + "manufacturer": "Motorola", + "name": "Moto G (3rd Gen)", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/nz4AqkeT5XJaHOpPbekeM71jOrCDLhnOzB-TJQ2shq5M4RGco-ovOKF_RLYBuKqf3sE-EAuY9JmY" + }, + { + "brand": "lge", + "codename": "p1", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "p1", + "manufacturer": "LG", + "name": "LGUS991", + "screenDensity": 538, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/8d1MOpXYBuUCR8vDgd9kgVABc0q1u_SBz42_JKx75qQNcQ-tVxUAcmD1DPXJSpi5D0jMJ_4qrg0" + }, + { + "brand": "motorola", + "codename": "pettyl", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "pettyl", + "manufacturer": "Motorola", + "name": "moto e5 play", + "screenDensity": 240, + "screenX": 480, + "screenY": 960, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/TuUs3GBwEfKr1u6JNSyQ9yTXeLbJMOz249N7ASi-od_wBoXUmxQ93lHBZV6TsahQU0B8ai5ZPCHG0g" + }, + { + "brand": "lge", + "codename": "phoenix_sprout", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "phoenix_sprout", + "manufacturer": "LG", + "name": "LM-Q910", + "screenDensity": 560, + "screenX": 1440, + "screenY": 3120, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/8zZqpl8B71D9kRPoif7390Fz3pl3repFenyF0tpsDipppHB0LjAe5rcEF3BO88F_wUPJIgHoRMHagw" + }, + { + "brand": "Xiaomi", + "codename": "platina", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "platina", + "manufacturer": "Xiaomi", + "name": "MI 8 Lite", + "screenDensity": 440, + "screenX": 1080, + "screenY": 2280, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/RnqabP8gIhupxyPrN7lpsB41plHce7Rh2o4aN-HbFj2V-3S5vRLwou-aN6xI-Wk-nrkZRBAo5Rni" + }, + { + "brand": "samsung", + "codename": "poseidonlteatt", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "poseidonlteatt", + "manufacturer": "Samsung", + "name": "SAMSUNG-SM-G891A", + "screenDensity": 480, + "screenX": 1920, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/6fSOEPCjEoMQCts71wmPpjHFbj-cZqM6W41VL3CwjYS2VJmkr-tMQQtkWp2rb7POdMlzCv7QR0U" + }, + { + "brand": "motorola", + "codename": "potter", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "potter", + "manufacturer": "Motorola", + "name": "Moto G (5) Plus", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/LYyX2wV8GApJGP7YNC6X8G4WZ2SqrwLpShyluLmt8gz_i_Hx1kJiFkRSQGqyo64tLpevkmDsYZA" + }, + { + "brand": "google", + "codename": "sailfish", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "sailfish", + "manufacturer": "Google", + "name": "Pixel", + "screenDensity": 420, + "screenX": 480, + "screenY": 640, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "25", + "26", + "27", + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/Y695akw6GQifgofN_GNrZQMTgTZgxnsMg6ZoQNX84xor7Zxmk7IU0N0GnE-YYha40lqFLH6Fa7qW" + }, + { + "brand": "huawei", + "codename": "sawfish", + "form": "PHYSICAL", + "formFactor": "WEARABLE", + "id": "sawfish", + "manufacturer": "Huawei", + "name": "LEO-BX9", + "screenDensity": 320, + "screenX": 390, + "screenY": 390, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "beta" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/5w0maSUEotXvasYGQNQo7nOFwytLeq_uuG_lbn4yl63ck7dPsOi8ZbqBuobdMDPuL4MHLPFyFoI" + }, + { + "brand": "Lenovo", + "codename": "seoul", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "seoul", + "manufacturer": "Lenovo", + "name": "Lenovo K520", + "screenDensity": 480, + "screenX": 1080, + "screenY": 2160, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "tags": [ + "deprecated=26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/km_naivFSSI88Yay3v8EU8IVLh1V9KKEtY7bvxE77dme0KrGV1RIZCUJWV-TSTD7lueZaMO5V5PB" + }, + { + "brand": "Samsung", + "codename": "serranolte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "serranolte", + "manufacturer": "Samsung", + "name": "Galaxy S4 mini", + "screenDensity": 240, + "screenX": 540, + "screenY": 960, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh6.ggpht.com/I8WFrPiwv4avMRzN__pProVxRlo8jnLJdnY0mdZDCxBcV5XfuVDFt8KKkBYzzeNThgFEzEJ3hfGfzg" + }, + { + "brand": "google", + "codename": "shamu", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "shamu", + "manufacturer": "Motorola", + "name": "Nexus 6", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.ggpht.com/R-0vH4MsHjXfdv1ONaHqaxIA94CLhXqIvGhww_EMMLfaOHw-FyEaAyAOQXvncq-e_H3Q3frd2hkT" + }, + { + "brand": "samsung", + "codename": "star2lte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "star2lte", + "manufacturer": "Samsung", + "name": "SM-G965F", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/OKGIYocnzykN7wqeOj2zqid3b4_4hyiYGTdCmeaUp6WhlJjgd8Hb47Jz0oLDvPVL4KYYuW3nA5k" + }, + { + "brand": "samsung", + "codename": "star2lteks", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "star2lteks", + "manufacturer": "Samsung", + "name": "SM-G965N", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/5XtaJAtSmZPzUdq8KfD5MZMk6ZKZtzCVsN8fGdoav4KsIj_tQADLzw2NIwYNuEfiFpfe678DC7E" + }, + { + "brand": "samsung", + "codename": "star2qlteue", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "star2qlteue", + "manufacturer": "Samsung", + "name": "SM-G965U1", + "screenDensity": 420, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/2XYxCjKgmSHW0-yf0X-3aMMjWaBqhLzuAk1XSLpkeC0xJ4_yxRpzEptIpetGNvKrG7G5Gh_6irq4" + }, + { + "brand": "samsung", + "codename": "starlte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "starlte", + "manufacturer": "Samsung", + "name": "SM-G960F", + "screenDensity": 480, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/A83BEHrC0i7dyg1H2_ynJDC89dX3zV01HTVlpQBpvCSlI_GFQaKLLLOcNec0hnVmgYMixstcP4gt" + }, + { + "brand": "samsung", + "codename": "starlteks", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "starlteks", + "manufacturer": "Samsung", + "name": "SM-G960N", + "screenDensity": 480, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/mRKMOcTMPj6j8w5rHSGXB29lCfz_-MOqGgLw1VKnrukP6SXa7qY8ytx9JYpkY05WkEoJTyRX0GMLmQ" + }, + { + "brand": "samsung", + "codename": "starqltechn", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "starqltechn", + "manufacturer": "Samsung", + "name": "SM-G9600", + "screenDensity": 480, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/XQGa4K5n35PY7vSotVWeFOxZvzlG4rB2jj5wOEl1uc2nfLzTlt_hDIKSv60VOzyyySE7-Wc6hnQl" + }, + { + "brand": "samsung", + "codename": "starqlteue", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "starqlteue", + "manufacturer": "Samsung", + "name": "SM-G960U1", + "screenDensity": 480, + "screenX": 2220, + "screenY": 1080, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "26" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/xD06N1P46ZHuvYUnWkZBd5Alqr5pkkbreynLQ29yRO4-YFE3yDqix9MFUy-9rC0aLmSOb9UJOeI7" + }, + { + "brand": "samsung", + "codename": "t03g", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "t03g", + "manufacturer": "Samsung", + "name": "GT-N7100", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/8h9siLggnEt-y0gSRhzHRAKr2b29Go_WSyL2jxGA3_m5xuK2BVr3yqdvb41XNKhl08YYH9EhiMfW0A" + }, + { + "brand": "google", + "codename": "taimen", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "taimen", + "manufacturer": "Google", + "name": "Pixel 2 XL", + "screenDensity": 560, + "screenX": 1440, + "screenY": 2880, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/5J7qV0fpEvD-d-cb-8OFaMbR0rDFT5Tcb3X3aIG0C-p0uPKdCYLxiMpssLXzX9FjEBNBkB4yohA" + }, + { + "brand": "xiaomi", + "codename": "tissot_sprout", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "tissot_sprout", + "manufacturer": "Xiaomi", + "name": "Mi A1", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/QLpEabmwa4Q2bVzLvVdn3fwlbgxdvYs5v8VKI0ynoLg1_sYp3tCFkerNyh2wTXT8ignTzSxiX0k" + }, + { + "brand": "motorola", + "codename": "titan_umts", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "titan_umts", + "manufacturer": "Motorola", + "name": "XT1064", + "screenDensity": 320, + "screenX": 720, + "screenY": 1280, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh4.ggpht.com/j1oRoGV2Q82-Q5goXPtJb4RKWEB7YjkSG6T8DnCHiHyQ2dTLOMD7E9HiivcVmZyMFXztnYurOzx9Zg" + }, + { + "brand": "Samsung", + "codename": "trelte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "trelte", + "manufacturer": "Samsung", + "name": "Galaxy Note 4", + "screenDensity": 386, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh6.ggpht.com/8qr_PPL_r54sWO7mVhB61LlWwOubtEKClsdxVUG6aYmKoeUpyJH9SzNhRlOLVm4sWdgW1EFUbqPi" + }, + { + "brand": "xiaomi", + "codename": "tulip", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "tulip", + "manufacturer": "Xiaomi", + "name": "Redmi Note 6 Pro", + "screenDensity": 440, + "screenX": 1080, + "screenY": 2280, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "28" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/bwbTMSqiH-CoI8cAX7i7oJPjF4yqybMj7kMbGhO0pPv7PCjI-d-P1xfXKdQn_daqmwm2uacm0oQ" + }, + { + "brand": "motorola", + "codename": "victara", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "victara", + "manufacturer": "Motorola", + "name": "XT1092", + "screenDensity": 480, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "19" + ], + "tags": [ + "deprecated=19" + ], + "thumbnailUrl": "https://lh3.ggpht.com/n_CStC2vSdJ2DDzLP3NUnSQbnY8pvWJduA9G1MrtJOMDiH8Lxybb7ijgHB5_IaTSaVYRot4TJBWq" + }, + { + "brand": "google", + "codename": "walleye", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "walleye", + "manufacturer": "Google", + "name": "Pixel 2", + "screenDensity": 420, + "screenX": 1080, + "screenY": 1920, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "27", + "28" + ], + "tags": [ + "default" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/j4urvb3lXTaFGZI6IzHmAjum2HQVID1OHPhDB7dOzRvXb2WscSX2RFwEEFFSYhajqRO5Yu0e6FYQ" + }, + { + "brand": "samsung", + "codename": "x1q", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "x1q", + "manufacturer": "Samsung", + "name": "SM-G981U1", + "screenDensity": 640, + "screenX": 1440, + "screenY": 3200, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "29" + ], + "thumbnailUrl": "https://lh3.googleusercontent.com/FLdP9p2yRcQ1aeg9fa1BWN4Q5EGDh6rT7XX2Qk_p4m3jjPwRwT5IoybWEq1j2yDKpXVKKw6SndY" + }, + { + "brand": "samsung", + "codename": "zeroflte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "zeroflte", + "manufacturer": "Samsung", + "name": "SM-G920F", + "screenDensity": 640, + "screenX": 2560, + "screenY": 1440, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "supportedVersionIds": [ + "23" + ], + "thumbnailUrl": "https://lh5.ggpht.com/_lP3rtazy3LYQDdsliGG7d0F3zyEQKPFwvYrKShUJXVRoEWGwkyQnCRP3SCezNpu1akuGKM7n9s" + }, + { + "brand": "samsung", + "codename": "zerolte", + "form": "PHYSICAL", + "formFactor": "PHONE", + "id": "zerolte", + "manufacturer": "Samsung", + "name": "SM-G925F", + "screenDensity": 640, + "screenX": 1440, + "screenY": 2560, + "supportedAbis": [ + "arm64-v8a", + "armeabi", + "armeabi-v7a" + ], + "thumbnailUrl": "https://lh3.ggpht.com/YQkwIrvXX8fZlTajcJzdrvRoCBrjEG7xPCRzA5c1LaNmpV4deSFoj-w8ulLVL06OY1IqVFQA_Q4y8A" + } + ], + "runtimeConfiguration": { + "locales": [ + { + "id": "af", + "name": "Afrikaans" + }, + { + "id": "af_NA", + "name": "Afrikaans", + "region": "Namibia" + }, + { + "id": "af_ZA", + "name": "Afrikaans", + "region": "South Africa" + }, + { + "id": "agq", + "name": "Aghem" + }, + { + "id": "agq_CM", + "name": "Aghem", + "region": "Cameroon" + }, + { + "id": "ak", + "name": "Akan" + }, + { + "id": "ak_GH", + "name": "Akan", + "region": "Ghana" + }, + { + "id": "am", + "name": "Amharic" + }, + { + "id": "am_ET", + "name": "Amharic", + "region": "Ethiopia" + }, + { + "id": "ar", + "name": "Arabic" + }, + { + "id": "ar_001", + "name": "Arabic", + "region": "World" + }, + { + "id": "ar_AE", + "name": "Arabic", + "region": "United Arab Emirates" + }, + { + "id": "ar_BH", + "name": "Arabic", + "region": "Bahrain" + }, + { + "id": "ar_DJ", + "name": "Arabic", + "region": "Djibouti" + }, + { + "id": "ar_DZ", + "name": "Arabic", + "region": "Algeria" + }, + { + "id": "ar_EG", + "name": "Arabic", + "region": "Egypt" + }, + { + "id": "ar_EH", + "name": "Arabic", + "region": "Western Sahara" + }, + { + "id": "ar_ER", + "name": "Arabic", + "region": "Eritrea" + }, + { + "id": "ar_IL", + "name": "Arabic", + "region": "Israel" + }, + { + "id": "ar_IQ", + "name": "Arabic", + "region": "Iraq" + }, + { + "id": "ar_JO", + "name": "Arabic", + "region": "Jordan" + }, + { + "id": "ar_KM", + "name": "Arabic", + "region": "Comoros" + }, + { + "id": "ar_KW", + "name": "Arabic", + "region": "Kuwait" + }, + { + "id": "ar_LB", + "name": "Arabic", + "region": "Lebanon" + }, + { + "id": "ar_LY", + "name": "Arabic", + "region": "Libya" + }, + { + "id": "ar_MA", + "name": "Arabic", + "region": "Morocco" + }, + { + "id": "ar_MR", + "name": "Arabic", + "region": "Mauritania" + }, + { + "id": "ar_OM", + "name": "Arabic", + "region": "Oman" + }, + { + "id": "ar_PS", + "name": "Arabic", + "region": "Palestine" + }, + { + "id": "ar_QA", + "name": "Arabic", + "region": "Qatar" + }, + { + "id": "ar_SA", + "name": "Arabic", + "region": "Saudi Arabia" + }, + { + "id": "ar_SD", + "name": "Arabic", + "region": "Sudan" + }, + { + "id": "ar_SO", + "name": "Arabic", + "region": "Somalia" + }, + { + "id": "ar_SS", + "name": "Arabic", + "region": "South Sudan" + }, + { + "id": "ar_SY", + "name": "Arabic", + "region": "Syria" + }, + { + "id": "ar_TD", + "name": "Arabic", + "region": "Chad" + }, + { + "id": "ar_TN", + "name": "Arabic", + "region": "Tunisia" + }, + { + "id": "ar_YE", + "name": "Arabic", + "region": "Yemen" + }, + { + "id": "as", + "name": "Assamese" + }, + { + "id": "as_IN", + "name": "Assamese", + "region": "India" + }, + { + "id": "asa", + "name": "Asu" + }, + { + "id": "asa_TZ", + "name": "Asu", + "region": "Tanzania" + }, + { + "id": "az", + "name": "Azerbaijani" + }, + { + "id": "az_AZ", + "name": "Azerbaijani", + "region": "Azerbaijan" + }, + { + "id": "bas", + "name": "Basaa" + }, + { + "id": "bas_CM", + "name": "Basaa", + "region": "Cameroon" + }, + { + "id": "be", + "name": "Belarusian" + }, + { + "id": "be_BY", + "name": "Belarusian", + "region": "Belarus" + }, + { + "id": "bem", + "name": "Bemba" + }, + { + "id": "bem_ZM", + "name": "Bemba", + "region": "Zambia" + }, + { + "id": "bez", + "name": "Bena" + }, + { + "id": "bez_TZ", + "name": "Bena", + "region": "Tanzania" + }, + { + "id": "bg", + "name": "Bulgarian" + }, + { + "id": "bg_BG", + "name": "Bulgarian", + "region": "Bulgaria" + }, + { + "id": "bm", + "name": "Bambara" + }, + { + "id": "bm_ML", + "name": "Bambara", + "region": "Mali" + }, + { + "id": "bn", + "name": "Bengali" + }, + { + "id": "bn_BD", + "name": "Bengali", + "region": "Bangladesh" + }, + { + "id": "bn_IN", + "name": "Bengali", + "region": "India" + }, + { + "id": "bo", + "name": "Tibetan" + }, + { + "id": "bo_CN", + "name": "Tibetan", + "region": "China" + }, + { + "id": "bo_IN", + "name": "Tibetan", + "region": "India" + }, + { + "id": "br", + "name": "Breton" + }, + { + "id": "br_FR", + "name": "Breton", + "region": "France" + }, + { + "id": "brx", + "name": "Bodo" + }, + { + "id": "brx_IN", + "name": "Bodo", + "region": "India" + }, + { + "id": "bs", + "name": "Bosnian" + }, + { + "id": "bs_BA", + "name": "Bosnian", + "region": "Bosnia and Herzegovina" + }, + { + "id": "ca", + "name": "Catalan" + }, + { + "id": "ca_AD", + "name": "Catalan", + "region": "Andorra" + }, + { + "id": "ca_ES", + "name": "Catalan", + "region": "Spain" + }, + { + "id": "ca_FR", + "name": "Catalan", + "region": "France" + }, + { + "id": "ca_IT", + "name": "Catalan", + "region": "Italy" + }, + { + "id": "cgg", + "name": "Chiga" + }, + { + "id": "cgg_UG", + "name": "Chiga", + "region": "Uganda" + }, + { + "id": "chr", + "name": "Cherokee" + }, + { + "id": "chr_US", + "name": "Cherokee", + "region": "United States" + }, + { + "id": "cs", + "name": "Czech" + }, + { + "id": "cs_CZ", + "name": "Czech", + "region": "Czech Republic" + }, + { + "id": "cy", + "name": "Welsh" + }, + { + "id": "cy_GB", + "name": "Welsh", + "region": "United Kingdom" + }, + { + "id": "da", + "name": "Danish" + }, + { + "id": "da_DK", + "name": "Danish", + "region": "Denmark" + }, + { + "id": "da_GL", + "name": "Danish", + "region": "Greenland" + }, + { + "id": "dav", + "name": "Taita" + }, + { + "id": "dav_KE", + "name": "Taita", + "region": "Kenya" + }, + { + "id": "de", + "name": "German" + }, + { + "id": "de_AT", + "name": "German", + "region": "Austria" + }, + { + "id": "de_BE", + "name": "German", + "region": "Belgium" + }, + { + "id": "de_CH", + "name": "German", + "region": "Switzerland" + }, + { + "id": "de_DE", + "name": "German", + "region": "Germany" + }, + { + "id": "de_LI", + "name": "German", + "region": "Liechtenstein" + }, + { + "id": "de_LU", + "name": "German", + "region": "Luxembourg" + }, + { + "id": "dje", + "name": "Zarma" + }, + { + "id": "dje_NE", + "name": "Zarma", + "region": "Niger" + }, + { + "id": "dua", + "name": "Duala" + }, + { + "id": "dua_CM", + "name": "Duala", + "region": "Cameroon" + }, + { + "id": "dyo", + "name": "Jola-Fonyi" + }, + { + "id": "dyo_SN", + "name": "Jola-Fonyi", + "region": "Senegal" + }, + { + "id": "dz", + "name": "Dzongkha" + }, + { + "id": "dz_BT", + "name": "Dzongkha", + "region": "Bhutan" + }, + { + "id": "ebu", + "name": "Embu" + }, + { + "id": "ebu_KE", + "name": "Embu", + "region": "Kenya" + }, + { + "id": "ee", + "name": "Ewe" + }, + { + "id": "ee_GH", + "name": "Ewe", + "region": "Ghana" + }, + { + "id": "ee_TG", + "name": "Ewe", + "region": "Togo" + }, + { + "id": "el", + "name": "Greek" + }, + { + "id": "el_CY", + "name": "Greek", + "region": "Cyprus" + }, + { + "id": "el_GR", + "name": "Greek", + "region": "Greece" + }, + { + "id": "en", + "name": "English", + "tags": [ + "default" + ] + }, + { + "id": "en_001", + "name": "English", + "region": "World" + }, + { + "id": "en_150", + "name": "English", + "region": "Europe" + }, + { + "id": "en_AG", + "name": "English", + "region": "Antigua and Barbuda" + }, + { + "id": "en_AI", + "name": "English", + "region": "Anguilla" + }, + { + "id": "en_AS", + "name": "English", + "region": "American Samoa" + }, + { + "id": "en_AU", + "name": "English", + "region": "Australia" + }, + { + "id": "en_BB", + "name": "English", + "region": "Barbados" + }, + { + "id": "en_BE", + "name": "English", + "region": "Belgium" + }, + { + "id": "en_BM", + "name": "English", + "region": "Bermuda" + }, + { + "id": "en_BS", + "name": "English", + "region": "Bahamas" + }, + { + "id": "en_BW", + "name": "English", + "region": "Botswana" + }, + { + "id": "en_BZ", + "name": "English", + "region": "Belize" + }, + { + "id": "en_CA", + "name": "English", + "region": "Canada" + }, + { + "id": "en_CC", + "name": "English", + "region": "Cocos (Keeling) Islands" + }, + { + "id": "en_CK", + "name": "English", + "region": "Cook Islands" + }, + { + "id": "en_CM", + "name": "English", + "region": "Cameroon" + }, + { + "id": "en_CX", + "name": "English", + "region": "Christmas Island" + }, + { + "id": "en_DG", + "name": "English", + "region": "Diego Garcia" + }, + { + "id": "en_DM", + "name": "English", + "region": "Dominica" + }, + { + "id": "en_ER", + "name": "English", + "region": "Eritrea" + }, + { + "id": "en_FJ", + "name": "English", + "region": "Fiji" + }, + { + "id": "en_FK", + "name": "English", + "region": "Falkland Islands (Islas Malvinas)" + }, + { + "id": "en_FM", + "name": "English", + "region": "Micronesia" + }, + { + "id": "en_GB", + "name": "English", + "region": "United Kingdom" + }, + { + "id": "en_GD", + "name": "English", + "region": "Grenada" + }, + { + "id": "en_GG", + "name": "English", + "region": "Guernsey" + }, + { + "id": "en_GH", + "name": "English", + "region": "Ghana" + }, + { + "id": "en_GI", + "name": "English", + "region": "Gibraltar" + }, + { + "id": "en_GM", + "name": "English", + "region": "Gambia" + }, + { + "id": "en_GU", + "name": "English", + "region": "Guam" + }, + { + "id": "en_GY", + "name": "English", + "region": "Guyana" + }, + { + "id": "en_HK", + "name": "English", + "region": "Hong Kong" + }, + { + "id": "en_IE", + "name": "English", + "region": "Ireland" + }, + { + "id": "en_IM", + "name": "English", + "region": "Isle of Man" + }, + { + "id": "en_IN", + "name": "English", + "region": "India" + }, + { + "id": "en_IO", + "name": "English", + "region": "British Indian Ocean Territory" + }, + { + "id": "en_JE", + "name": "English", + "region": "Jersey" + }, + { + "id": "en_JM", + "name": "English", + "region": "Jamaica" + }, + { + "id": "en_KE", + "name": "English", + "region": "Kenya" + }, + { + "id": "en_KI", + "name": "English", + "region": "Kiribati" + }, + { + "id": "en_KN", + "name": "English", + "region": "Saint Kitts and Nevis" + }, + { + "id": "en_KY", + "name": "English", + "region": "Cayman Islands" + }, + { + "id": "en_LC", + "name": "English", + "region": "Saint Lucia" + }, + { + "id": "en_LR", + "name": "English", + "region": "Liberia" + }, + { + "id": "en_LS", + "name": "English", + "region": "Lesotho" + }, + { + "id": "en_MG", + "name": "English", + "region": "Madagascar" + }, + { + "id": "en_MH", + "name": "English", + "region": "Marshall Islands" + }, + { + "id": "en_MO", + "name": "English", + "region": "Macau" + }, + { + "id": "en_MP", + "name": "English", + "region": "Northern Mariana Islands" + }, + { + "id": "en_MS", + "name": "English", + "region": "Montserrat" + }, + { + "id": "en_MT", + "name": "English", + "region": "Malta" + }, + { + "id": "en_MU", + "name": "English", + "region": "Mauritius" + }, + { + "id": "en_MW", + "name": "English", + "region": "Malawi" + }, + { + "id": "en_NA", + "name": "English", + "region": "Namibia" + }, + { + "id": "en_NF", + "name": "English", + "region": "Norfolk Island" + }, + { + "id": "en_NG", + "name": "English", + "region": "Nigeria" + }, + { + "id": "en_NR", + "name": "English", + "region": "Nauru" + }, + { + "id": "en_NU", + "name": "English", + "region": "Niue" + }, + { + "id": "en_NZ", + "name": "English", + "region": "New Zealand" + }, + { + "id": "en_PG", + "name": "English", + "region": "Papua New Guinea" + }, + { + "id": "en_PH", + "name": "English", + "region": "Philippines" + }, + { + "id": "en_PK", + "name": "English", + "region": "Pakistan" + }, + { + "id": "en_PN", + "name": "English", + "region": "Pitcairn Islands" + }, + { + "id": "en_PR", + "name": "English", + "region": "Puerto Rico" + }, + { + "id": "en_PW", + "name": "English", + "region": "Palau" + }, + { + "id": "en_RW", + "name": "English", + "region": "Rwanda" + }, + { + "id": "en_SB", + "name": "English", + "region": "Solomon Islands" + }, + { + "id": "en_SC", + "name": "English", + "region": "Seychelles" + }, + { + "id": "en_SD", + "name": "English", + "region": "Sudan" + }, + { + "id": "en_SG", + "name": "English", + "region": "Singapore" + }, + { + "id": "en_SH", + "name": "English", + "region": "Saint Helena" + }, + { + "id": "en_SL", + "name": "English", + "region": "Sierra Leone" + }, + { + "id": "en_SS", + "name": "English", + "region": "South Sudan" + }, + { + "id": "en_SX", + "name": "English", + "region": "Sint Maarten" + }, + { + "id": "en_SZ", + "name": "English", + "region": "Swaziland" + }, + { + "id": "en_TC", + "name": "English", + "region": "Turks and Caicos Islands" + }, + { + "id": "en_TK", + "name": "English", + "region": "Tokelau" + }, + { + "id": "en_TO", + "name": "English", + "region": "Tonga" + }, + { + "id": "en_TT", + "name": "English", + "region": "Trinidad and Tobago" + }, + { + "id": "en_TV", + "name": "English", + "region": "Tuvalu" + }, + { + "id": "en_TZ", + "name": "English", + "region": "Tanzania" + }, + { + "id": "en_UG", + "name": "English", + "region": "Uganda" + }, + { + "id": "en_UM", + "name": "English", + "region": "U.S. Outlying Islands" + }, + { + "id": "en_US", + "name": "English", + "region": "United States" + }, + { + "id": "en_VC", + "name": "English", + "region": "St. Vincent & Grenadines" + }, + { + "id": "en_VG", + "name": "English", + "region": "British Virgin Islands" + }, + { + "id": "en_VI", + "name": "English", + "region": "U.S. Virgin Islands" + }, + { + "id": "en_VU", + "name": "English", + "region": "Vanuatu" + }, + { + "id": "en_WS", + "name": "English", + "region": "Samoa" + }, + { + "id": "en_ZA", + "name": "English", + "region": "South Africa" + }, + { + "id": "en_ZM", + "name": "English", + "region": "Zambia" + }, + { + "id": "en_ZW", + "name": "English", + "region": "Zimbabwe" + }, + { + "id": "eo", + "name": "Esperanto" + }, + { + "id": "es", + "name": "Spanish" + }, + { + "id": "es_419", + "name": "Spanish", + "region": "Latin America" + }, + { + "id": "es_AR", + "name": "Spanish", + "region": "Argentina" + }, + { + "id": "es_BO", + "name": "Spanish", + "region": "Bolivia" + }, + { + "id": "es_CL", + "name": "Spanish", + "region": "Chile" + }, + { + "id": "es_CO", + "name": "Spanish", + "region": "Colombia" + }, + { + "id": "es_CR", + "name": "Spanish", + "region": "Costa Rica" + }, + { + "id": "es_CU", + "name": "Spanish", + "region": "Cuba" + }, + { + "id": "es_DO", + "name": "Spanish", + "region": "Dominican Republic" + }, + { + "id": "es_EA", + "name": "Spanish", + "region": "Ceuta and Melilla" + }, + { + "id": "es_EC", + "name": "Spanish", + "region": "Ecuador" + }, + { + "id": "es_ES", + "name": "Spanish", + "region": "Spain" + }, + { + "id": "es_GQ", + "name": "Spanish", + "region": "Equatorial Guinea" + }, + { + "id": "es_GT", + "name": "Spanish", + "region": "Guatemala" + }, + { + "id": "es_HN", + "name": "Spanish", + "region": "Honduras" + }, + { + "id": "es_IC", + "name": "Spanish", + "region": "Canary Islands" + }, + { + "id": "es_MX", + "name": "Spanish", + "region": "Mexico" + }, + { + "id": "es_NI", + "name": "Spanish", + "region": "Nicaragua" + }, + { + "id": "es_PA", + "name": "Spanish", + "region": "Panama" + }, + { + "id": "es_PE", + "name": "Spanish", + "region": "Peru" + }, + { + "id": "es_PH", + "name": "Spanish", + "region": "Philippines" + }, + { + "id": "es_PR", + "name": "Spanish", + "region": "Puerto Rico" + }, + { + "id": "es_PY", + "name": "Spanish", + "region": "Paraguay" + }, + { + "id": "es_SV", + "name": "Spanish", + "region": "El Salvador" + }, + { + "id": "es_US", + "name": "Spanish", + "region": "United States" + }, + { + "id": "es_UY", + "name": "Spanish", + "region": "Uruguay" + }, + { + "id": "es_VE", + "name": "Spanish", + "region": "Venezuela" + }, + { + "id": "et", + "name": "Estonian" + }, + { + "id": "et_EE", + "name": "Estonian", + "region": "Estonia" + }, + { + "id": "eu", + "name": "Basque" + }, + { + "id": "eu_ES", + "name": "Basque", + "region": "Spain" + }, + { + "id": "ewo", + "name": "Ewondo" + }, + { + "id": "ewo_CM", + "name": "Ewondo", + "region": "Cameroon" + }, + { + "id": "fa", + "name": "Persian" + }, + { + "id": "fa_AF", + "name": "Persian", + "region": "Afghanistan" + }, + { + "id": "fa_IR", + "name": "Persian", + "region": "Iran" + }, + { + "id": "ff", + "name": "Fulah" + }, + { + "id": "ff_SN", + "name": "Fulah", + "region": "Senegal" + }, + { + "id": "fi", + "name": "Finnish" + }, + { + "id": "fi_FI", + "name": "Finnish", + "region": "Finland" + }, + { + "id": "fil", + "name": "Filipino" + }, + { + "id": "fil_PH", + "name": "Filipino", + "region": "Philippines" + }, + { + "id": "fo", + "name": "Faroese" + }, + { + "id": "fo_FO", + "name": "Faroese", + "region": "Faroe Islands" + }, + { + "id": "fr", + "name": "French" + }, + { + "id": "fr_BE", + "name": "French", + "region": "Belgium" + }, + { + "id": "fr_BF", + "name": "French", + "region": "Burkina Faso" + }, + { + "id": "fr_BI", + "name": "French", + "region": "Burundi" + }, + { + "id": "fr_BJ", + "name": "French", + "region": "Benin" + }, + { + "id": "fr_BL", + "name": "French", + "region": "Saint Barthélemy" + }, + { + "id": "fr_CA", + "name": "French", + "region": "Canada" + }, + { + "id": "fr_CD", + "name": "French", + "region": "Congo (DRC)" + }, + { + "id": "fr_CF", + "name": "French", + "region": "Central African Republic" + }, + { + "id": "fr_CG", + "name": "French", + "region": "Congo (Republic)" + }, + { + "id": "fr_CH", + "name": "French", + "region": "Switzerland" + }, + { + "id": "fr_CI", + "name": "French", + "region": "Côte d’Ivoire" + }, + { + "id": "fr_CM", + "name": "French", + "region": "Cameroon" + }, + { + "id": "fr_DJ", + "name": "French", + "region": "Djibouti" + }, + { + "id": "fr_DZ", + "name": "French", + "region": "Algeria" + }, + { + "id": "fr_FR", + "name": "French", + "region": "France" + }, + { + "id": "fr_GA", + "name": "French", + "region": "Gabon" + }, + { + "id": "fr_GF", + "name": "French", + "region": "French Guiana" + }, + { + "id": "fr_GN", + "name": "French", + "region": "Guinea" + }, + { + "id": "fr_GP", + "name": "French", + "region": "Guadeloupe" + }, + { + "id": "fr_GQ", + "name": "French", + "region": "Equatorial Guinea" + }, + { + "id": "fr_HT", + "name": "French", + "region": "Haiti" + }, + { + "id": "fr_KM", + "name": "French", + "region": "Comoros" + }, + { + "id": "fr_LU", + "name": "French", + "region": "Luxembourg" + }, + { + "id": "fr_MA", + "name": "French", + "region": "Morocco" + }, + { + "id": "fr_MC", + "name": "French", + "region": "Monaco" + }, + { + "id": "fr_MF", + "name": "French", + "region": "Saint Martin" + }, + { + "id": "fr_MG", + "name": "French", + "region": "Madagascar" + }, + { + "id": "fr_ML", + "name": "French", + "region": "Mali" + }, + { + "id": "fr_MQ", + "name": "French", + "region": "Martinique" + }, + { + "id": "fr_MR", + "name": "French", + "region": "Mauritania" + }, + { + "id": "fr_MU", + "name": "French", + "region": "Mauritius" + }, + { + "id": "fr_NC", + "name": "French", + "region": "New Caledonia" + }, + { + "id": "fr_NE", + "name": "French", + "region": "Niger" + }, + { + "id": "fr_PF", + "name": "French", + "region": "French Polynesia" + }, + { + "id": "fr_PM", + "name": "French", + "region": "Saint Pierre and Miquelon" + }, + { + "id": "fr_RE", + "name": "French", + "region": "Réunion" + }, + { + "id": "fr_RW", + "name": "French", + "region": "Rwanda" + }, + { + "id": "fr_SC", + "name": "French", + "region": "Seychelles" + }, + { + "id": "fr_SN", + "name": "French", + "region": "Senegal" + }, + { + "id": "fr_SY", + "name": "French", + "region": "Syria" + }, + { + "id": "fr_TD", + "name": "French", + "region": "Chad" + }, + { + "id": "fr_TG", + "name": "French", + "region": "Togo" + }, + { + "id": "fr_TN", + "name": "French", + "region": "Tunisia" + }, + { + "id": "fr_VU", + "name": "French", + "region": "Vanuatu" + }, + { + "id": "fr_WF", + "name": "French", + "region": "Wallis and Futuna" + }, + { + "id": "fr_YT", + "name": "French", + "region": "Mayotte" + }, + { + "id": "ga", + "name": "Irish" + }, + { + "id": "ga_IE", + "name": "Irish", + "region": "Ireland" + }, + { + "id": "gl", + "name": "Galician" + }, + { + "id": "gl_ES", + "name": "Galician", + "region": "Spain" + }, + { + "id": "gsw", + "name": "Swiss German" + }, + { + "id": "gsw_CH", + "name": "Swiss German", + "region": "Switzerland" + }, + { + "id": "gsw_LI", + "name": "Swiss German", + "region": "Liechtenstein" + }, + { + "id": "gu", + "name": "Gujarati" + }, + { + "id": "gu_IN", + "name": "Gujarati", + "region": "India" + }, + { + "id": "guz", + "name": "Gusii" + }, + { + "id": "guz_KE", + "name": "Gusii", + "region": "Kenya" + }, + { + "id": "gv", + "name": "Manx" + }, + { + "id": "gv_IM", + "name": "Manx", + "region": "Isle of Man" + }, + { + "id": "ha", + "name": "Hausa" + }, + { + "id": "ha_GH", + "name": "Hausa", + "region": "Ghana" + }, + { + "id": "ha_NE", + "name": "Hausa", + "region": "Niger" + }, + { + "id": "ha_NG", + "name": "Hausa", + "region": "Nigeria" + }, + { + "id": "haw", + "name": "Hawaiian" + }, + { + "id": "haw_US", + "name": "Hawaiian", + "region": "United States" + }, + { + "id": "iw", + "name": "Hebrew" + }, + { + "id": "iw_IL", + "name": "Hebrew", + "region": "Israel" + }, + { + "id": "hi", + "name": "Hindi" + }, + { + "id": "hi_IN", + "name": "Hindi", + "region": "India" + }, + { + "id": "hr", + "name": "Croatian" + }, + { + "id": "hr_BA", + "name": "Croatian", + "region": "Bosnia and Herzegovina" + }, + { + "id": "hr_HR", + "name": "Croatian", + "region": "Croatia" + }, + { + "id": "hu", + "name": "Hungarian" + }, + { + "id": "hu_HU", + "name": "Hungarian", + "region": "Hungary" + }, + { + "id": "hy", + "name": "Armenian" + }, + { + "id": "hy_AM", + "name": "Armenian", + "region": "Armenia" + }, + { + "id": "in", + "name": "Indonesian" + }, + { + "id": "in_ID", + "name": "Indonesian", + "region": "Indonesia" + }, + { + "id": "ig", + "name": "Igbo" + }, + { + "id": "ig_NG", + "name": "Igbo", + "region": "Nigeria" + }, + { + "id": "ii", + "name": "Sichuan Yi" + }, + { + "id": "ii_CN", + "name": "Sichuan Yi", + "region": "China" + }, + { + "id": "is", + "name": "Icelandic" + }, + { + "id": "is_IS", + "name": "Icelandic", + "region": "Iceland" + }, + { + "id": "it", + "name": "Italian" + }, + { + "id": "it_CH", + "name": "Italian", + "region": "Switzerland" + }, + { + "id": "it_IT", + "name": "Italian", + "region": "Italy" + }, + { + "id": "it_SM", + "name": "Italian", + "region": "San Marino" + }, + { + "id": "ja", + "name": "Japanese" + }, + { + "id": "ja_JP", + "name": "Japanese", + "region": "Japan" + }, + { + "id": "jgo", + "name": "Ngomba" + }, + { + "id": "jgo_CM", + "name": "Ngomba", + "region": "Cameroon" + }, + { + "id": "jmc", + "name": "Machame" + }, + { + "id": "jmc_TZ", + "name": "Machame", + "region": "Tanzania" + }, + { + "id": "ka", + "name": "Georgian" + }, + { + "id": "ka_GE", + "name": "Georgian", + "region": "Georgia" + }, + { + "id": "kab", + "name": "Kabyle" + }, + { + "id": "kab_DZ", + "name": "Kabyle", + "region": "Algeria" + }, + { + "id": "kam", + "name": "Kamba" + }, + { + "id": "kam_KE", + "name": "Kamba", + "region": "Kenya" + }, + { + "id": "kde", + "name": "Makonde" + }, + { + "id": "kde_TZ", + "name": "Makonde", + "region": "Tanzania" + }, + { + "id": "kea", + "name": "Kabuverdianu" + }, + { + "id": "kea_CV", + "name": "Kabuverdianu", + "region": "Cape Verde" + }, + { + "id": "khq", + "name": "Koyra Chiini" + }, + { + "id": "khq_ML", + "name": "Koyra Chiini", + "region": "Mali" + }, + { + "id": "ki", + "name": "Kikuyu" + }, + { + "id": "ki_KE", + "name": "Kikuyu", + "region": "Kenya" + }, + { + "id": "kk", + "name": "Kazakh" + }, + { + "id": "kk_KZ", + "name": "Kazakh", + "region": "Kazakhstan" + }, + { + "id": "kkj", + "name": "Kako" + }, + { + "id": "kkj_CM", + "name": "Kako", + "region": "Cameroon" + }, + { + "id": "kl", + "name": "Kalaallisut" + }, + { + "id": "kl_GL", + "name": "Kalaallisut", + "region": "Greenland" + }, + { + "id": "kln", + "name": "Kalenjin" + }, + { + "id": "kln_KE", + "name": "Kalenjin", + "region": "Kenya" + }, + { + "id": "km", + "name": "Khmer" + }, + { + "id": "km_KH", + "name": "Khmer", + "region": "Cambodia" + }, + { + "id": "kn", + "name": "Kannada" + }, + { + "id": "kn_IN", + "name": "Kannada", + "region": "India" + }, + { + "id": "ko", + "name": "Korean" + }, + { + "id": "ko_KP", + "name": "Korean", + "region": "North Korea" + }, + { + "id": "ko_KR", + "name": "Korean", + "region": "South Korea" + }, + { + "id": "kok", + "name": "Konkani" + }, + { + "id": "kok_IN", + "name": "Konkani", + "region": "India" + }, + { + "id": "ks", + "name": "Kashmiri" + }, + { + "id": "ks_IN", + "name": "Kashmiri", + "region": "India" + }, + { + "id": "ksb", + "name": "Shambala" + }, + { + "id": "ksb_TZ", + "name": "Shambala", + "region": "Tanzania" + }, + { + "id": "ksf", + "name": "Bafia" + }, + { + "id": "ksf_CM", + "name": "Bafia", + "region": "Cameroon" + }, + { + "id": "kw", + "name": "Cornish" + }, + { + "id": "kw_GB", + "name": "Cornish", + "region": "United Kingdom" + }, + { + "id": "ky", + "name": "Kyrgyz" + }, + { + "id": "ky_KG", + "name": "Kyrgyz", + "region": "Kyrgyzstan" + }, + { + "id": "lag", + "name": "Langi" + }, + { + "id": "lag_TZ", + "name": "Langi", + "region": "Tanzania" + }, + { + "id": "lg", + "name": "Ganda" + }, + { + "id": "lg_UG", + "name": "Ganda", + "region": "Uganda" + }, + { + "id": "lkt", + "name": "Lakota" + }, + { + "id": "lkt_US", + "name": "Lakota", + "region": "United States" + }, + { + "id": "ln", + "name": "Lingala" + }, + { + "id": "ln_AO", + "name": "Lingala", + "region": "Angola" + }, + { + "id": "ln_CD", + "name": "Lingala", + "region": "Congo (DRC)" + }, + { + "id": "ln_CF", + "name": "Lingala", + "region": "Central African Republic" + }, + { + "id": "ln_CG", + "name": "Lingala", + "region": "Congo (Republic)" + }, + { + "id": "lo", + "name": "Lao" + }, + { + "id": "lo_LA", + "name": "Lao", + "region": "Laos" + }, + { + "id": "lt", + "name": "Lithuanian" + }, + { + "id": "lt_LT", + "name": "Lithuanian", + "region": "Lithuania" + }, + { + "id": "lu", + "name": "Luba-Katanga" + }, + { + "id": "lu_CD", + "name": "Luba-Katanga", + "region": "Congo (DRC)" + }, + { + "id": "luo", + "name": "Luo" + }, + { + "id": "luo_KE", + "name": "Luo", + "region": "Kenya" + }, + { + "id": "luy", + "name": "Luyia" + }, + { + "id": "luy_KE", + "name": "Luyia", + "region": "Kenya" + }, + { + "id": "lv", + "name": "Latvian" + }, + { + "id": "lv_LV", + "name": "Latvian", + "region": "Latvia" + }, + { + "id": "mas", + "name": "Masai" + }, + { + "id": "mas_KE", + "name": "Masai", + "region": "Kenya" + }, + { + "id": "mas_TZ", + "name": "Masai", + "region": "Tanzania" + }, + { + "id": "mer", + "name": "Meru" + }, + { + "id": "mer_KE", + "name": "Meru", + "region": "Kenya" + }, + { + "id": "mfe", + "name": "Morisyen" + }, + { + "id": "mfe_MU", + "name": "Morisyen", + "region": "Mauritius" + }, + { + "id": "mg", + "name": "Malagasy" + }, + { + "id": "mg_MG", + "name": "Malagasy", + "region": "Madagascar" + }, + { + "id": "mgh", + "name": "Makhuwa-Meetto" + }, + { + "id": "mgh_MZ", + "name": "Makhuwa-Meetto", + "region": "Mozambique" + }, + { + "id": "mgo", + "name": "Meta'" + }, + { + "id": "mgo_CM", + "name": "Meta'", + "region": "Cameroon" + }, + { + "id": "mk", + "name": "Macedonian" + }, + { + "id": "mk_MK", + "name": "Macedonian", + "region": "Macedonia (FYROM)" + }, + { + "id": "ml", + "name": "Malayalam" + }, + { + "id": "ml_IN", + "name": "Malayalam", + "region": "India" + }, + { + "id": "mn", + "name": "Mongolian" + }, + { + "id": "mn_MN", + "name": "Mongolian", + "region": "Mongolia" + }, + { + "id": "mr", + "name": "Marathi" + }, + { + "id": "mr_IN", + "name": "Marathi", + "region": "India" + }, + { + "id": "ms", + "name": "Malay" + }, + { + "id": "ms_BN", + "name": "Malay", + "region": "Brunei" + }, + { + "id": "ms_MY", + "name": "Malay", + "region": "Malaysia" + }, + { + "id": "ms_SG", + "name": "Malay", + "region": "Singapore" + }, + { + "id": "mt", + "name": "Maltese" + }, + { + "id": "mt_MT", + "name": "Maltese", + "region": "Malta" + }, + { + "id": "mua", + "name": "Mundang" + }, + { + "id": "mua_CM", + "name": "Mundang", + "region": "Cameroon" + }, + { + "id": "my", + "name": "Burmese" + }, + { + "id": "my_MM", + "name": "Burmese", + "region": "Myanmar (Burma)" + }, + { + "id": "naq", + "name": "Nama" + }, + { + "id": "naq_NA", + "name": "Nama", + "region": "Namibia" + }, + { + "id": "nb", + "name": "Norwegian Bokmål" + }, + { + "id": "nb_NO", + "name": "Norwegian Bokmål", + "region": "Norway" + }, + { + "id": "nb_SJ", + "name": "Norwegian Bokmål", + "region": "Svalbard and Jan Mayen" + }, + { + "id": "nd", + "name": "North Ndebele" + }, + { + "id": "nd_ZW", + "name": "North Ndebele", + "region": "Zimbabwe" + }, + { + "id": "ne", + "name": "Nepali" + }, + { + "id": "ne_IN", + "name": "Nepali", + "region": "India" + }, + { + "id": "ne_NP", + "name": "Nepali", + "region": "Nepal" + }, + { + "id": "nl", + "name": "Dutch" + }, + { + "id": "nl_AW", + "name": "Dutch", + "region": "Aruba" + }, + { + "id": "nl_BE", + "name": "Dutch", + "region": "Belgium" + }, + { + "id": "nl_BQ", + "name": "Dutch", + "region": "Caribbean Netherlands" + }, + { + "id": "nl_CW", + "name": "Dutch", + "region": "Curaçao" + }, + { + "id": "nl_NL", + "name": "Dutch", + "region": "Netherlands" + }, + { + "id": "nl_SR", + "name": "Dutch", + "region": "Suriname" + }, + { + "id": "nl_SX", + "name": "Dutch", + "region": "Sint Maarten" + }, + { + "id": "nmg", + "name": "Kwasio" + }, + { + "id": "nmg_CM", + "name": "Kwasio", + "region": "Cameroon" + }, + { + "id": "nn", + "name": "Norwegian Nynorsk" + }, + { + "id": "nn_NO", + "name": "Norwegian Nynorsk", + "region": "Norway" + }, + { + "id": "nnh", + "name": "Ngiemboon" + }, + { + "id": "nnh_CM", + "name": "Ngiemboon", + "region": "Cameroon" + }, + { + "id": "nus", + "name": "Nuer" + }, + { + "id": "nus_SD", + "name": "Nuer", + "region": "Sudan" + }, + { + "id": "nyn", + "name": "Nyankole" + }, + { + "id": "nyn_UG", + "name": "Nyankole", + "region": "Uganda" + }, + { + "id": "om", + "name": "Oromo" + }, + { + "id": "om_ET", + "name": "Oromo", + "region": "Ethiopia" + }, + { + "id": "om_KE", + "name": "Oromo", + "region": "Kenya" + }, + { + "id": "or", + "name": "Oriya" + }, + { + "id": "or_IN", + "name": "Oriya", + "region": "India" + }, + { + "id": "pa", + "name": "Punjabi" + }, + { + "id": "pa_PK", + "name": "Punjabi", + "region": "Pakistan" + }, + { + "id": "pa_IN", + "name": "Punjabi", + "region": "India" + }, + { + "id": "pl", + "name": "Polish" + }, + { + "id": "pl_PL", + "name": "Polish", + "region": "Poland" + }, + { + "id": "ps", + "name": "Pashto" + }, + { + "id": "ps_AF", + "name": "Pashto", + "region": "Afghanistan" + }, + { + "id": "pt", + "name": "Portuguese" + }, + { + "id": "pt_AO", + "name": "Portuguese", + "region": "Angola" + }, + { + "id": "pt_BR", + "name": "Portuguese", + "region": "Brazil" + }, + { + "id": "pt_CV", + "name": "Portuguese", + "region": "Cape Verde" + }, + { + "id": "pt_GW", + "name": "Portuguese", + "region": "Guinea-Bissau" + }, + { + "id": "pt_MO", + "name": "Portuguese", + "region": "Macau" + }, + { + "id": "pt_MZ", + "name": "Portuguese", + "region": "Mozambique" + }, + { + "id": "pt_PT", + "name": "Portuguese", + "region": "Portugal" + }, + { + "id": "pt_ST", + "name": "Portuguese", + "region": "São Tomé and Príncipe" + }, + { + "id": "pt_TL", + "name": "Portuguese", + "region": "Timor-Leste" + }, + { + "id": "rm", + "name": "Romansh" + }, + { + "id": "rm_CH", + "name": "Romansh", + "region": "Switzerland" + }, + { + "id": "rn", + "name": "Rundi" + }, + { + "id": "rn_BI", + "name": "Rundi", + "region": "Burundi" + }, + { + "id": "ro", + "name": "Romanian" + }, + { + "id": "ro_MD", + "name": "Romanian", + "region": "Moldova" + }, + { + "id": "ro_RO", + "name": "Romanian", + "region": "Romania" + }, + { + "id": "rof", + "name": "Rombo" + }, + { + "id": "rof_TZ", + "name": "Rombo", + "region": "Tanzania" + }, + { + "id": "ru", + "name": "Russian" + }, + { + "id": "ru_BY", + "name": "Russian", + "region": "Belarus" + }, + { + "id": "ru_KG", + "name": "Russian", + "region": "Kyrgyzstan" + }, + { + "id": "ru_KZ", + "name": "Russian", + "region": "Kazakhstan" + }, + { + "id": "ru_MD", + "name": "Russian", + "region": "Moldova" + }, + { + "id": "ru_RU", + "name": "Russian", + "region": "Russia" + }, + { + "id": "ru_UA", + "name": "Russian", + "region": "Ukraine" + }, + { + "id": "rw", + "name": "Kinyarwanda" + }, + { + "id": "rw_RW", + "name": "Kinyarwanda", + "region": "Rwanda" + }, + { + "id": "rwk", + "name": "Rwa" + }, + { + "id": "rwk_TZ", + "name": "Rwa", + "region": "Tanzania" + }, + { + "id": "saq", + "name": "Samburu" + }, + { + "id": "saq_KE", + "name": "Samburu", + "region": "Kenya" + }, + { + "id": "sbp", + "name": "Sangu" + }, + { + "id": "sbp_TZ", + "name": "Sangu", + "region": "Tanzania" + }, + { + "id": "seh", + "name": "Sena" + }, + { + "id": "seh_MZ", + "name": "Sena", + "region": "Mozambique" + }, + { + "id": "ses", + "name": "Koyraboro Senni" + }, + { + "id": "ses_ML", + "name": "Koyraboro Senni", + "region": "Mali" + }, + { + "id": "sg", + "name": "Sango" + }, + { + "id": "sg_CF", + "name": "Sango", + "region": "Central African Republic" + }, + { + "id": "shi", + "name": "Tachelhit" + }, + { + "id": "shi_MA", + "name": "Tachelhit", + "region": "Morocco" + }, + { + "id": "si", + "name": "Sinhala" + }, + { + "id": "si_LK", + "name": "Sinhala", + "region": "Sri Lanka" + }, + { + "id": "sk", + "name": "Slovak" + }, + { + "id": "sk_SK", + "name": "Slovak", + "region": "Slovakia" + }, + { + "id": "sl", + "name": "Slovenian" + }, + { + "id": "sl_SI", + "name": "Slovenian", + "region": "Slovenia" + }, + { + "id": "sn", + "name": "Shona" + }, + { + "id": "sn_ZW", + "name": "Shona", + "region": "Zimbabwe" + }, + { + "id": "so", + "name": "Somali" + }, + { + "id": "so_DJ", + "name": "Somali", + "region": "Djibouti" + }, + { + "id": "so_ET", + "name": "Somali", + "region": "Ethiopia" + }, + { + "id": "so_KE", + "name": "Somali", + "region": "Kenya" + }, + { + "id": "so_SO", + "name": "Somali", + "region": "Somalia" + }, + { + "id": "sq", + "name": "Albanian" + }, + { + "id": "sq_AL", + "name": "Albanian", + "region": "Albania" + }, + { + "id": "sq_MK", + "name": "Albanian", + "region": "Macedonia (FYROM)" + }, + { + "id": "sq_XK", + "name": "Albanian", + "region": "Kosovo" + }, + { + "id": "sr", + "name": "Serbian" + }, + { + "id": "sr_BA", + "name": "Serbian", + "region": "Bosnia and Herzegovina" + }, + { + "id": "sr_ME", + "name": "Serbian", + "region": "Montenegro" + }, + { + "id": "sr_RS", + "name": "Serbian", + "region": "Serbia" + }, + { + "id": "sr_XK", + "name": "Serbian", + "region": "Kosovo" + }, + { + "id": "sv", + "name": "Swedish" + }, + { + "id": "sv_AX", + "name": "Swedish", + "region": "Åland Islands" + }, + { + "id": "sv_FI", + "name": "Swedish", + "region": "Finland" + }, + { + "id": "sv_SE", + "name": "Swedish", + "region": "Sweden" + }, + { + "id": "sw", + "name": "Swahili" + }, + { + "id": "sw_KE", + "name": "Swahili", + "region": "Kenya" + }, + { + "id": "sw_TZ", + "name": "Swahili", + "region": "Tanzania" + }, + { + "id": "sw_UG", + "name": "Swahili", + "region": "Uganda" + }, + { + "id": "swc", + "name": "Congo Swahili" + }, + { + "id": "swc_CD", + "name": "Congo Swahili", + "region": "Congo (DRC)" + }, + { + "id": "ta", + "name": "Tamil" + }, + { + "id": "ta_IN", + "name": "Tamil", + "region": "India" + }, + { + "id": "ta_LK", + "name": "Tamil", + "region": "Sri Lanka" + }, + { + "id": "ta_MY", + "name": "Tamil", + "region": "Malaysia" + }, + { + "id": "ta_SG", + "name": "Tamil", + "region": "Singapore" + }, + { + "id": "te", + "name": "Telugu" + }, + { + "id": "te_IN", + "name": "Telugu", + "region": "India" + }, + { + "id": "teo", + "name": "Teso" + }, + { + "id": "teo_KE", + "name": "Teso", + "region": "Kenya" + }, + { + "id": "teo_UG", + "name": "Teso", + "region": "Uganda" + }, + { + "id": "th", + "name": "Thai" + }, + { + "id": "th_TH", + "name": "Thai", + "region": "Thailand" + }, + { + "id": "ti", + "name": "Tigrinya" + }, + { + "id": "ti_ER", + "name": "Tigrinya", + "region": "Eritrea" + }, + { + "id": "ti_ET", + "name": "Tigrinya", + "region": "Ethiopia" + }, + { + "id": "to", + "name": "Tongan" + }, + { + "id": "to_TO", + "name": "Tongan", + "region": "Tonga" + }, + { + "id": "tr", + "name": "Turkish" + }, + { + "id": "tr_CY", + "name": "Turkish", + "region": "Cyprus" + }, + { + "id": "tr_TR", + "name": "Turkish", + "region": "Turkey" + }, + { + "id": "twq", + "name": "Tasawaq" + }, + { + "id": "twq_NE", + "name": "Tasawaq", + "region": "Niger" + }, + { + "id": "tzm", + "name": "Central Atlas Tamazight" + }, + { + "id": "tzm_MA", + "name": "Central Atlas Tamazight", + "region": "Morocco" + }, + { + "id": "ug", + "name": "Uyghur" + }, + { + "id": "ug_CN", + "name": "Uyghur", + "region": "China" + }, + { + "id": "uk", + "name": "Ukrainian" + }, + { + "id": "uk_UA", + "name": "Ukrainian", + "region": "Ukraine" + }, + { + "id": "ur", + "name": "Urdu" + }, + { + "id": "ur_IN", + "name": "Urdu", + "region": "India" + }, + { + "id": "ur_PK", + "name": "Urdu", + "region": "Pakistan" + }, + { + "id": "uz", + "name": "Uzbek" + }, + { + "id": "uz_AF", + "name": "Uzbek", + "region": "Afghanistan" + }, + { + "id": "uz_UZ", + "name": "Uzbek", + "region": "Uzbekistan" + }, + { + "id": "vai", + "name": "Vai" + }, + { + "id": "vai_LR", + "name": "Vai", + "region": "Liberia" + }, + { + "id": "vi", + "name": "Vietnamese" + }, + { + "id": "vi_VN", + "name": "Vietnamese", + "region": "Vietnam" + }, + { + "id": "vun", + "name": "Vunjo" + }, + { + "id": "vun_TZ", + "name": "Vunjo", + "region": "Tanzania" + }, + { + "id": "xog", + "name": "Soga" + }, + { + "id": "xog_UG", + "name": "Soga", + "region": "Uganda" + }, + { + "id": "yav", + "name": "Yangben" + }, + { + "id": "yav_CM", + "name": "Yangben", + "region": "Cameroon" + }, + { + "id": "yo", + "name": "Yoruba" + }, + { + "id": "yo_BJ", + "name": "Yoruba", + "region": "Benin" + }, + { + "id": "yo_NG", + "name": "Yoruba", + "region": "Nigeria" + }, + { + "id": "zgh", + "name": "Standard Moroccan Tamazight" + }, + { + "id": "zgh_MA", + "name": "Standard Moroccan Tamazight", + "region": "Morocco" + }, + { + "id": "zh", + "name": "Chinese" + }, + { + "id": "zh_CN", + "name": "Chinese", + "region": "China" + }, + { + "id": "zh_HK", + "name": "Chinese", + "region": "Hong Kong" + }, + { + "id": "zh_MO", + "name": "Chinese", + "region": "Macau" + }, + { + "id": "zh_SG", + "name": "Chinese", + "region": "Singapore" + }, + { + "id": "zh_TW", + "name": "Chinese", + "region": "Taiwan" + }, + { + "id": "zu", + "name": "Zulu" + }, + { + "id": "zu_ZA", + "name": "Zulu", + "region": "South Africa" + } + ], + "orientations": [ + { + "id": "landscape", + "name": "Landscape" + }, + { + "id": "portrait", + "name": "Portrait", + "tags": [ + "default" + ] + }, + { + "id": "default", + "name": "Default" + } + ] }, - "versions" : [ { - "apiLevel" : 18, - "codeName" : "Jelly Bean", - "id" : "18", - "releaseDate" : { - "day" : 3, - "month" : 10, - "year" : 2013 - }, - "versionString" : "4.3.x" - }, { - "apiLevel" : 19, - "codeName" : "KitKat", - "id" : "19", - "releaseDate" : { - "day" : 2, - "month" : 6, - "year" : 2014 - }, - "versionString" : "4.4.x" - }, { - "apiLevel" : 21, - "codeName" : "Lollipop", - "id" : "21", - "releaseDate" : { - "day" : 19, - "month" : 12, - "year" : 2014 - }, - "versionString" : "5.0.x" - }, { - "apiLevel" : 22, - "codeName" : "Lollipop", - "id" : "22", - "releaseDate" : { - "day" : 21, - "month" : 4, - "year" : 2015 - }, - "versionString" : "5.1.x" - }, { - "apiLevel" : 23, - "codeName" : "Marshmallow", - "id" : "23", - "releaseDate" : { - "day" : 5, - "month" : 10, - "year" : 2015 - }, - "versionString" : "6.0.x" - }, { - "apiLevel" : 24, - "codeName" : "Nougat", - "id" : "24", - "releaseDate" : { - "day" : 22, - "month" : 8, - "year" : 2016 - }, - "versionString" : "7.0.x" - }, { - "apiLevel" : 25, - "codeName" : "Nougat", - "id" : "25", - "releaseDate" : { - "day" : 19, - "month" : 10, - "year" : 2016 - }, - "versionString" : "7.1.x" - }, { - "apiLevel" : 26, - "codeName" : "Oreo", - "id" : "26", - "releaseDate" : { - "day" : 21, - "month" : 8, - "year" : 2017 - }, - "tags" : [ "default" ], - "versionString" : "8.0.x" - }, { - "apiLevel" : 27, - "codeName" : "Oreo MR1", - "id" : "27", - "releaseDate" : { - "day" : 4, - "month" : 12, - "year" : 2017 - }, - "versionString" : "8.1.x" - }, { - "apiLevel" : 28, - "codeName" : "Pie", - "id" : "28", - "releaseDate" : { - "day" : 6, - "month" : 8, - "year" : 2018 - }, - "versionString" : "9.x" - }, { - "apiLevel" : 28, - "codeName" : "Q", - "id" : "Q", - "releaseDate" : { - "day" : 13, - "month" : 3, - "year" : 2019 - }, - "versionString" : "Q beta" - }, { - "apiLevel" : 28, - "codeName" : "Q", - "id" : "Q-beta-3", - "releaseDate" : { - "day" : 7, - "month" : 5, - "year" : 2019 - }, - "versionString" : "Q" - } ] + "versions": [ + { + "apiLevel": 18, + "codeName": "Jelly Bean", + "id": "18", + "releaseDate": { + "day": 3, + "month": 10, + "year": 2013 + }, + "versionString": "4.3.x" + }, + { + "apiLevel": 19, + "codeName": "KitKat", + "id": "19", + "releaseDate": { + "day": 2, + "month": 6, + "year": 2014 + }, + "versionString": "4.4.x" + }, + { + "apiLevel": 21, + "codeName": "Lollipop", + "id": "21", + "releaseDate": { + "day": 19, + "month": 12, + "year": 2014 + }, + "versionString": "5.0.x" + }, + { + "apiLevel": 22, + "codeName": "Lollipop", + "id": "22", + "releaseDate": { + "day": 21, + "month": 4, + "year": 2015 + }, + "versionString": "5.1.x" + }, + { + "apiLevel": 23, + "codeName": "Marshmallow", + "id": "23", + "releaseDate": { + "day": 5, + "month": 10, + "year": 2015 + }, + "versionString": "6.0.x" + }, + { + "apiLevel": 24, + "codeName": "Nougat", + "id": "24", + "releaseDate": { + "day": 22, + "month": 8, + "year": 2016 + }, + "versionString": "7.0.x" + }, + { + "apiLevel": 25, + "codeName": "Nougat", + "id": "25", + "releaseDate": { + "day": 19, + "month": 10, + "year": 2016 + }, + "versionString": "7.1.x" + }, + { + "apiLevel": 26, + "codeName": "Oreo", + "id": "26", + "releaseDate": { + "day": 21, + "month": 8, + "year": 2017 + }, + "versionString": "8.0.x" + }, + { + "apiLevel": 27, + "codeName": "Oreo MR1", + "id": "27", + "releaseDate": { + "day": 4, + "month": 12, + "year": 2017 + }, + "tags": [ + "default" + ], + "versionString": "8.1.x" + }, + { + "apiLevel": 28, + "codeName": "Pie", + "id": "28", + "releaseDate": { + "day": 6, + "month": 8, + "year": 2018 + }, + "versionString": "9.x" + }, + { + "apiLevel": 29, + "codeName": "Q", + "id": "29", + "releaseDate": { + "day": 3, + "month": 9, + "year": 2019 + }, + "versionString": "10.x" + }, + { + "apiLevel": 30, + "codeName": "R", + "id": "30", + "releaseDate": { + "day": 3, + "month": 9, + "year": 2020 + }, + "versionString": "11" + } + ] } \ No newline at end of file diff --git a/test_runner/src/test/kotlin/ftl/fixtures/ios_catalog.json b/test_runner/src/test/kotlin/ftl/fixtures/ios_catalog.json index 2966643aeb..6f77b3ccbd 100644 --- a/test_runner/src/test/kotlin/ftl/fixtures/ios_catalog.json +++ b/test_runner/src/test/kotlin/ftl/fixtures/ios_catalog.json @@ -1,2413 +1,3741 @@ { - "models" : [ { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit" ], - "formFactor" : "TABLET", - "id" : "ipad5", - "name" : "iPad (5th generation)", - "supportedVersionIds" : [ "11.2", "12.0" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi" ], - "formFactor" : "TABLET", - "id" : "ipadmini4", - "name" : "iPad mini 4", - "supportedVersionIds" : [ "11.2", "12.0" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash" ], - "formFactor" : "TABLET", - "id" : "ipadpro_105", - "name" : "iPad Pro (10.5-inch)", - "supportedVersionIds" : [ "11.2" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "camera-flash", "gps", "healthkit", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphone6", - "name" : "iPhone 6", - "supportedVersionIds" : [ "11.4" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphone6s", - "name" : "iPhone 6s", - "supportedVersionIds" : [ "10.3", "11.2", "11.4", "12.0" ], - "tags" : [ "deprecated=10.3,11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "nfc", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphone7", - "name" : "iPhone 7", - "supportedVersionIds" : [ "11.2", "11.4", "12.0" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "nfc", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphone7plus", - "name" : "iPhone 7 Plus", - "supportedVersionIds" : [ "11.2", "11.4", "12.0" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "nfc", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphone8", - "name" : "iPhone 8", - "supportedVersionIds" : [ "11.2", "11.4", "12.0", "13.6" ], - "tags" : [ "default", "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "nfc", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphone8plus", - "name" : "iPhone 8 Plus", - "supportedVersionIds" : [ "11.2", "11.4", "12.0" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphonese", - "name" : "iPhone SE", - "supportedVersionIds" : [ "11.2", "11.4", "12.0" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "nfc", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphonex", - "name" : "iPhone X", - "supportedVersionIds" : [ "11.2", "11.4", "12.0" ], - "tags" : [ "deprecated=11.2" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "nfc", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphonexs", - "name" : "iPhone XS", - "supportedVersionIds" : [ "12.0", "12.1" ] - }, { - "deviceCapabilities" : [ "accelerometer", "armv6", "armv7", "arm64", "auto-focus-camera", "bluetooth-le", "front-facing-camera", "gamekit", "gyroscope", "location-services", "magnetometer", "metal", "microphone", "opengles-1", "opengles-2", "opengles-3", "peer-peer", "still-camera", "video-camera", "wifi", "arkit", "camera-flash", "gps", "healthkit", "nfc", "sms", "telephony" ], - "formFactor" : "PHONE", - "id" : "iphonexsmax", - "name" : "iPhone XS Max", - "supportedVersionIds" : [ "12.0", "12.1" ] - } ], - "runtimeConfiguration" : { - "locales" : [ { - "id" : "af", - "name" : "Afrikaans" - }, { - "id" : "af_NA", - "name" : "Afrikaans", - "region" : "Namibia" - }, { - "id" : "af_ZA", - "name" : "Afrikaans", - "region" : "South Africa" - }, { - "id" : "agq", - "name" : "Aghem" - }, { - "id" : "agq_CM", - "name" : "Aghem", - "region" : "Cameroon" - }, { - "id" : "ak", - "name" : "Akan" - }, { - "id" : "ak_GH", - "name" : "Akan", - "region" : "Ghana" - }, { - "id" : "am", - "name" : "Amharic" - }, { - "id" : "am_ET", - "name" : "Amharic", - "region" : "Ethiopia" - }, { - "id" : "ar", - "name" : "Arabic" - }, { - "id" : "ar_001", - "name" : "Arabic", - "region" : "World" - }, { - "id" : "ar_AE", - "name" : "Arabic", - "region" : "United Arab Emirates" - }, { - "id" : "ar_BH", - "name" : "Arabic", - "region" : "Bahrain" - }, { - "id" : "ar_DJ", - "name" : "Arabic", - "region" : "Djibouti" - }, { - "id" : "ar_DZ", - "name" : "Arabic", - "region" : "Algeria" - }, { - "id" : "ar_EG", - "name" : "Arabic", - "region" : "Egypt" - }, { - "id" : "ar_EH", - "name" : "Arabic", - "region" : "Western Sahara" - }, { - "id" : "ar_ER", - "name" : "Arabic", - "region" : "Eritrea" - }, { - "id" : "ar_IL", - "name" : "Arabic", - "region" : "Israel" - }, { - "id" : "ar_IQ", - "name" : "Arabic", - "region" : "Iraq" - }, { - "id" : "ar_JO", - "name" : "Arabic", - "region" : "Jordan" - }, { - "id" : "ar_KM", - "name" : "Arabic", - "region" : "Comoros" - }, { - "id" : "ar_KW", - "name" : "Arabic", - "region" : "Kuwait" - }, { - "id" : "ar_LB", - "name" : "Arabic", - "region" : "Lebanon" - }, { - "id" : "ar_LY", - "name" : "Arabic", - "region" : "Libya" - }, { - "id" : "ar_MA", - "name" : "Arabic", - "region" : "Morocco" - }, { - "id" : "ar_MR", - "name" : "Arabic", - "region" : "Mauritania" - }, { - "id" : "ar_OM", - "name" : "Arabic", - "region" : "Oman" - }, { - "id" : "ar_PS", - "name" : "Arabic", - "region" : "Palestine" - }, { - "id" : "ar_QA", - "name" : "Arabic", - "region" : "Qatar" - }, { - "id" : "ar_SA", - "name" : "Arabic", - "region" : "Saudi Arabia" - }, { - "id" : "ar_SD", - "name" : "Arabic", - "region" : "Sudan" - }, { - "id" : "ar_SO", - "name" : "Arabic", - "region" : "Somalia" - }, { - "id" : "ar_SS", - "name" : "Arabic", - "region" : "South Sudan" - }, { - "id" : "ar_SY", - "name" : "Arabic", - "region" : "Syria" - }, { - "id" : "ar_TD", - "name" : "Arabic", - "region" : "Chad" - }, { - "id" : "ar_TN", - "name" : "Arabic", - "region" : "Tunisia" - }, { - "id" : "ar_YE", - "name" : "Arabic", - "region" : "Yemen" - }, { - "id" : "as", - "name" : "Assamese" - }, { - "id" : "as_IN", - "name" : "Assamese", - "region" : "India" - }, { - "id" : "asa", - "name" : "Asu" - }, { - "id" : "asa_TZ", - "name" : "Asu", - "region" : "Tanzania" - }, { - "id" : "az", - "name" : "Azerbaijani" - }, { - "id" : "az_AZ", - "name" : "Azerbaijani", - "region" : "Azerbaijan" - }, { - "id" : "bas", - "name" : "Basaa" - }, { - "id" : "bas_CM", - "name" : "Basaa", - "region" : "Cameroon" - }, { - "id" : "be", - "name" : "Belarusian" - }, { - "id" : "be_BY", - "name" : "Belarusian", - "region" : "Belarus" - }, { - "id" : "bem", - "name" : "Bemba" - }, { - "id" : "bem_ZM", - "name" : "Bemba", - "region" : "Zambia" - }, { - "id" : "bez", - "name" : "Bena" - }, { - "id" : "bez_TZ", - "name" : "Bena", - "region" : "Tanzania" - }, { - "id" : "bg", - "name" : "Bulgarian" - }, { - "id" : "bg_BG", - "name" : "Bulgarian", - "region" : "Bulgaria" - }, { - "id" : "bm", - "name" : "Bambara" - }, { - "id" : "bm_ML", - "name" : "Bambara", - "region" : "Mali" - }, { - "id" : "bn", - "name" : "Bengali" - }, { - "id" : "bn_BD", - "name" : "Bengali", - "region" : "Bangladesh" - }, { - "id" : "bn_IN", - "name" : "Bengali", - "region" : "India" - }, { - "id" : "bo", - "name" : "Tibetan" - }, { - "id" : "bo_CN", - "name" : "Tibetan", - "region" : "China" - }, { - "id" : "bo_IN", - "name" : "Tibetan", - "region" : "India" - }, { - "id" : "br", - "name" : "Breton" - }, { - "id" : "br_FR", - "name" : "Breton", - "region" : "France" - }, { - "id" : "brx", - "name" : "Bodo" - }, { - "id" : "brx_IN", - "name" : "Bodo", - "region" : "India" - }, { - "id" : "bs", - "name" : "Bosnian" - }, { - "id" : "bs_BA", - "name" : "Bosnian", - "region" : "Bosnia and Herzegovina" - }, { - "id" : "ca", - "name" : "Catalan" - }, { - "id" : "ca_AD", - "name" : "Catalan", - "region" : "Andorra" - }, { - "id" : "ca_ES", - "name" : "Catalan", - "region" : "Spain" - }, { - "id" : "ca_FR", - "name" : "Catalan", - "region" : "France" - }, { - "id" : "ca_IT", - "name" : "Catalan", - "region" : "Italy" - }, { - "id" : "cgg", - "name" : "Chiga" - }, { - "id" : "cgg_UG", - "name" : "Chiga", - "region" : "Uganda" - }, { - "id" : "chr", - "name" : "Cherokee" - }, { - "id" : "chr_US", - "name" : "Cherokee", - "region" : "United States" - }, { - "id" : "cs", - "name" : "Czech" - }, { - "id" : "cs_CZ", - "name" : "Czech", - "region" : "Czech Republic" - }, { - "id" : "cy", - "name" : "Welsh" - }, { - "id" : "cy_GB", - "name" : "Welsh", - "region" : "United Kingdom" - }, { - "id" : "da", - "name" : "Danish" - }, { - "id" : "da_DK", - "name" : "Danish", - "region" : "Denmark" - }, { - "id" : "da_GL", - "name" : "Danish", - "region" : "Greenland" - }, { - "id" : "dav", - "name" : "Taita" - }, { - "id" : "dav_KE", - "name" : "Taita", - "region" : "Kenya" - }, { - "id" : "de", - "name" : "German" - }, { - "id" : "de_AT", - "name" : "German", - "region" : "Austria" - }, { - "id" : "de_BE", - "name" : "German", - "region" : "Belgium" - }, { - "id" : "de_CH", - "name" : "German", - "region" : "Switzerland" - }, { - "id" : "de_DE", - "name" : "German", - "region" : "Germany" - }, { - "id" : "de_LI", - "name" : "German", - "region" : "Liechtenstein" - }, { - "id" : "de_LU", - "name" : "German", - "region" : "Luxembourg" - }, { - "id" : "dje", - "name" : "Zarma" - }, { - "id" : "dje_NE", - "name" : "Zarma", - "region" : "Niger" - }, { - "id" : "dua", - "name" : "Duala" - }, { - "id" : "dua_CM", - "name" : "Duala", - "region" : "Cameroon" - }, { - "id" : "dyo", - "name" : "Jola-Fonyi" - }, { - "id" : "dyo_SN", - "name" : "Jola-Fonyi", - "region" : "Senegal" - }, { - "id" : "dz", - "name" : "Dzongkha" - }, { - "id" : "dz_BT", - "name" : "Dzongkha", - "region" : "Bhutan" - }, { - "id" : "ebu", - "name" : "Embu" - }, { - "id" : "ebu_KE", - "name" : "Embu", - "region" : "Kenya" - }, { - "id" : "ee", - "name" : "Ewe" - }, { - "id" : "ee_GH", - "name" : "Ewe", - "region" : "Ghana" - }, { - "id" : "ee_TG", - "name" : "Ewe", - "region" : "Togo" - }, { - "id" : "el", - "name" : "Greek" - }, { - "id" : "el_CY", - "name" : "Greek", - "region" : "Cyprus" - }, { - "id" : "el_GR", - "name" : "Greek", - "region" : "Greece" - }, { - "id" : "en", - "name" : "English", - "tags" : [ "default" ] - }, { - "id" : "en_001", - "name" : "English", - "region" : "World" - }, { - "id" : "en_150", - "name" : "English", - "region" : "Europe" - }, { - "id" : "en_AG", - "name" : "English", - "region" : "Antigua and Barbuda" - }, { - "id" : "en_AI", - "name" : "English", - "region" : "Anguilla" - }, { - "id" : "en_AS", - "name" : "English", - "region" : "American Samoa" - }, { - "id" : "en_AU", - "name" : "English", - "region" : "Australia" - }, { - "id" : "en_BB", - "name" : "English", - "region" : "Barbados" - }, { - "id" : "en_BE", - "name" : "English", - "region" : "Belgium" - }, { - "id" : "en_BM", - "name" : "English", - "region" : "Bermuda" - }, { - "id" : "en_BS", - "name" : "English", - "region" : "Bahamas" - }, { - "id" : "en_BW", - "name" : "English", - "region" : "Botswana" - }, { - "id" : "en_BZ", - "name" : "English", - "region" : "Belize" - }, { - "id" : "en_CA", - "name" : "English", - "region" : "Canada" - }, { - "id" : "en_CC", - "name" : "English", - "region" : "Cocos (Keeling) Islands" - }, { - "id" : "en_CK", - "name" : "English", - "region" : "Cook Islands" - }, { - "id" : "en_CM", - "name" : "English", - "region" : "Cameroon" - }, { - "id" : "en_CX", - "name" : "English", - "region" : "Christmas Island" - }, { - "id" : "en_DG", - "name" : "English", - "region" : "Diego Garcia" - }, { - "id" : "en_DM", - "name" : "English", - "region" : "Dominica" - }, { - "id" : "en_ER", - "name" : "English", - "region" : "Eritrea" - }, { - "id" : "en_FJ", - "name" : "English", - "region" : "Fiji" - }, { - "id" : "en_FK", - "name" : "English", - "region" : "Falkland Islands (Islas Malvinas)" - }, { - "id" : "en_FM", - "name" : "English", - "region" : "Micronesia" - }, { - "id" : "en_GB", - "name" : "English", - "region" : "United Kingdom" - }, { - "id" : "en_GD", - "name" : "English", - "region" : "Grenada" - }, { - "id" : "en_GG", - "name" : "English", - "region" : "Guernsey" - }, { - "id" : "en_GH", - "name" : "English", - "region" : "Ghana" - }, { - "id" : "en_GI", - "name" : "English", - "region" : "Gibraltar" - }, { - "id" : "en_GM", - "name" : "English", - "region" : "Gambia" - }, { - "id" : "en_GU", - "name" : "English", - "region" : "Guam" - }, { - "id" : "en_GY", - "name" : "English", - "region" : "Guyana" - }, { - "id" : "en_HK", - "name" : "English", - "region" : "Hong Kong" - }, { - "id" : "en_IE", - "name" : "English", - "region" : "Ireland" - }, { - "id" : "en_IM", - "name" : "English", - "region" : "Isle of Man" - }, { - "id" : "en_IN", - "name" : "English", - "region" : "India" - }, { - "id" : "en_IO", - "name" : "English", - "region" : "British Indian Ocean Territory" - }, { - "id" : "en_JE", - "name" : "English", - "region" : "Jersey" - }, { - "id" : "en_JM", - "name" : "English", - "region" : "Jamaica" - }, { - "id" : "en_KE", - "name" : "English", - "region" : "Kenya" - }, { - "id" : "en_KI", - "name" : "English", - "region" : "Kiribati" - }, { - "id" : "en_KN", - "name" : "English", - "region" : "Saint Kitts and Nevis" - }, { - "id" : "en_KY", - "name" : "English", - "region" : "Cayman Islands" - }, { - "id" : "en_LC", - "name" : "English", - "region" : "Saint Lucia" - }, { - "id" : "en_LR", - "name" : "English", - "region" : "Liberia" - }, { - "id" : "en_LS", - "name" : "English", - "region" : "Lesotho" - }, { - "id" : "en_MG", - "name" : "English", - "region" : "Madagascar" - }, { - "id" : "en_MH", - "name" : "English", - "region" : "Marshall Islands" - }, { - "id" : "en_MO", - "name" : "English", - "region" : "Macau" - }, { - "id" : "en_MP", - "name" : "English", - "region" : "Northern Mariana Islands" - }, { - "id" : "en_MS", - "name" : "English", - "region" : "Montserrat" - }, { - "id" : "en_MT", - "name" : "English", - "region" : "Malta" - }, { - "id" : "en_MU", - "name" : "English", - "region" : "Mauritius" - }, { - "id" : "en_MW", - "name" : "English", - "region" : "Malawi" - }, { - "id" : "en_NA", - "name" : "English", - "region" : "Namibia" - }, { - "id" : "en_NF", - "name" : "English", - "region" : "Norfolk Island" - }, { - "id" : "en_NG", - "name" : "English", - "region" : "Nigeria" - }, { - "id" : "en_NR", - "name" : "English", - "region" : "Nauru" - }, { - "id" : "en_NU", - "name" : "English", - "region" : "Niue" - }, { - "id" : "en_NZ", - "name" : "English", - "region" : "New Zealand" - }, { - "id" : "en_PG", - "name" : "English", - "region" : "Papua New Guinea" - }, { - "id" : "en_PH", - "name" : "English", - "region" : "Philippines" - }, { - "id" : "en_PK", - "name" : "English", - "region" : "Pakistan" - }, { - "id" : "en_PN", - "name" : "English", - "region" : "Pitcairn Islands" - }, { - "id" : "en_PR", - "name" : "English", - "region" : "Puerto Rico" - }, { - "id" : "en_PW", - "name" : "English", - "region" : "Palau" - }, { - "id" : "en_RW", - "name" : "English", - "region" : "Rwanda" - }, { - "id" : "en_SB", - "name" : "English", - "region" : "Solomon Islands" - }, { - "id" : "en_SC", - "name" : "English", - "region" : "Seychelles" - }, { - "id" : "en_SD", - "name" : "English", - "region" : "Sudan" - }, { - "id" : "en_SG", - "name" : "English", - "region" : "Singapore" - }, { - "id" : "en_SH", - "name" : "English", - "region" : "Saint Helena" - }, { - "id" : "en_SL", - "name" : "English", - "region" : "Sierra Leone" - }, { - "id" : "en_SS", - "name" : "English", - "region" : "South Sudan" - }, { - "id" : "en_SX", - "name" : "English", - "region" : "Sint Maarten" - }, { - "id" : "en_SZ", - "name" : "English", - "region" : "Swaziland" - }, { - "id" : "en_TC", - "name" : "English", - "region" : "Turks and Caicos Islands" - }, { - "id" : "en_TK", - "name" : "English", - "region" : "Tokelau" - }, { - "id" : "en_TO", - "name" : "English", - "region" : "Tonga" - }, { - "id" : "en_TT", - "name" : "English", - "region" : "Trinidad and Tobago" - }, { - "id" : "en_TV", - "name" : "English", - "region" : "Tuvalu" - }, { - "id" : "en_TZ", - "name" : "English", - "region" : "Tanzania" - }, { - "id" : "en_UG", - "name" : "English", - "region" : "Uganda" - }, { - "id" : "en_UM", - "name" : "English", - "region" : "U.S. Outlying Islands" - }, { - "id" : "en_US", - "name" : "English", - "region" : "United States" - }, { - "id" : "en_VC", - "name" : "English", - "region" : "St. Vincent & Grenadines" - }, { - "id" : "en_VG", - "name" : "English", - "region" : "British Virgin Islands" - }, { - "id" : "en_VI", - "name" : "English", - "region" : "U.S. Virgin Islands" - }, { - "id" : "en_VU", - "name" : "English", - "region" : "Vanuatu" - }, { - "id" : "en_WS", - "name" : "English", - "region" : "Samoa" - }, { - "id" : "en_ZA", - "name" : "English", - "region" : "South Africa" - }, { - "id" : "en_ZM", - "name" : "English", - "region" : "Zambia" - }, { - "id" : "en_ZW", - "name" : "English", - "region" : "Zimbabwe" - }, { - "id" : "eo", - "name" : "Esperanto" - }, { - "id" : "es", - "name" : "Spanish" - }, { - "id" : "es_419", - "name" : "Spanish", - "region" : "Latin America" - }, { - "id" : "es_AR", - "name" : "Spanish", - "region" : "Argentina" - }, { - "id" : "es_BO", - "name" : "Spanish", - "region" : "Bolivia" - }, { - "id" : "es_CL", - "name" : "Spanish", - "region" : "Chile" - }, { - "id" : "es_CO", - "name" : "Spanish", - "region" : "Colombia" - }, { - "id" : "es_CR", - "name" : "Spanish", - "region" : "Costa Rica" - }, { - "id" : "es_CU", - "name" : "Spanish", - "region" : "Cuba" - }, { - "id" : "es_DO", - "name" : "Spanish", - "region" : "Dominican Republic" - }, { - "id" : "es_EA", - "name" : "Spanish", - "region" : "Ceuta and Melilla" - }, { - "id" : "es_EC", - "name" : "Spanish", - "region" : "Ecuador" - }, { - "id" : "es_ES", - "name" : "Spanish", - "region" : "Spain" - }, { - "id" : "es_GQ", - "name" : "Spanish", - "region" : "Equatorial Guinea" - }, { - "id" : "es_GT", - "name" : "Spanish", - "region" : "Guatemala" - }, { - "id" : "es_HN", - "name" : "Spanish", - "region" : "Honduras" - }, { - "id" : "es_IC", - "name" : "Spanish", - "region" : "Canary Islands" - }, { - "id" : "es_MX", - "name" : "Spanish", - "region" : "Mexico" - }, { - "id" : "es_NI", - "name" : "Spanish", - "region" : "Nicaragua" - }, { - "id" : "es_PA", - "name" : "Spanish", - "region" : "Panama" - }, { - "id" : "es_PE", - "name" : "Spanish", - "region" : "Peru" - }, { - "id" : "es_PH", - "name" : "Spanish", - "region" : "Philippines" - }, { - "id" : "es_PR", - "name" : "Spanish", - "region" : "Puerto Rico" - }, { - "id" : "es_PY", - "name" : "Spanish", - "region" : "Paraguay" - }, { - "id" : "es_SV", - "name" : "Spanish", - "region" : "El Salvador" - }, { - "id" : "es_US", - "name" : "Spanish", - "region" : "United States" - }, { - "id" : "es_UY", - "name" : "Spanish", - "region" : "Uruguay" - }, { - "id" : "es_VE", - "name" : "Spanish", - "region" : "Venezuela" - }, { - "id" : "et", - "name" : "Estonian" - }, { - "id" : "et_EE", - "name" : "Estonian", - "region" : "Estonia" - }, { - "id" : "eu", - "name" : "Basque" - }, { - "id" : "eu_ES", - "name" : "Basque", - "region" : "Spain" - }, { - "id" : "ewo", - "name" : "Ewondo" - }, { - "id" : "ewo_CM", - "name" : "Ewondo", - "region" : "Cameroon" - }, { - "id" : "fa", - "name" : "Persian" - }, { - "id" : "fa_AF", - "name" : "Persian", - "region" : "Afghanistan" - }, { - "id" : "fa_IR", - "name" : "Persian", - "region" : "Iran" - }, { - "id" : "ff", - "name" : "Fulah" - }, { - "id" : "ff_SN", - "name" : "Fulah", - "region" : "Senegal" - }, { - "id" : "fi", - "name" : "Finnish" - }, { - "id" : "fi_FI", - "name" : "Finnish", - "region" : "Finland" - }, { - "id" : "fil", - "name" : "Filipino" - }, { - "id" : "fil_PH", - "name" : "Filipino", - "region" : "Philippines" - }, { - "id" : "fo", - "name" : "Faroese" - }, { - "id" : "fo_FO", - "name" : "Faroese", - "region" : "Faroe Islands" - }, { - "id" : "fr", - "name" : "French" - }, { - "id" : "fr_BE", - "name" : "French", - "region" : "Belgium" - }, { - "id" : "fr_BF", - "name" : "French", - "region" : "Burkina Faso" - }, { - "id" : "fr_BI", - "name" : "French", - "region" : "Burundi" - }, { - "id" : "fr_BJ", - "name" : "French", - "region" : "Benin" - }, { - "id" : "fr_BL", - "name" : "French", - "region" : "Saint Barthélemy" - }, { - "id" : "fr_CA", - "name" : "French", - "region" : "Canada" - }, { - "id" : "fr_CD", - "name" : "French", - "region" : "Congo (DRC)" - }, { - "id" : "fr_CF", - "name" : "French", - "region" : "Central African Republic" - }, { - "id" : "fr_CG", - "name" : "French", - "region" : "Congo (Republic)" - }, { - "id" : "fr_CH", - "name" : "French", - "region" : "Switzerland" - }, { - "id" : "fr_CI", - "name" : "French", - "region" : "Côte d’Ivoire" - }, { - "id" : "fr_CM", - "name" : "French", - "region" : "Cameroon" - }, { - "id" : "fr_DJ", - "name" : "French", - "region" : "Djibouti" - }, { - "id" : "fr_DZ", - "name" : "French", - "region" : "Algeria" - }, { - "id" : "fr_FR", - "name" : "French", - "region" : "France" - }, { - "id" : "fr_GA", - "name" : "French", - "region" : "Gabon" - }, { - "id" : "fr_GF", - "name" : "French", - "region" : "French Guiana" - }, { - "id" : "fr_GN", - "name" : "French", - "region" : "Guinea" - }, { - "id" : "fr_GP", - "name" : "French", - "region" : "Guadeloupe" - }, { - "id" : "fr_GQ", - "name" : "French", - "region" : "Equatorial Guinea" - }, { - "id" : "fr_HT", - "name" : "French", - "region" : "Haiti" - }, { - "id" : "fr_KM", - "name" : "French", - "region" : "Comoros" - }, { - "id" : "fr_LU", - "name" : "French", - "region" : "Luxembourg" - }, { - "id" : "fr_MA", - "name" : "French", - "region" : "Morocco" - }, { - "id" : "fr_MC", - "name" : "French", - "region" : "Monaco" - }, { - "id" : "fr_MF", - "name" : "French", - "region" : "Saint Martin" - }, { - "id" : "fr_MG", - "name" : "French", - "region" : "Madagascar" - }, { - "id" : "fr_ML", - "name" : "French", - "region" : "Mali" - }, { - "id" : "fr_MQ", - "name" : "French", - "region" : "Martinique" - }, { - "id" : "fr_MR", - "name" : "French", - "region" : "Mauritania" - }, { - "id" : "fr_MU", - "name" : "French", - "region" : "Mauritius" - }, { - "id" : "fr_NC", - "name" : "French", - "region" : "New Caledonia" - }, { - "id" : "fr_NE", - "name" : "French", - "region" : "Niger" - }, { - "id" : "fr_PF", - "name" : "French", - "region" : "French Polynesia" - }, { - "id" : "fr_PM", - "name" : "French", - "region" : "Saint Pierre and Miquelon" - }, { - "id" : "fr_RE", - "name" : "French", - "region" : "Réunion" - }, { - "id" : "fr_RW", - "name" : "French", - "region" : "Rwanda" - }, { - "id" : "fr_SC", - "name" : "French", - "region" : "Seychelles" - }, { - "id" : "fr_SN", - "name" : "French", - "region" : "Senegal" - }, { - "id" : "fr_SY", - "name" : "French", - "region" : "Syria" - }, { - "id" : "fr_TD", - "name" : "French", - "region" : "Chad" - }, { - "id" : "fr_TG", - "name" : "French", - "region" : "Togo" - }, { - "id" : "fr_TN", - "name" : "French", - "region" : "Tunisia" - }, { - "id" : "fr_VU", - "name" : "French", - "region" : "Vanuatu" - }, { - "id" : "fr_WF", - "name" : "French", - "region" : "Wallis and Futuna" - }, { - "id" : "fr_YT", - "name" : "French", - "region" : "Mayotte" - }, { - "id" : "ga", - "name" : "Irish" - }, { - "id" : "ga_IE", - "name" : "Irish", - "region" : "Ireland" - }, { - "id" : "gl", - "name" : "Galician" - }, { - "id" : "gl_ES", - "name" : "Galician", - "region" : "Spain" - }, { - "id" : "gsw", - "name" : "Swiss German" - }, { - "id" : "gsw_CH", - "name" : "Swiss German", - "region" : "Switzerland" - }, { - "id" : "gsw_LI", - "name" : "Swiss German", - "region" : "Liechtenstein" - }, { - "id" : "gu", - "name" : "Gujarati" - }, { - "id" : "gu_IN", - "name" : "Gujarati", - "region" : "India" - }, { - "id" : "guz", - "name" : "Gusii" - }, { - "id" : "guz_KE", - "name" : "Gusii", - "region" : "Kenya" - }, { - "id" : "gv", - "name" : "Manx" - }, { - "id" : "gv_IM", - "name" : "Manx", - "region" : "Isle of Man" - }, { - "id" : "ha", - "name" : "Hausa" - }, { - "id" : "ha_GH", - "name" : "Hausa", - "region" : "Ghana" - }, { - "id" : "ha_NE", - "name" : "Hausa", - "region" : "Niger" - }, { - "id" : "ha_NG", - "name" : "Hausa", - "region" : "Nigeria" - }, { - "id" : "haw", - "name" : "Hawaiian" - }, { - "id" : "haw_US", - "name" : "Hawaiian", - "region" : "United States" - }, { - "id" : "iw", - "name" : "Hebrew" - }, { - "id" : "iw_IL", - "name" : "Hebrew", - "region" : "Israel" - }, { - "id" : "hi", - "name" : "Hindi" - }, { - "id" : "hi_IN", - "name" : "Hindi", - "region" : "India" - }, { - "id" : "hr", - "name" : "Croatian" - }, { - "id" : "hr_BA", - "name" : "Croatian", - "region" : "Bosnia and Herzegovina" - }, { - "id" : "hr_HR", - "name" : "Croatian", - "region" : "Croatia" - }, { - "id" : "hu", - "name" : "Hungarian" - }, { - "id" : "hu_HU", - "name" : "Hungarian", - "region" : "Hungary" - }, { - "id" : "hy", - "name" : "Armenian" - }, { - "id" : "hy_AM", - "name" : "Armenian", - "region" : "Armenia" - }, { - "id" : "in", - "name" : "Indonesian" - }, { - "id" : "in_ID", - "name" : "Indonesian", - "region" : "Indonesia" - }, { - "id" : "ig", - "name" : "Igbo" - }, { - "id" : "ig_NG", - "name" : "Igbo", - "region" : "Nigeria" - }, { - "id" : "ii", - "name" : "Sichuan Yi" - }, { - "id" : "ii_CN", - "name" : "Sichuan Yi", - "region" : "China" - }, { - "id" : "is", - "name" : "Icelandic" - }, { - "id" : "is_IS", - "name" : "Icelandic", - "region" : "Iceland" - }, { - "id" : "it", - "name" : "Italian" - }, { - "id" : "it_CH", - "name" : "Italian", - "region" : "Switzerland" - }, { - "id" : "it_IT", - "name" : "Italian", - "region" : "Italy" - }, { - "id" : "it_SM", - "name" : "Italian", - "region" : "San Marino" - }, { - "id" : "ja", - "name" : "Japanese" - }, { - "id" : "ja_JP", - "name" : "Japanese", - "region" : "Japan" - }, { - "id" : "jgo", - "name" : "Ngomba" - }, { - "id" : "jgo_CM", - "name" : "Ngomba", - "region" : "Cameroon" - }, { - "id" : "jmc", - "name" : "Machame" - }, { - "id" : "jmc_TZ", - "name" : "Machame", - "region" : "Tanzania" - }, { - "id" : "ka", - "name" : "Georgian" - }, { - "id" : "ka_GE", - "name" : "Georgian", - "region" : "Georgia" - }, { - "id" : "kab", - "name" : "Kabyle" - }, { - "id" : "kab_DZ", - "name" : "Kabyle", - "region" : "Algeria" - }, { - "id" : "kam", - "name" : "Kamba" - }, { - "id" : "kam_KE", - "name" : "Kamba", - "region" : "Kenya" - }, { - "id" : "kde", - "name" : "Makonde" - }, { - "id" : "kde_TZ", - "name" : "Makonde", - "region" : "Tanzania" - }, { - "id" : "kea", - "name" : "Kabuverdianu" - }, { - "id" : "kea_CV", - "name" : "Kabuverdianu", - "region" : "Cape Verde" - }, { - "id" : "khq", - "name" : "Koyra Chiini" - }, { - "id" : "khq_ML", - "name" : "Koyra Chiini", - "region" : "Mali" - }, { - "id" : "ki", - "name" : "Kikuyu" - }, { - "id" : "ki_KE", - "name" : "Kikuyu", - "region" : "Kenya" - }, { - "id" : "kk", - "name" : "Kazakh" - }, { - "id" : "kk_KZ", - "name" : "Kazakh", - "region" : "Kazakhstan" - }, { - "id" : "kkj", - "name" : "Kako" - }, { - "id" : "kkj_CM", - "name" : "Kako", - "region" : "Cameroon" - }, { - "id" : "kl", - "name" : "Kalaallisut" - }, { - "id" : "kl_GL", - "name" : "Kalaallisut", - "region" : "Greenland" - }, { - "id" : "kln", - "name" : "Kalenjin" - }, { - "id" : "kln_KE", - "name" : "Kalenjin", - "region" : "Kenya" - }, { - "id" : "km", - "name" : "Khmer" - }, { - "id" : "km_KH", - "name" : "Khmer", - "region" : "Cambodia" - }, { - "id" : "kn", - "name" : "Kannada" - }, { - "id" : "kn_IN", - "name" : "Kannada", - "region" : "India" - }, { - "id" : "ko", - "name" : "Korean" - }, { - "id" : "ko_KP", - "name" : "Korean", - "region" : "North Korea" - }, { - "id" : "ko_KR", - "name" : "Korean", - "region" : "South Korea" - }, { - "id" : "kok", - "name" : "Konkani" - }, { - "id" : "kok_IN", - "name" : "Konkani", - "region" : "India" - }, { - "id" : "ks", - "name" : "Kashmiri" - }, { - "id" : "ks_IN", - "name" : "Kashmiri", - "region" : "India" - }, { - "id" : "ksb", - "name" : "Shambala" - }, { - "id" : "ksb_TZ", - "name" : "Shambala", - "region" : "Tanzania" - }, { - "id" : "ksf", - "name" : "Bafia" - }, { - "id" : "ksf_CM", - "name" : "Bafia", - "region" : "Cameroon" - }, { - "id" : "kw", - "name" : "Cornish" - }, { - "id" : "kw_GB", - "name" : "Cornish", - "region" : "United Kingdom" - }, { - "id" : "ky", - "name" : "Kyrgyz" - }, { - "id" : "ky_KG", - "name" : "Kyrgyz", - "region" : "Kyrgyzstan" - }, { - "id" : "lag", - "name" : "Langi" - }, { - "id" : "lag_TZ", - "name" : "Langi", - "region" : "Tanzania" - }, { - "id" : "lg", - "name" : "Ganda" - }, { - "id" : "lg_UG", - "name" : "Ganda", - "region" : "Uganda" - }, { - "id" : "lkt", - "name" : "Lakota" - }, { - "id" : "lkt_US", - "name" : "Lakota", - "region" : "United States" - }, { - "id" : "ln", - "name" : "Lingala" - }, { - "id" : "ln_AO", - "name" : "Lingala", - "region" : "Angola" - }, { - "id" : "ln_CD", - "name" : "Lingala", - "region" : "Congo (DRC)" - }, { - "id" : "ln_CF", - "name" : "Lingala", - "region" : "Central African Republic" - }, { - "id" : "ln_CG", - "name" : "Lingala", - "region" : "Congo (Republic)" - }, { - "id" : "lo", - "name" : "Lao" - }, { - "id" : "lo_LA", - "name" : "Lao", - "region" : "Laos" - }, { - "id" : "lt", - "name" : "Lithuanian" - }, { - "id" : "lt_LT", - "name" : "Lithuanian", - "region" : "Lithuania" - }, { - "id" : "lu", - "name" : "Luba-Katanga" - }, { - "id" : "lu_CD", - "name" : "Luba-Katanga", - "region" : "Congo (DRC)" - }, { - "id" : "luo", - "name" : "Luo" - }, { - "id" : "luo_KE", - "name" : "Luo", - "region" : "Kenya" - }, { - "id" : "luy", - "name" : "Luyia" - }, { - "id" : "luy_KE", - "name" : "Luyia", - "region" : "Kenya" - }, { - "id" : "lv", - "name" : "Latvian" - }, { - "id" : "lv_LV", - "name" : "Latvian", - "region" : "Latvia" - }, { - "id" : "mas", - "name" : "Masai" - }, { - "id" : "mas_KE", - "name" : "Masai", - "region" : "Kenya" - }, { - "id" : "mas_TZ", - "name" : "Masai", - "region" : "Tanzania" - }, { - "id" : "mer", - "name" : "Meru" - }, { - "id" : "mer_KE", - "name" : "Meru", - "region" : "Kenya" - }, { - "id" : "mfe", - "name" : "Morisyen" - }, { - "id" : "mfe_MU", - "name" : "Morisyen", - "region" : "Mauritius" - }, { - "id" : "mg", - "name" : "Malagasy" - }, { - "id" : "mg_MG", - "name" : "Malagasy", - "region" : "Madagascar" - }, { - "id" : "mgh", - "name" : "Makhuwa-Meetto" - }, { - "id" : "mgh_MZ", - "name" : "Makhuwa-Meetto", - "region" : "Mozambique" - }, { - "id" : "mgo", - "name" : "Meta'" - }, { - "id" : "mgo_CM", - "name" : "Meta'", - "region" : "Cameroon" - }, { - "id" : "mk", - "name" : "Macedonian" - }, { - "id" : "mk_MK", - "name" : "Macedonian", - "region" : "Macedonia (FYROM)" - }, { - "id" : "ml", - "name" : "Malayalam" - }, { - "id" : "ml_IN", - "name" : "Malayalam", - "region" : "India" - }, { - "id" : "mn", - "name" : "Mongolian" - }, { - "id" : "mn_MN", - "name" : "Mongolian", - "region" : "Mongolia" - }, { - "id" : "mr", - "name" : "Marathi" - }, { - "id" : "mr_IN", - "name" : "Marathi", - "region" : "India" - }, { - "id" : "ms", - "name" : "Malay" - }, { - "id" : "ms_BN", - "name" : "Malay", - "region" : "Brunei" - }, { - "id" : "ms_MY", - "name" : "Malay", - "region" : "Malaysia" - }, { - "id" : "ms_SG", - "name" : "Malay", - "region" : "Singapore" - }, { - "id" : "mt", - "name" : "Maltese" - }, { - "id" : "mt_MT", - "name" : "Maltese", - "region" : "Malta" - }, { - "id" : "mua", - "name" : "Mundang" - }, { - "id" : "mua_CM", - "name" : "Mundang", - "region" : "Cameroon" - }, { - "id" : "my", - "name" : "Burmese" - }, { - "id" : "my_MM", - "name" : "Burmese", - "region" : "Myanmar (Burma)" - }, { - "id" : "naq", - "name" : "Nama" - }, { - "id" : "naq_NA", - "name" : "Nama", - "region" : "Namibia" - }, { - "id" : "nb", - "name" : "Norwegian Bokmål" - }, { - "id" : "nb_NO", - "name" : "Norwegian Bokmål", - "region" : "Norway" - }, { - "id" : "nb_SJ", - "name" : "Norwegian Bokmål", - "region" : "Svalbard and Jan Mayen" - }, { - "id" : "nd", - "name" : "North Ndebele" - }, { - "id" : "nd_ZW", - "name" : "North Ndebele", - "region" : "Zimbabwe" - }, { - "id" : "ne", - "name" : "Nepali" - }, { - "id" : "ne_IN", - "name" : "Nepali", - "region" : "India" - }, { - "id" : "ne_NP", - "name" : "Nepali", - "region" : "Nepal" - }, { - "id" : "nl", - "name" : "Dutch" - }, { - "id" : "nl_AW", - "name" : "Dutch", - "region" : "Aruba" - }, { - "id" : "nl_BE", - "name" : "Dutch", - "region" : "Belgium" - }, { - "id" : "nl_BQ", - "name" : "Dutch", - "region" : "Caribbean Netherlands" - }, { - "id" : "nl_CW", - "name" : "Dutch", - "region" : "Curaçao" - }, { - "id" : "nl_NL", - "name" : "Dutch", - "region" : "Netherlands" - }, { - "id" : "nl_SR", - "name" : "Dutch", - "region" : "Suriname" - }, { - "id" : "nl_SX", - "name" : "Dutch", - "region" : "Sint Maarten" - }, { - "id" : "nmg", - "name" : "Kwasio" - }, { - "id" : "nmg_CM", - "name" : "Kwasio", - "region" : "Cameroon" - }, { - "id" : "nn", - "name" : "Norwegian Nynorsk" - }, { - "id" : "nn_NO", - "name" : "Norwegian Nynorsk", - "region" : "Norway" - }, { - "id" : "nnh", - "name" : "Ngiemboon" - }, { - "id" : "nnh_CM", - "name" : "Ngiemboon", - "region" : "Cameroon" - }, { - "id" : "nus", - "name" : "Nuer" - }, { - "id" : "nus_SD", - "name" : "Nuer", - "region" : "Sudan" - }, { - "id" : "nyn", - "name" : "Nyankole" - }, { - "id" : "nyn_UG", - "name" : "Nyankole", - "region" : "Uganda" - }, { - "id" : "om", - "name" : "Oromo" - }, { - "id" : "om_ET", - "name" : "Oromo", - "region" : "Ethiopia" - }, { - "id" : "om_KE", - "name" : "Oromo", - "region" : "Kenya" - }, { - "id" : "or", - "name" : "Oriya" - }, { - "id" : "or_IN", - "name" : "Oriya", - "region" : "India" - }, { - "id" : "pa", - "name" : "Punjabi" - }, { - "id" : "pa_PK", - "name" : "Punjabi", - "region" : "Pakistan" - }, { - "id" : "pa_IN", - "name" : "Punjabi", - "region" : "India" - }, { - "id" : "pl", - "name" : "Polish" - }, { - "id" : "pl_PL", - "name" : "Polish", - "region" : "Poland" - }, { - "id" : "ps", - "name" : "Pashto" - }, { - "id" : "ps_AF", - "name" : "Pashto", - "region" : "Afghanistan" - }, { - "id" : "pt", - "name" : "Portuguese" - }, { - "id" : "pt_AO", - "name" : "Portuguese", - "region" : "Angola" - }, { - "id" : "pt_BR", - "name" : "Portuguese", - "region" : "Brazil" - }, { - "id" : "pt_CV", - "name" : "Portuguese", - "region" : "Cape Verde" - }, { - "id" : "pt_GW", - "name" : "Portuguese", - "region" : "Guinea-Bissau" - }, { - "id" : "pt_MO", - "name" : "Portuguese", - "region" : "Macau" - }, { - "id" : "pt_MZ", - "name" : "Portuguese", - "region" : "Mozambique" - }, { - "id" : "pt_PT", - "name" : "Portuguese", - "region" : "Portugal" - }, { - "id" : "pt_ST", - "name" : "Portuguese", - "region" : "São Tomé and Príncipe" - }, { - "id" : "pt_TL", - "name" : "Portuguese", - "region" : "Timor-Leste" - }, { - "id" : "rm", - "name" : "Romansh" - }, { - "id" : "rm_CH", - "name" : "Romansh", - "region" : "Switzerland" - }, { - "id" : "rn", - "name" : "Rundi" - }, { - "id" : "rn_BI", - "name" : "Rundi", - "region" : "Burundi" - }, { - "id" : "ro", - "name" : "Romanian" - }, { - "id" : "ro_MD", - "name" : "Romanian", - "region" : "Moldova" - }, { - "id" : "ro_RO", - "name" : "Romanian", - "region" : "Romania" - }, { - "id" : "rof", - "name" : "Rombo" - }, { - "id" : "rof_TZ", - "name" : "Rombo", - "region" : "Tanzania" - }, { - "id" : "ru", - "name" : "Russian" - }, { - "id" : "ru_BY", - "name" : "Russian", - "region" : "Belarus" - }, { - "id" : "ru_KG", - "name" : "Russian", - "region" : "Kyrgyzstan" - }, { - "id" : "ru_KZ", - "name" : "Russian", - "region" : "Kazakhstan" - }, { - "id" : "ru_MD", - "name" : "Russian", - "region" : "Moldova" - }, { - "id" : "ru_RU", - "name" : "Russian", - "region" : "Russia" - }, { - "id" : "ru_UA", - "name" : "Russian", - "region" : "Ukraine" - }, { - "id" : "rw", - "name" : "Kinyarwanda" - }, { - "id" : "rw_RW", - "name" : "Kinyarwanda", - "region" : "Rwanda" - }, { - "id" : "rwk", - "name" : "Rwa" - }, { - "id" : "rwk_TZ", - "name" : "Rwa", - "region" : "Tanzania" - }, { - "id" : "saq", - "name" : "Samburu" - }, { - "id" : "saq_KE", - "name" : "Samburu", - "region" : "Kenya" - }, { - "id" : "sbp", - "name" : "Sangu" - }, { - "id" : "sbp_TZ", - "name" : "Sangu", - "region" : "Tanzania" - }, { - "id" : "seh", - "name" : "Sena" - }, { - "id" : "seh_MZ", - "name" : "Sena", - "region" : "Mozambique" - }, { - "id" : "ses", - "name" : "Koyraboro Senni" - }, { - "id" : "ses_ML", - "name" : "Koyraboro Senni", - "region" : "Mali" - }, { - "id" : "sg", - "name" : "Sango" - }, { - "id" : "sg_CF", - "name" : "Sango", - "region" : "Central African Republic" - }, { - "id" : "shi", - "name" : "Tachelhit" - }, { - "id" : "shi_MA", - "name" : "Tachelhit", - "region" : "Morocco" - }, { - "id" : "si", - "name" : "Sinhala" - }, { - "id" : "si_LK", - "name" : "Sinhala", - "region" : "Sri Lanka" - }, { - "id" : "sk", - "name" : "Slovak" - }, { - "id" : "sk_SK", - "name" : "Slovak", - "region" : "Slovakia" - }, { - "id" : "sl", - "name" : "Slovenian" - }, { - "id" : "sl_SI", - "name" : "Slovenian", - "region" : "Slovenia" - }, { - "id" : "sn", - "name" : "Shona" - }, { - "id" : "sn_ZW", - "name" : "Shona", - "region" : "Zimbabwe" - }, { - "id" : "so", - "name" : "Somali" - }, { - "id" : "so_DJ", - "name" : "Somali", - "region" : "Djibouti" - }, { - "id" : "so_ET", - "name" : "Somali", - "region" : "Ethiopia" - }, { - "id" : "so_KE", - "name" : "Somali", - "region" : "Kenya" - }, { - "id" : "so_SO", - "name" : "Somali", - "region" : "Somalia" - }, { - "id" : "sq", - "name" : "Albanian" - }, { - "id" : "sq_AL", - "name" : "Albanian", - "region" : "Albania" - }, { - "id" : "sq_MK", - "name" : "Albanian", - "region" : "Macedonia (FYROM)" - }, { - "id" : "sq_XK", - "name" : "Albanian", - "region" : "Kosovo" - }, { - "id" : "sr", - "name" : "Serbian" - }, { - "id" : "sr_BA", - "name" : "Serbian", - "region" : "Bosnia and Herzegovina" - }, { - "id" : "sr_ME", - "name" : "Serbian", - "region" : "Montenegro" - }, { - "id" : "sr_RS", - "name" : "Serbian", - "region" : "Serbia" - }, { - "id" : "sr_XK", - "name" : "Serbian", - "region" : "Kosovo" - }, { - "id" : "sv", - "name" : "Swedish" - }, { - "id" : "sv_AX", - "name" : "Swedish", - "region" : "Åland Islands" - }, { - "id" : "sv_FI", - "name" : "Swedish", - "region" : "Finland" - }, { - "id" : "sv_SE", - "name" : "Swedish", - "region" : "Sweden" - }, { - "id" : "sw", - "name" : "Swahili" - }, { - "id" : "sw_KE", - "name" : "Swahili", - "region" : "Kenya" - }, { - "id" : "sw_TZ", - "name" : "Swahili", - "region" : "Tanzania" - }, { - "id" : "sw_UG", - "name" : "Swahili", - "region" : "Uganda" - }, { - "id" : "swc", - "name" : "Congo Swahili" - }, { - "id" : "swc_CD", - "name" : "Congo Swahili", - "region" : "Congo (DRC)" - }, { - "id" : "ta", - "name" : "Tamil" - }, { - "id" : "ta_IN", - "name" : "Tamil", - "region" : "India" - }, { - "id" : "ta_LK", - "name" : "Tamil", - "region" : "Sri Lanka" - }, { - "id" : "ta_MY", - "name" : "Tamil", - "region" : "Malaysia" - }, { - "id" : "ta_SG", - "name" : "Tamil", - "region" : "Singapore" - }, { - "id" : "te", - "name" : "Telugu" - }, { - "id" : "te_IN", - "name" : "Telugu", - "region" : "India" - }, { - "id" : "teo", - "name" : "Teso" - }, { - "id" : "teo_KE", - "name" : "Teso", - "region" : "Kenya" - }, { - "id" : "teo_UG", - "name" : "Teso", - "region" : "Uganda" - }, { - "id" : "th", - "name" : "Thai" - }, { - "id" : "th_TH", - "name" : "Thai", - "region" : "Thailand" - }, { - "id" : "ti", - "name" : "Tigrinya" - }, { - "id" : "ti_ER", - "name" : "Tigrinya", - "region" : "Eritrea" - }, { - "id" : "ti_ET", - "name" : "Tigrinya", - "region" : "Ethiopia" - }, { - "id" : "to", - "name" : "Tongan" - }, { - "id" : "to_TO", - "name" : "Tongan", - "region" : "Tonga" - }, { - "id" : "tr", - "name" : "Turkish" - }, { - "id" : "tr_CY", - "name" : "Turkish", - "region" : "Cyprus" - }, { - "id" : "tr_TR", - "name" : "Turkish", - "region" : "Turkey" - }, { - "id" : "twq", - "name" : "Tasawaq" - }, { - "id" : "twq_NE", - "name" : "Tasawaq", - "region" : "Niger" - }, { - "id" : "tzm", - "name" : "Central Atlas Tamazight" - }, { - "id" : "tzm_MA", - "name" : "Central Atlas Tamazight", - "region" : "Morocco" - }, { - "id" : "ug", - "name" : "Uyghur" - }, { - "id" : "ug_CN", - "name" : "Uyghur", - "region" : "China" - }, { - "id" : "uk", - "name" : "Ukrainian" - }, { - "id" : "uk_UA", - "name" : "Ukrainian", - "region" : "Ukraine" - }, { - "id" : "ur", - "name" : "Urdu" - }, { - "id" : "ur_IN", - "name" : "Urdu", - "region" : "India" - }, { - "id" : "ur_PK", - "name" : "Urdu", - "region" : "Pakistan" - }, { - "id" : "uz", - "name" : "Uzbek" - }, { - "id" : "uz_AF", - "name" : "Uzbek", - "region" : "Afghanistan" - }, { - "id" : "uz_UZ", - "name" : "Uzbek", - "region" : "Uzbekistan" - }, { - "id" : "vai", - "name" : "Vai" - }, { - "id" : "vai_LR", - "name" : "Vai", - "region" : "Liberia" - }, { - "id" : "vi", - "name" : "Vietnamese" - }, { - "id" : "vi_VN", - "name" : "Vietnamese", - "region" : "Vietnam" - }, { - "id" : "vun", - "name" : "Vunjo" - }, { - "id" : "vun_TZ", - "name" : "Vunjo", - "region" : "Tanzania" - }, { - "id" : "xog", - "name" : "Soga" - }, { - "id" : "xog_UG", - "name" : "Soga", - "region" : "Uganda" - }, { - "id" : "yav", - "name" : "Yangben" - }, { - "id" : "yav_CM", - "name" : "Yangben", - "region" : "Cameroon" - }, { - "id" : "yo", - "name" : "Yoruba" - }, { - "id" : "yo_BJ", - "name" : "Yoruba", - "region" : "Benin" - }, { - "id" : "yo_NG", - "name" : "Yoruba", - "region" : "Nigeria" - }, { - "id" : "zgh", - "name" : "Standard Moroccan Tamazight" - }, { - "id" : "zgh_MA", - "name" : "Standard Moroccan Tamazight", - "region" : "Morocco" - }, { - "id" : "zh", - "name" : "Chinese" - }, { - "id" : "zh_CN", - "name" : "Chinese", - "region" : "China" - }, { - "id" : "zh_HK", - "name" : "Chinese", - "region" : "Hong Kong" - }, { - "id" : "zh_MO", - "name" : "Chinese", - "region" : "Macau" - }, { - "id" : "zh_SG", - "name" : "Chinese", - "region" : "Singapore" - }, { - "id" : "zh_TW", - "name" : "Chinese", - "region" : "Taiwan" - }, { - "id" : "zu", - "name" : "Zulu" - }, { - "id" : "zu_ZA", - "name" : "Zulu", - "region" : "South Africa" - } ], - "orientations" : [ { - "id" : "landscape", - "name" : "Landscape" - }, { - "id" : "portrait", - "name" : "Portrait", - "tags" : [ "default" ] - }, { - "id" : "default", - "name" : "Default" - } ] + "models": [ + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit" + ], + "formFactor": "TABLET", + "id": "ipad5", + "name": "iPad (5th generation)", + "screenDensity": 264, + "screenX": 1536, + "screenY": 2048, + "supportedVersionIds": [ + "11.2", + "12.0", + "14.1" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi" + ], + "formFactor": "TABLET", + "id": "ipadmini4", + "name": "iPad mini 4", + "screenDensity": 326, + "screenX": 1536, + "screenY": 2048, + "supportedVersionIds": [ + "11.2", + "12.0", + "14.1" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash" + ], + "formFactor": "TABLET", + "id": "ipadpro_105", + "name": "iPad Pro (10.5-inch)", + "screenDensity": 264, + "screenX": 1668, + "screenY": 2224, + "supportedVersionIds": [ + "11.2" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone11", + "name": "iPhone 11", + "screenDensity": 326, + "screenX": 828, + "screenY": 1792, + "supportedVersionIds": [ + "13.3", + "13.6" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone11pro", + "name": "iPhone 11 Pro", + "screenDensity": 458, + "screenX": 1125, + "screenY": 2436, + "supportedVersionIds": [ + "13.3", + "14.1" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "camera-flash", + "gps", + "healthkit", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone6", + "name": "iPhone 6", + "screenDensity": 326, + "screenX": 750, + "screenY": 1334, + "supportedVersionIds": [ + "11.4" + ], + "tags": [ + "deprecated=11.4" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone6s", + "name": "iPhone 6s", + "screenDensity": 326, + "screenX": 750, + "screenY": 1334, + "supportedVersionIds": [ + "10.3", + "11.2", + "11.4", + "12.0" + ], + "tags": [ + "deprecated=10.3", + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone7", + "name": "iPhone 7", + "screenDensity": 326, + "screenX": 750, + "screenY": 1334, + "supportedVersionIds": [ + "11.2", + "11.4", + "12.0", + "12.3" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone7plus", + "name": "iPhone 7 Plus", + "screenDensity": 401, + "screenX": 1080, + "screenY": 1920, + "supportedVersionIds": [ + "11.2", + "11.4", + "12.0", + "14.1" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone8", + "name": "iPhone 8", + "screenDensity": 326, + "screenX": 750, + "screenY": 1334, + "supportedVersionIds": [ + "11.2", + "11.4", + "12.4", + "13.6", + "14.1" + ], + "tags": [ + "deprecated=11.2", + "default" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphone8plus", + "name": "iPhone 8 Plus", + "screenDensity": 401, + "screenX": 1080, + "screenY": 1920, + "supportedVersionIds": [ + "11.2", + "11.4", + "12.0", + "12.3" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphonese", + "name": "iPhone SE", + "screenDensity": 326, + "screenX": 640, + "screenY": 1136, + "supportedVersionIds": [ + "11.2", + "11.4", + "12.0", + "12.3" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphonex", + "name": "iPhone X", + "screenDensity": 458, + "screenX": 1125, + "screenY": 2436, + "supportedVersionIds": [ + "11.2", + "11.4" + ], + "tags": [ + "deprecated=11.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphonexr", + "name": "iPhone XR", + "screenDensity": 326, + "screenX": 828, + "screenY": 1792, + "supportedVersionIds": [ + "13.2" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphonexs", + "name": "iPhone XS", + "screenDensity": 458, + "screenX": 1125, + "screenY": 2436, + "supportedVersionIds": [ + "12.0" + ] + }, + { + "deviceCapabilities": [ + "accelerometer", + "arm64", + "armv6", + "armv7", + "auto-focus-camera", + "bluetooth-le", + "front-facing-camera", + "gamekit", + "gyroscope", + "location-services", + "magnetometer", + "metal", + "microphone", + "opengles-1", + "opengles-2", + "opengles-3", + "peer-peer", + "still-camera", + "video-camera", + "wifi", + "arkit", + "camera-flash", + "gps", + "healthkit", + "nfc", + "sms", + "telephony" + ], + "formFactor": "PHONE", + "id": "iphonexsmax", + "name": "iPhone XS Max", + "screenDensity": 458, + "screenX": 1242, + "screenY": 2688, + "supportedVersionIds": [ + "12.0", + "12.1", + "12.3" + ] + } + ], + "runtimeConfiguration": { + "locales": [ + { + "id": "af", + "name": "Afrikaans" + }, + { + "id": "af_NA", + "name": "Afrikaans", + "region": "Namibia" + }, + { + "id": "af_ZA", + "name": "Afrikaans", + "region": "South Africa" + }, + { + "id": "agq", + "name": "Aghem" + }, + { + "id": "agq_CM", + "name": "Aghem", + "region": "Cameroon" + }, + { + "id": "ak", + "name": "Akan" + }, + { + "id": "ak_GH", + "name": "Akan", + "region": "Ghana" + }, + { + "id": "am", + "name": "Amharic" + }, + { + "id": "am_ET", + "name": "Amharic", + "region": "Ethiopia" + }, + { + "id": "ar", + "name": "Arabic" + }, + { + "id": "ar_001", + "name": "Arabic", + "region": "World" + }, + { + "id": "ar_AE", + "name": "Arabic", + "region": "United Arab Emirates" + }, + { + "id": "ar_BH", + "name": "Arabic", + "region": "Bahrain" + }, + { + "id": "ar_DJ", + "name": "Arabic", + "region": "Djibouti" + }, + { + "id": "ar_DZ", + "name": "Arabic", + "region": "Algeria" + }, + { + "id": "ar_EG", + "name": "Arabic", + "region": "Egypt" + }, + { + "id": "ar_EH", + "name": "Arabic", + "region": "Western Sahara" + }, + { + "id": "ar_ER", + "name": "Arabic", + "region": "Eritrea" + }, + { + "id": "ar_IL", + "name": "Arabic", + "region": "Israel" + }, + { + "id": "ar_IQ", + "name": "Arabic", + "region": "Iraq" + }, + { + "id": "ar_JO", + "name": "Arabic", + "region": "Jordan" + }, + { + "id": "ar_KM", + "name": "Arabic", + "region": "Comoros" + }, + { + "id": "ar_KW", + "name": "Arabic", + "region": "Kuwait" + }, + { + "id": "ar_LB", + "name": "Arabic", + "region": "Lebanon" + }, + { + "id": "ar_LY", + "name": "Arabic", + "region": "Libya" + }, + { + "id": "ar_MA", + "name": "Arabic", + "region": "Morocco" + }, + { + "id": "ar_MR", + "name": "Arabic", + "region": "Mauritania" + }, + { + "id": "ar_OM", + "name": "Arabic", + "region": "Oman" + }, + { + "id": "ar_PS", + "name": "Arabic", + "region": "Palestine" + }, + { + "id": "ar_QA", + "name": "Arabic", + "region": "Qatar" + }, + { + "id": "ar_SA", + "name": "Arabic", + "region": "Saudi Arabia" + }, + { + "id": "ar_SD", + "name": "Arabic", + "region": "Sudan" + }, + { + "id": "ar_SO", + "name": "Arabic", + "region": "Somalia" + }, + { + "id": "ar_SS", + "name": "Arabic", + "region": "South Sudan" + }, + { + "id": "ar_SY", + "name": "Arabic", + "region": "Syria" + }, + { + "id": "ar_TD", + "name": "Arabic", + "region": "Chad" + }, + { + "id": "ar_TN", + "name": "Arabic", + "region": "Tunisia" + }, + { + "id": "ar_YE", + "name": "Arabic", + "region": "Yemen" + }, + { + "id": "as", + "name": "Assamese" + }, + { + "id": "as_IN", + "name": "Assamese", + "region": "India" + }, + { + "id": "asa", + "name": "Asu" + }, + { + "id": "asa_TZ", + "name": "Asu", + "region": "Tanzania" + }, + { + "id": "az", + "name": "Azerbaijani" + }, + { + "id": "az_AZ", + "name": "Azerbaijani", + "region": "Azerbaijan" + }, + { + "id": "bas", + "name": "Basaa" + }, + { + "id": "bas_CM", + "name": "Basaa", + "region": "Cameroon" + }, + { + "id": "be", + "name": "Belarusian" + }, + { + "id": "be_BY", + "name": "Belarusian", + "region": "Belarus" + }, + { + "id": "bem", + "name": "Bemba" + }, + { + "id": "bem_ZM", + "name": "Bemba", + "region": "Zambia" + }, + { + "id": "bez", + "name": "Bena" + }, + { + "id": "bez_TZ", + "name": "Bena", + "region": "Tanzania" + }, + { + "id": "bg", + "name": "Bulgarian" + }, + { + "id": "bg_BG", + "name": "Bulgarian", + "region": "Bulgaria" + }, + { + "id": "bm", + "name": "Bambara" + }, + { + "id": "bm_ML", + "name": "Bambara", + "region": "Mali" + }, + { + "id": "bn", + "name": "Bengali" + }, + { + "id": "bn_BD", + "name": "Bengali", + "region": "Bangladesh" + }, + { + "id": "bn_IN", + "name": "Bengali", + "region": "India" + }, + { + "id": "bo", + "name": "Tibetan" + }, + { + "id": "bo_CN", + "name": "Tibetan", + "region": "China" + }, + { + "id": "bo_IN", + "name": "Tibetan", + "region": "India" + }, + { + "id": "br", + "name": "Breton" + }, + { + "id": "br_FR", + "name": "Breton", + "region": "France" + }, + { + "id": "brx", + "name": "Bodo" + }, + { + "id": "brx_IN", + "name": "Bodo", + "region": "India" + }, + { + "id": "bs", + "name": "Bosnian" + }, + { + "id": "bs_BA", + "name": "Bosnian", + "region": "Bosnia and Herzegovina" + }, + { + "id": "ca", + "name": "Catalan" + }, + { + "id": "ca_AD", + "name": "Catalan", + "region": "Andorra" + }, + { + "id": "ca_ES", + "name": "Catalan", + "region": "Spain" + }, + { + "id": "ca_FR", + "name": "Catalan", + "region": "France" + }, + { + "id": "ca_IT", + "name": "Catalan", + "region": "Italy" + }, + { + "id": "cgg", + "name": "Chiga" + }, + { + "id": "cgg_UG", + "name": "Chiga", + "region": "Uganda" + }, + { + "id": "chr", + "name": "Cherokee" + }, + { + "id": "chr_US", + "name": "Cherokee", + "region": "United States" + }, + { + "id": "cs", + "name": "Czech" + }, + { + "id": "cs_CZ", + "name": "Czech", + "region": "Czech Republic" + }, + { + "id": "cy", + "name": "Welsh" + }, + { + "id": "cy_GB", + "name": "Welsh", + "region": "United Kingdom" + }, + { + "id": "da", + "name": "Danish" + }, + { + "id": "da_DK", + "name": "Danish", + "region": "Denmark" + }, + { + "id": "da_GL", + "name": "Danish", + "region": "Greenland" + }, + { + "id": "dav", + "name": "Taita" + }, + { + "id": "dav_KE", + "name": "Taita", + "region": "Kenya" + }, + { + "id": "de", + "name": "German" + }, + { + "id": "de_AT", + "name": "German", + "region": "Austria" + }, + { + "id": "de_BE", + "name": "German", + "region": "Belgium" + }, + { + "id": "de_CH", + "name": "German", + "region": "Switzerland" + }, + { + "id": "de_DE", + "name": "German", + "region": "Germany" + }, + { + "id": "de_LI", + "name": "German", + "region": "Liechtenstein" + }, + { + "id": "de_LU", + "name": "German", + "region": "Luxembourg" + }, + { + "id": "dje", + "name": "Zarma" + }, + { + "id": "dje_NE", + "name": "Zarma", + "region": "Niger" + }, + { + "id": "dua", + "name": "Duala" + }, + { + "id": "dua_CM", + "name": "Duala", + "region": "Cameroon" + }, + { + "id": "dyo", + "name": "Jola-Fonyi" + }, + { + "id": "dyo_SN", + "name": "Jola-Fonyi", + "region": "Senegal" + }, + { + "id": "dz", + "name": "Dzongkha" + }, + { + "id": "dz_BT", + "name": "Dzongkha", + "region": "Bhutan" + }, + { + "id": "ebu", + "name": "Embu" + }, + { + "id": "ebu_KE", + "name": "Embu", + "region": "Kenya" + }, + { + "id": "ee", + "name": "Ewe" + }, + { + "id": "ee_GH", + "name": "Ewe", + "region": "Ghana" + }, + { + "id": "ee_TG", + "name": "Ewe", + "region": "Togo" + }, + { + "id": "el", + "name": "Greek" + }, + { + "id": "el_CY", + "name": "Greek", + "region": "Cyprus" + }, + { + "id": "el_GR", + "name": "Greek", + "region": "Greece" + }, + { + "id": "en", + "name": "English", + "tags": [ + "default" + ] + }, + { + "id": "en_001", + "name": "English", + "region": "World" + }, + { + "id": "en_150", + "name": "English", + "region": "Europe" + }, + { + "id": "en_AG", + "name": "English", + "region": "Antigua and Barbuda" + }, + { + "id": "en_AI", + "name": "English", + "region": "Anguilla" + }, + { + "id": "en_AS", + "name": "English", + "region": "American Samoa" + }, + { + "id": "en_AU", + "name": "English", + "region": "Australia" + }, + { + "id": "en_BB", + "name": "English", + "region": "Barbados" + }, + { + "id": "en_BE", + "name": "English", + "region": "Belgium" + }, + { + "id": "en_BM", + "name": "English", + "region": "Bermuda" + }, + { + "id": "en_BS", + "name": "English", + "region": "Bahamas" + }, + { + "id": "en_BW", + "name": "English", + "region": "Botswana" + }, + { + "id": "en_BZ", + "name": "English", + "region": "Belize" + }, + { + "id": "en_CA", + "name": "English", + "region": "Canada" + }, + { + "id": "en_CC", + "name": "English", + "region": "Cocos (Keeling) Islands" + }, + { + "id": "en_CK", + "name": "English", + "region": "Cook Islands" + }, + { + "id": "en_CM", + "name": "English", + "region": "Cameroon" + }, + { + "id": "en_CX", + "name": "English", + "region": "Christmas Island" + }, + { + "id": "en_DG", + "name": "English", + "region": "Diego Garcia" + }, + { + "id": "en_DM", + "name": "English", + "region": "Dominica" + }, + { + "id": "en_ER", + "name": "English", + "region": "Eritrea" + }, + { + "id": "en_FJ", + "name": "English", + "region": "Fiji" + }, + { + "id": "en_FK", + "name": "English", + "region": "Falkland Islands (Islas Malvinas)" + }, + { + "id": "en_FM", + "name": "English", + "region": "Micronesia" + }, + { + "id": "en_GB", + "name": "English", + "region": "United Kingdom" + }, + { + "id": "en_GD", + "name": "English", + "region": "Grenada" + }, + { + "id": "en_GG", + "name": "English", + "region": "Guernsey" + }, + { + "id": "en_GH", + "name": "English", + "region": "Ghana" + }, + { + "id": "en_GI", + "name": "English", + "region": "Gibraltar" + }, + { + "id": "en_GM", + "name": "English", + "region": "Gambia" + }, + { + "id": "en_GU", + "name": "English", + "region": "Guam" + }, + { + "id": "en_GY", + "name": "English", + "region": "Guyana" + }, + { + "id": "en_HK", + "name": "English", + "region": "Hong Kong" + }, + { + "id": "en_IE", + "name": "English", + "region": "Ireland" + }, + { + "id": "en_IM", + "name": "English", + "region": "Isle of Man" + }, + { + "id": "en_IN", + "name": "English", + "region": "India" + }, + { + "id": "en_IO", + "name": "English", + "region": "British Indian Ocean Territory" + }, + { + "id": "en_JE", + "name": "English", + "region": "Jersey" + }, + { + "id": "en_JM", + "name": "English", + "region": "Jamaica" + }, + { + "id": "en_KE", + "name": "English", + "region": "Kenya" + }, + { + "id": "en_KI", + "name": "English", + "region": "Kiribati" + }, + { + "id": "en_KN", + "name": "English", + "region": "Saint Kitts and Nevis" + }, + { + "id": "en_KY", + "name": "English", + "region": "Cayman Islands" + }, + { + "id": "en_LC", + "name": "English", + "region": "Saint Lucia" + }, + { + "id": "en_LR", + "name": "English", + "region": "Liberia" + }, + { + "id": "en_LS", + "name": "English", + "region": "Lesotho" + }, + { + "id": "en_MG", + "name": "English", + "region": "Madagascar" + }, + { + "id": "en_MH", + "name": "English", + "region": "Marshall Islands" + }, + { + "id": "en_MO", + "name": "English", + "region": "Macau" + }, + { + "id": "en_MP", + "name": "English", + "region": "Northern Mariana Islands" + }, + { + "id": "en_MS", + "name": "English", + "region": "Montserrat" + }, + { + "id": "en_MT", + "name": "English", + "region": "Malta" + }, + { + "id": "en_MU", + "name": "English", + "region": "Mauritius" + }, + { + "id": "en_MW", + "name": "English", + "region": "Malawi" + }, + { + "id": "en_NA", + "name": "English", + "region": "Namibia" + }, + { + "id": "en_NF", + "name": "English", + "region": "Norfolk Island" + }, + { + "id": "en_NG", + "name": "English", + "region": "Nigeria" + }, + { + "id": "en_NR", + "name": "English", + "region": "Nauru" + }, + { + "id": "en_NU", + "name": "English", + "region": "Niue" + }, + { + "id": "en_NZ", + "name": "English", + "region": "New Zealand" + }, + { + "id": "en_PG", + "name": "English", + "region": "Papua New Guinea" + }, + { + "id": "en_PH", + "name": "English", + "region": "Philippines" + }, + { + "id": "en_PK", + "name": "English", + "region": "Pakistan" + }, + { + "id": "en_PN", + "name": "English", + "region": "Pitcairn Islands" + }, + { + "id": "en_PR", + "name": "English", + "region": "Puerto Rico" + }, + { + "id": "en_PW", + "name": "English", + "region": "Palau" + }, + { + "id": "en_RW", + "name": "English", + "region": "Rwanda" + }, + { + "id": "en_SB", + "name": "English", + "region": "Solomon Islands" + }, + { + "id": "en_SC", + "name": "English", + "region": "Seychelles" + }, + { + "id": "en_SD", + "name": "English", + "region": "Sudan" + }, + { + "id": "en_SG", + "name": "English", + "region": "Singapore" + }, + { + "id": "en_SH", + "name": "English", + "region": "Saint Helena" + }, + { + "id": "en_SL", + "name": "English", + "region": "Sierra Leone" + }, + { + "id": "en_SS", + "name": "English", + "region": "South Sudan" + }, + { + "id": "en_SX", + "name": "English", + "region": "Sint Maarten" + }, + { + "id": "en_SZ", + "name": "English", + "region": "Swaziland" + }, + { + "id": "en_TC", + "name": "English", + "region": "Turks and Caicos Islands" + }, + { + "id": "en_TK", + "name": "English", + "region": "Tokelau" + }, + { + "id": "en_TO", + "name": "English", + "region": "Tonga" + }, + { + "id": "en_TT", + "name": "English", + "region": "Trinidad and Tobago" + }, + { + "id": "en_TV", + "name": "English", + "region": "Tuvalu" + }, + { + "id": "en_TZ", + "name": "English", + "region": "Tanzania" + }, + { + "id": "en_UG", + "name": "English", + "region": "Uganda" + }, + { + "id": "en_UM", + "name": "English", + "region": "U.S. Outlying Islands" + }, + { + "id": "en_US", + "name": "English", + "region": "United States" + }, + { + "id": "en_VC", + "name": "English", + "region": "St. Vincent & Grenadines" + }, + { + "id": "en_VG", + "name": "English", + "region": "British Virgin Islands" + }, + { + "id": "en_VI", + "name": "English", + "region": "U.S. Virgin Islands" + }, + { + "id": "en_VU", + "name": "English", + "region": "Vanuatu" + }, + { + "id": "en_WS", + "name": "English", + "region": "Samoa" + }, + { + "id": "en_ZA", + "name": "English", + "region": "South Africa" + }, + { + "id": "en_ZM", + "name": "English", + "region": "Zambia" + }, + { + "id": "en_ZW", + "name": "English", + "region": "Zimbabwe" + }, + { + "id": "eo", + "name": "Esperanto" + }, + { + "id": "es", + "name": "Spanish" + }, + { + "id": "es_419", + "name": "Spanish", + "region": "Latin America" + }, + { + "id": "es_AR", + "name": "Spanish", + "region": "Argentina" + }, + { + "id": "es_BO", + "name": "Spanish", + "region": "Bolivia" + }, + { + "id": "es_CL", + "name": "Spanish", + "region": "Chile" + }, + { + "id": "es_CO", + "name": "Spanish", + "region": "Colombia" + }, + { + "id": "es_CR", + "name": "Spanish", + "region": "Costa Rica" + }, + { + "id": "es_CU", + "name": "Spanish", + "region": "Cuba" + }, + { + "id": "es_DO", + "name": "Spanish", + "region": "Dominican Republic" + }, + { + "id": "es_EA", + "name": "Spanish", + "region": "Ceuta and Melilla" + }, + { + "id": "es_EC", + "name": "Spanish", + "region": "Ecuador" + }, + { + "id": "es_ES", + "name": "Spanish", + "region": "Spain" + }, + { + "id": "es_GQ", + "name": "Spanish", + "region": "Equatorial Guinea" + }, + { + "id": "es_GT", + "name": "Spanish", + "region": "Guatemala" + }, + { + "id": "es_HN", + "name": "Spanish", + "region": "Honduras" + }, + { + "id": "es_IC", + "name": "Spanish", + "region": "Canary Islands" + }, + { + "id": "es_MX", + "name": "Spanish", + "region": "Mexico" + }, + { + "id": "es_NI", + "name": "Spanish", + "region": "Nicaragua" + }, + { + "id": "es_PA", + "name": "Spanish", + "region": "Panama" + }, + { + "id": "es_PE", + "name": "Spanish", + "region": "Peru" + }, + { + "id": "es_PH", + "name": "Spanish", + "region": "Philippines" + }, + { + "id": "es_PR", + "name": "Spanish", + "region": "Puerto Rico" + }, + { + "id": "es_PY", + "name": "Spanish", + "region": "Paraguay" + }, + { + "id": "es_SV", + "name": "Spanish", + "region": "El Salvador" + }, + { + "id": "es_US", + "name": "Spanish", + "region": "United States" + }, + { + "id": "es_UY", + "name": "Spanish", + "region": "Uruguay" + }, + { + "id": "es_VE", + "name": "Spanish", + "region": "Venezuela" + }, + { + "id": "et", + "name": "Estonian" + }, + { + "id": "et_EE", + "name": "Estonian", + "region": "Estonia" + }, + { + "id": "eu", + "name": "Basque" + }, + { + "id": "eu_ES", + "name": "Basque", + "region": "Spain" + }, + { + "id": "ewo", + "name": "Ewondo" + }, + { + "id": "ewo_CM", + "name": "Ewondo", + "region": "Cameroon" + }, + { + "id": "fa", + "name": "Persian" + }, + { + "id": "fa_AF", + "name": "Persian", + "region": "Afghanistan" + }, + { + "id": "fa_IR", + "name": "Persian", + "region": "Iran" + }, + { + "id": "ff", + "name": "Fulah" + }, + { + "id": "ff_SN", + "name": "Fulah", + "region": "Senegal" + }, + { + "id": "fi", + "name": "Finnish" + }, + { + "id": "fi_FI", + "name": "Finnish", + "region": "Finland" + }, + { + "id": "fil", + "name": "Filipino" + }, + { + "id": "fil_PH", + "name": "Filipino", + "region": "Philippines" + }, + { + "id": "fo", + "name": "Faroese" + }, + { + "id": "fo_FO", + "name": "Faroese", + "region": "Faroe Islands" + }, + { + "id": "fr", + "name": "French" + }, + { + "id": "fr_BE", + "name": "French", + "region": "Belgium" + }, + { + "id": "fr_BF", + "name": "French", + "region": "Burkina Faso" + }, + { + "id": "fr_BI", + "name": "French", + "region": "Burundi" + }, + { + "id": "fr_BJ", + "name": "French", + "region": "Benin" + }, + { + "id": "fr_BL", + "name": "French", + "region": "Saint Barthélemy" + }, + { + "id": "fr_CA", + "name": "French", + "region": "Canada" + }, + { + "id": "fr_CD", + "name": "French", + "region": "Congo (DRC)" + }, + { + "id": "fr_CF", + "name": "French", + "region": "Central African Republic" + }, + { + "id": "fr_CG", + "name": "French", + "region": "Congo (Republic)" + }, + { + "id": "fr_CH", + "name": "French", + "region": "Switzerland" + }, + { + "id": "fr_CI", + "name": "French", + "region": "Côte d’Ivoire" + }, + { + "id": "fr_CM", + "name": "French", + "region": "Cameroon" + }, + { + "id": "fr_DJ", + "name": "French", + "region": "Djibouti" + }, + { + "id": "fr_DZ", + "name": "French", + "region": "Algeria" + }, + { + "id": "fr_FR", + "name": "French", + "region": "France" + }, + { + "id": "fr_GA", + "name": "French", + "region": "Gabon" + }, + { + "id": "fr_GF", + "name": "French", + "region": "French Guiana" + }, + { + "id": "fr_GN", + "name": "French", + "region": "Guinea" + }, + { + "id": "fr_GP", + "name": "French", + "region": "Guadeloupe" + }, + { + "id": "fr_GQ", + "name": "French", + "region": "Equatorial Guinea" + }, + { + "id": "fr_HT", + "name": "French", + "region": "Haiti" + }, + { + "id": "fr_KM", + "name": "French", + "region": "Comoros" + }, + { + "id": "fr_LU", + "name": "French", + "region": "Luxembourg" + }, + { + "id": "fr_MA", + "name": "French", + "region": "Morocco" + }, + { + "id": "fr_MC", + "name": "French", + "region": "Monaco" + }, + { + "id": "fr_MF", + "name": "French", + "region": "Saint Martin" + }, + { + "id": "fr_MG", + "name": "French", + "region": "Madagascar" + }, + { + "id": "fr_ML", + "name": "French", + "region": "Mali" + }, + { + "id": "fr_MQ", + "name": "French", + "region": "Martinique" + }, + { + "id": "fr_MR", + "name": "French", + "region": "Mauritania" + }, + { + "id": "fr_MU", + "name": "French", + "region": "Mauritius" + }, + { + "id": "fr_NC", + "name": "French", + "region": "New Caledonia" + }, + { + "id": "fr_NE", + "name": "French", + "region": "Niger" + }, + { + "id": "fr_PF", + "name": "French", + "region": "French Polynesia" + }, + { + "id": "fr_PM", + "name": "French", + "region": "Saint Pierre and Miquelon" + }, + { + "id": "fr_RE", + "name": "French", + "region": "Réunion" + }, + { + "id": "fr_RW", + "name": "French", + "region": "Rwanda" + }, + { + "id": "fr_SC", + "name": "French", + "region": "Seychelles" + }, + { + "id": "fr_SN", + "name": "French", + "region": "Senegal" + }, + { + "id": "fr_SY", + "name": "French", + "region": "Syria" + }, + { + "id": "fr_TD", + "name": "French", + "region": "Chad" + }, + { + "id": "fr_TG", + "name": "French", + "region": "Togo" + }, + { + "id": "fr_TN", + "name": "French", + "region": "Tunisia" + }, + { + "id": "fr_VU", + "name": "French", + "region": "Vanuatu" + }, + { + "id": "fr_WF", + "name": "French", + "region": "Wallis and Futuna" + }, + { + "id": "fr_YT", + "name": "French", + "region": "Mayotte" + }, + { + "id": "ga", + "name": "Irish" + }, + { + "id": "ga_IE", + "name": "Irish", + "region": "Ireland" + }, + { + "id": "gl", + "name": "Galician" + }, + { + "id": "gl_ES", + "name": "Galician", + "region": "Spain" + }, + { + "id": "gsw", + "name": "Swiss German" + }, + { + "id": "gsw_CH", + "name": "Swiss German", + "region": "Switzerland" + }, + { + "id": "gsw_LI", + "name": "Swiss German", + "region": "Liechtenstein" + }, + { + "id": "gu", + "name": "Gujarati" + }, + { + "id": "gu_IN", + "name": "Gujarati", + "region": "India" + }, + { + "id": "guz", + "name": "Gusii" + }, + { + "id": "guz_KE", + "name": "Gusii", + "region": "Kenya" + }, + { + "id": "gv", + "name": "Manx" + }, + { + "id": "gv_IM", + "name": "Manx", + "region": "Isle of Man" + }, + { + "id": "ha", + "name": "Hausa" + }, + { + "id": "ha_GH", + "name": "Hausa", + "region": "Ghana" + }, + { + "id": "ha_NE", + "name": "Hausa", + "region": "Niger" + }, + { + "id": "ha_NG", + "name": "Hausa", + "region": "Nigeria" + }, + { + "id": "haw", + "name": "Hawaiian" + }, + { + "id": "haw_US", + "name": "Hawaiian", + "region": "United States" + }, + { + "id": "iw", + "name": "Hebrew" + }, + { + "id": "iw_IL", + "name": "Hebrew", + "region": "Israel" + }, + { + "id": "hi", + "name": "Hindi" + }, + { + "id": "hi_IN", + "name": "Hindi", + "region": "India" + }, + { + "id": "hr", + "name": "Croatian" + }, + { + "id": "hr_BA", + "name": "Croatian", + "region": "Bosnia and Herzegovina" + }, + { + "id": "hr_HR", + "name": "Croatian", + "region": "Croatia" + }, + { + "id": "hu", + "name": "Hungarian" + }, + { + "id": "hu_HU", + "name": "Hungarian", + "region": "Hungary" + }, + { + "id": "hy", + "name": "Armenian" + }, + { + "id": "hy_AM", + "name": "Armenian", + "region": "Armenia" + }, + { + "id": "in", + "name": "Indonesian" + }, + { + "id": "in_ID", + "name": "Indonesian", + "region": "Indonesia" + }, + { + "id": "ig", + "name": "Igbo" + }, + { + "id": "ig_NG", + "name": "Igbo", + "region": "Nigeria" + }, + { + "id": "ii", + "name": "Sichuan Yi" + }, + { + "id": "ii_CN", + "name": "Sichuan Yi", + "region": "China" + }, + { + "id": "is", + "name": "Icelandic" + }, + { + "id": "is_IS", + "name": "Icelandic", + "region": "Iceland" + }, + { + "id": "it", + "name": "Italian" + }, + { + "id": "it_CH", + "name": "Italian", + "region": "Switzerland" + }, + { + "id": "it_IT", + "name": "Italian", + "region": "Italy" + }, + { + "id": "it_SM", + "name": "Italian", + "region": "San Marino" + }, + { + "id": "ja", + "name": "Japanese" + }, + { + "id": "ja_JP", + "name": "Japanese", + "region": "Japan" + }, + { + "id": "jgo", + "name": "Ngomba" + }, + { + "id": "jgo_CM", + "name": "Ngomba", + "region": "Cameroon" + }, + { + "id": "jmc", + "name": "Machame" + }, + { + "id": "jmc_TZ", + "name": "Machame", + "region": "Tanzania" + }, + { + "id": "ka", + "name": "Georgian" + }, + { + "id": "ka_GE", + "name": "Georgian", + "region": "Georgia" + }, + { + "id": "kab", + "name": "Kabyle" + }, + { + "id": "kab_DZ", + "name": "Kabyle", + "region": "Algeria" + }, + { + "id": "kam", + "name": "Kamba" + }, + { + "id": "kam_KE", + "name": "Kamba", + "region": "Kenya" + }, + { + "id": "kde", + "name": "Makonde" + }, + { + "id": "kde_TZ", + "name": "Makonde", + "region": "Tanzania" + }, + { + "id": "kea", + "name": "Kabuverdianu" + }, + { + "id": "kea_CV", + "name": "Kabuverdianu", + "region": "Cape Verde" + }, + { + "id": "khq", + "name": "Koyra Chiini" + }, + { + "id": "khq_ML", + "name": "Koyra Chiini", + "region": "Mali" + }, + { + "id": "ki", + "name": "Kikuyu" + }, + { + "id": "ki_KE", + "name": "Kikuyu", + "region": "Kenya" + }, + { + "id": "kk", + "name": "Kazakh" + }, + { + "id": "kk_KZ", + "name": "Kazakh", + "region": "Kazakhstan" + }, + { + "id": "kkj", + "name": "Kako" + }, + { + "id": "kkj_CM", + "name": "Kako", + "region": "Cameroon" + }, + { + "id": "kl", + "name": "Kalaallisut" + }, + { + "id": "kl_GL", + "name": "Kalaallisut", + "region": "Greenland" + }, + { + "id": "kln", + "name": "Kalenjin" + }, + { + "id": "kln_KE", + "name": "Kalenjin", + "region": "Kenya" + }, + { + "id": "km", + "name": "Khmer" + }, + { + "id": "km_KH", + "name": "Khmer", + "region": "Cambodia" + }, + { + "id": "kn", + "name": "Kannada" + }, + { + "id": "kn_IN", + "name": "Kannada", + "region": "India" + }, + { + "id": "ko", + "name": "Korean" + }, + { + "id": "ko_KP", + "name": "Korean", + "region": "North Korea" + }, + { + "id": "ko_KR", + "name": "Korean", + "region": "South Korea" + }, + { + "id": "kok", + "name": "Konkani" + }, + { + "id": "kok_IN", + "name": "Konkani", + "region": "India" + }, + { + "id": "ks", + "name": "Kashmiri" + }, + { + "id": "ks_IN", + "name": "Kashmiri", + "region": "India" + }, + { + "id": "ksb", + "name": "Shambala" + }, + { + "id": "ksb_TZ", + "name": "Shambala", + "region": "Tanzania" + }, + { + "id": "ksf", + "name": "Bafia" + }, + { + "id": "ksf_CM", + "name": "Bafia", + "region": "Cameroon" + }, + { + "id": "kw", + "name": "Cornish" + }, + { + "id": "kw_GB", + "name": "Cornish", + "region": "United Kingdom" + }, + { + "id": "ky", + "name": "Kyrgyz" + }, + { + "id": "ky_KG", + "name": "Kyrgyz", + "region": "Kyrgyzstan" + }, + { + "id": "lag", + "name": "Langi" + }, + { + "id": "lag_TZ", + "name": "Langi", + "region": "Tanzania" + }, + { + "id": "lg", + "name": "Ganda" + }, + { + "id": "lg_UG", + "name": "Ganda", + "region": "Uganda" + }, + { + "id": "lkt", + "name": "Lakota" + }, + { + "id": "lkt_US", + "name": "Lakota", + "region": "United States" + }, + { + "id": "ln", + "name": "Lingala" + }, + { + "id": "ln_AO", + "name": "Lingala", + "region": "Angola" + }, + { + "id": "ln_CD", + "name": "Lingala", + "region": "Congo (DRC)" + }, + { + "id": "ln_CF", + "name": "Lingala", + "region": "Central African Republic" + }, + { + "id": "ln_CG", + "name": "Lingala", + "region": "Congo (Republic)" + }, + { + "id": "lo", + "name": "Lao" + }, + { + "id": "lo_LA", + "name": "Lao", + "region": "Laos" + }, + { + "id": "lt", + "name": "Lithuanian" + }, + { + "id": "lt_LT", + "name": "Lithuanian", + "region": "Lithuania" + }, + { + "id": "lu", + "name": "Luba-Katanga" + }, + { + "id": "lu_CD", + "name": "Luba-Katanga", + "region": "Congo (DRC)" + }, + { + "id": "luo", + "name": "Luo" + }, + { + "id": "luo_KE", + "name": "Luo", + "region": "Kenya" + }, + { + "id": "luy", + "name": "Luyia" + }, + { + "id": "luy_KE", + "name": "Luyia", + "region": "Kenya" + }, + { + "id": "lv", + "name": "Latvian" + }, + { + "id": "lv_LV", + "name": "Latvian", + "region": "Latvia" + }, + { + "id": "mas", + "name": "Masai" + }, + { + "id": "mas_KE", + "name": "Masai", + "region": "Kenya" + }, + { + "id": "mas_TZ", + "name": "Masai", + "region": "Tanzania" + }, + { + "id": "mer", + "name": "Meru" + }, + { + "id": "mer_KE", + "name": "Meru", + "region": "Kenya" + }, + { + "id": "mfe", + "name": "Morisyen" + }, + { + "id": "mfe_MU", + "name": "Morisyen", + "region": "Mauritius" + }, + { + "id": "mg", + "name": "Malagasy" + }, + { + "id": "mg_MG", + "name": "Malagasy", + "region": "Madagascar" + }, + { + "id": "mgh", + "name": "Makhuwa-Meetto" + }, + { + "id": "mgh_MZ", + "name": "Makhuwa-Meetto", + "region": "Mozambique" + }, + { + "id": "mgo", + "name": "Meta'" + }, + { + "id": "mgo_CM", + "name": "Meta'", + "region": "Cameroon" + }, + { + "id": "mk", + "name": "Macedonian" + }, + { + "id": "mk_MK", + "name": "Macedonian", + "region": "Macedonia (FYROM)" + }, + { + "id": "ml", + "name": "Malayalam" + }, + { + "id": "ml_IN", + "name": "Malayalam", + "region": "India" + }, + { + "id": "mn", + "name": "Mongolian" + }, + { + "id": "mn_MN", + "name": "Mongolian", + "region": "Mongolia" + }, + { + "id": "mr", + "name": "Marathi" + }, + { + "id": "mr_IN", + "name": "Marathi", + "region": "India" + }, + { + "id": "ms", + "name": "Malay" + }, + { + "id": "ms_BN", + "name": "Malay", + "region": "Brunei" + }, + { + "id": "ms_MY", + "name": "Malay", + "region": "Malaysia" + }, + { + "id": "ms_SG", + "name": "Malay", + "region": "Singapore" + }, + { + "id": "mt", + "name": "Maltese" + }, + { + "id": "mt_MT", + "name": "Maltese", + "region": "Malta" + }, + { + "id": "mua", + "name": "Mundang" + }, + { + "id": "mua_CM", + "name": "Mundang", + "region": "Cameroon" + }, + { + "id": "my", + "name": "Burmese" + }, + { + "id": "my_MM", + "name": "Burmese", + "region": "Myanmar (Burma)" + }, + { + "id": "naq", + "name": "Nama" + }, + { + "id": "naq_NA", + "name": "Nama", + "region": "Namibia" + }, + { + "id": "nb", + "name": "Norwegian Bokmål" + }, + { + "id": "nb_NO", + "name": "Norwegian Bokmål", + "region": "Norway" + }, + { + "id": "nb_SJ", + "name": "Norwegian Bokmål", + "region": "Svalbard and Jan Mayen" + }, + { + "id": "nd", + "name": "North Ndebele" + }, + { + "id": "nd_ZW", + "name": "North Ndebele", + "region": "Zimbabwe" + }, + { + "id": "ne", + "name": "Nepali" + }, + { + "id": "ne_IN", + "name": "Nepali", + "region": "India" + }, + { + "id": "ne_NP", + "name": "Nepali", + "region": "Nepal" + }, + { + "id": "nl", + "name": "Dutch" + }, + { + "id": "nl_AW", + "name": "Dutch", + "region": "Aruba" + }, + { + "id": "nl_BE", + "name": "Dutch", + "region": "Belgium" + }, + { + "id": "nl_BQ", + "name": "Dutch", + "region": "Caribbean Netherlands" + }, + { + "id": "nl_CW", + "name": "Dutch", + "region": "Curaçao" + }, + { + "id": "nl_NL", + "name": "Dutch", + "region": "Netherlands" + }, + { + "id": "nl_SR", + "name": "Dutch", + "region": "Suriname" + }, + { + "id": "nl_SX", + "name": "Dutch", + "region": "Sint Maarten" + }, + { + "id": "nmg", + "name": "Kwasio" + }, + { + "id": "nmg_CM", + "name": "Kwasio", + "region": "Cameroon" + }, + { + "id": "nn", + "name": "Norwegian Nynorsk" + }, + { + "id": "nn_NO", + "name": "Norwegian Nynorsk", + "region": "Norway" + }, + { + "id": "nnh", + "name": "Ngiemboon" + }, + { + "id": "nnh_CM", + "name": "Ngiemboon", + "region": "Cameroon" + }, + { + "id": "nus", + "name": "Nuer" + }, + { + "id": "nus_SD", + "name": "Nuer", + "region": "Sudan" + }, + { + "id": "nyn", + "name": "Nyankole" + }, + { + "id": "nyn_UG", + "name": "Nyankole", + "region": "Uganda" + }, + { + "id": "om", + "name": "Oromo" + }, + { + "id": "om_ET", + "name": "Oromo", + "region": "Ethiopia" + }, + { + "id": "om_KE", + "name": "Oromo", + "region": "Kenya" + }, + { + "id": "or", + "name": "Oriya" + }, + { + "id": "or_IN", + "name": "Oriya", + "region": "India" + }, + { + "id": "pa", + "name": "Punjabi" + }, + { + "id": "pa_PK", + "name": "Punjabi", + "region": "Pakistan" + }, + { + "id": "pa_IN", + "name": "Punjabi", + "region": "India" + }, + { + "id": "pl", + "name": "Polish" + }, + { + "id": "pl_PL", + "name": "Polish", + "region": "Poland" + }, + { + "id": "ps", + "name": "Pashto" + }, + { + "id": "ps_AF", + "name": "Pashto", + "region": "Afghanistan" + }, + { + "id": "pt", + "name": "Portuguese" + }, + { + "id": "pt_AO", + "name": "Portuguese", + "region": "Angola" + }, + { + "id": "pt_BR", + "name": "Portuguese", + "region": "Brazil" + }, + { + "id": "pt_CV", + "name": "Portuguese", + "region": "Cape Verde" + }, + { + "id": "pt_GW", + "name": "Portuguese", + "region": "Guinea-Bissau" + }, + { + "id": "pt_MO", + "name": "Portuguese", + "region": "Macau" + }, + { + "id": "pt_MZ", + "name": "Portuguese", + "region": "Mozambique" + }, + { + "id": "pt_PT", + "name": "Portuguese", + "region": "Portugal" + }, + { + "id": "pt_ST", + "name": "Portuguese", + "region": "São Tomé and Príncipe" + }, + { + "id": "pt_TL", + "name": "Portuguese", + "region": "Timor-Leste" + }, + { + "id": "rm", + "name": "Romansh" + }, + { + "id": "rm_CH", + "name": "Romansh", + "region": "Switzerland" + }, + { + "id": "rn", + "name": "Rundi" + }, + { + "id": "rn_BI", + "name": "Rundi", + "region": "Burundi" + }, + { + "id": "ro", + "name": "Romanian" + }, + { + "id": "ro_MD", + "name": "Romanian", + "region": "Moldova" + }, + { + "id": "ro_RO", + "name": "Romanian", + "region": "Romania" + }, + { + "id": "rof", + "name": "Rombo" + }, + { + "id": "rof_TZ", + "name": "Rombo", + "region": "Tanzania" + }, + { + "id": "ru", + "name": "Russian" + }, + { + "id": "ru_BY", + "name": "Russian", + "region": "Belarus" + }, + { + "id": "ru_KG", + "name": "Russian", + "region": "Kyrgyzstan" + }, + { + "id": "ru_KZ", + "name": "Russian", + "region": "Kazakhstan" + }, + { + "id": "ru_MD", + "name": "Russian", + "region": "Moldova" + }, + { + "id": "ru_RU", + "name": "Russian", + "region": "Russia" + }, + { + "id": "ru_UA", + "name": "Russian", + "region": "Ukraine" + }, + { + "id": "rw", + "name": "Kinyarwanda" + }, + { + "id": "rw_RW", + "name": "Kinyarwanda", + "region": "Rwanda" + }, + { + "id": "rwk", + "name": "Rwa" + }, + { + "id": "rwk_TZ", + "name": "Rwa", + "region": "Tanzania" + }, + { + "id": "saq", + "name": "Samburu" + }, + { + "id": "saq_KE", + "name": "Samburu", + "region": "Kenya" + }, + { + "id": "sbp", + "name": "Sangu" + }, + { + "id": "sbp_TZ", + "name": "Sangu", + "region": "Tanzania" + }, + { + "id": "seh", + "name": "Sena" + }, + { + "id": "seh_MZ", + "name": "Sena", + "region": "Mozambique" + }, + { + "id": "ses", + "name": "Koyraboro Senni" + }, + { + "id": "ses_ML", + "name": "Koyraboro Senni", + "region": "Mali" + }, + { + "id": "sg", + "name": "Sango" + }, + { + "id": "sg_CF", + "name": "Sango", + "region": "Central African Republic" + }, + { + "id": "shi", + "name": "Tachelhit" + }, + { + "id": "shi_MA", + "name": "Tachelhit", + "region": "Morocco" + }, + { + "id": "si", + "name": "Sinhala" + }, + { + "id": "si_LK", + "name": "Sinhala", + "region": "Sri Lanka" + }, + { + "id": "sk", + "name": "Slovak" + }, + { + "id": "sk_SK", + "name": "Slovak", + "region": "Slovakia" + }, + { + "id": "sl", + "name": "Slovenian" + }, + { + "id": "sl_SI", + "name": "Slovenian", + "region": "Slovenia" + }, + { + "id": "sn", + "name": "Shona" + }, + { + "id": "sn_ZW", + "name": "Shona", + "region": "Zimbabwe" + }, + { + "id": "so", + "name": "Somali" + }, + { + "id": "so_DJ", + "name": "Somali", + "region": "Djibouti" + }, + { + "id": "so_ET", + "name": "Somali", + "region": "Ethiopia" + }, + { + "id": "so_KE", + "name": "Somali", + "region": "Kenya" + }, + { + "id": "so_SO", + "name": "Somali", + "region": "Somalia" + }, + { + "id": "sq", + "name": "Albanian" + }, + { + "id": "sq_AL", + "name": "Albanian", + "region": "Albania" + }, + { + "id": "sq_MK", + "name": "Albanian", + "region": "Macedonia (FYROM)" + }, + { + "id": "sq_XK", + "name": "Albanian", + "region": "Kosovo" + }, + { + "id": "sr", + "name": "Serbian" + }, + { + "id": "sr_BA", + "name": "Serbian", + "region": "Bosnia and Herzegovina" + }, + { + "id": "sr_ME", + "name": "Serbian", + "region": "Montenegro" + }, + { + "id": "sr_RS", + "name": "Serbian", + "region": "Serbia" + }, + { + "id": "sr_XK", + "name": "Serbian", + "region": "Kosovo" + }, + { + "id": "sv", + "name": "Swedish" + }, + { + "id": "sv_AX", + "name": "Swedish", + "region": "Åland Islands" + }, + { + "id": "sv_FI", + "name": "Swedish", + "region": "Finland" + }, + { + "id": "sv_SE", + "name": "Swedish", + "region": "Sweden" + }, + { + "id": "sw", + "name": "Swahili" + }, + { + "id": "sw_KE", + "name": "Swahili", + "region": "Kenya" + }, + { + "id": "sw_TZ", + "name": "Swahili", + "region": "Tanzania" + }, + { + "id": "sw_UG", + "name": "Swahili", + "region": "Uganda" + }, + { + "id": "swc", + "name": "Congo Swahili" + }, + { + "id": "swc_CD", + "name": "Congo Swahili", + "region": "Congo (DRC)" + }, + { + "id": "ta", + "name": "Tamil" + }, + { + "id": "ta_IN", + "name": "Tamil", + "region": "India" + }, + { + "id": "ta_LK", + "name": "Tamil", + "region": "Sri Lanka" + }, + { + "id": "ta_MY", + "name": "Tamil", + "region": "Malaysia" + }, + { + "id": "ta_SG", + "name": "Tamil", + "region": "Singapore" + }, + { + "id": "te", + "name": "Telugu" + }, + { + "id": "te_IN", + "name": "Telugu", + "region": "India" + }, + { + "id": "teo", + "name": "Teso" + }, + { + "id": "teo_KE", + "name": "Teso", + "region": "Kenya" + }, + { + "id": "teo_UG", + "name": "Teso", + "region": "Uganda" + }, + { + "id": "th", + "name": "Thai" + }, + { + "id": "th_TH", + "name": "Thai", + "region": "Thailand" + }, + { + "id": "ti", + "name": "Tigrinya" + }, + { + "id": "ti_ER", + "name": "Tigrinya", + "region": "Eritrea" + }, + { + "id": "ti_ET", + "name": "Tigrinya", + "region": "Ethiopia" + }, + { + "id": "to", + "name": "Tongan" + }, + { + "id": "to_TO", + "name": "Tongan", + "region": "Tonga" + }, + { + "id": "tr", + "name": "Turkish" + }, + { + "id": "tr_CY", + "name": "Turkish", + "region": "Cyprus" + }, + { + "id": "tr_TR", + "name": "Turkish", + "region": "Turkey" + }, + { + "id": "twq", + "name": "Tasawaq" + }, + { + "id": "twq_NE", + "name": "Tasawaq", + "region": "Niger" + }, + { + "id": "tzm", + "name": "Central Atlas Tamazight" + }, + { + "id": "tzm_MA", + "name": "Central Atlas Tamazight", + "region": "Morocco" + }, + { + "id": "ug", + "name": "Uyghur" + }, + { + "id": "ug_CN", + "name": "Uyghur", + "region": "China" + }, + { + "id": "uk", + "name": "Ukrainian" + }, + { + "id": "uk_UA", + "name": "Ukrainian", + "region": "Ukraine" + }, + { + "id": "ur", + "name": "Urdu" + }, + { + "id": "ur_IN", + "name": "Urdu", + "region": "India" + }, + { + "id": "ur_PK", + "name": "Urdu", + "region": "Pakistan" + }, + { + "id": "uz", + "name": "Uzbek" + }, + { + "id": "uz_AF", + "name": "Uzbek", + "region": "Afghanistan" + }, + { + "id": "uz_UZ", + "name": "Uzbek", + "region": "Uzbekistan" + }, + { + "id": "vai", + "name": "Vai" + }, + { + "id": "vai_LR", + "name": "Vai", + "region": "Liberia" + }, + { + "id": "vi", + "name": "Vietnamese" + }, + { + "id": "vi_VN", + "name": "Vietnamese", + "region": "Vietnam" + }, + { + "id": "vun", + "name": "Vunjo" + }, + { + "id": "vun_TZ", + "name": "Vunjo", + "region": "Tanzania" + }, + { + "id": "xog", + "name": "Soga" + }, + { + "id": "xog_UG", + "name": "Soga", + "region": "Uganda" + }, + { + "id": "yav", + "name": "Yangben" + }, + { + "id": "yav_CM", + "name": "Yangben", + "region": "Cameroon" + }, + { + "id": "yo", + "name": "Yoruba" + }, + { + "id": "yo_BJ", + "name": "Yoruba", + "region": "Benin" + }, + { + "id": "yo_NG", + "name": "Yoruba", + "region": "Nigeria" + }, + { + "id": "zgh", + "name": "Standard Moroccan Tamazight" + }, + { + "id": "zgh_MA", + "name": "Standard Moroccan Tamazight", + "region": "Morocco" + }, + { + "id": "zh", + "name": "Chinese" + }, + { + "id": "zh_CN", + "name": "Chinese", + "region": "China" + }, + { + "id": "zh_HK", + "name": "Chinese", + "region": "Hong Kong" + }, + { + "id": "zh_MO", + "name": "Chinese", + "region": "Macau" + }, + { + "id": "zh_SG", + "name": "Chinese", + "region": "Singapore" + }, + { + "id": "zh_TW", + "name": "Chinese", + "region": "Taiwan" + }, + { + "id": "zu", + "name": "Zulu" + }, + { + "id": "zu_ZA", + "name": "Zulu", + "region": "South Africa" + } + ], + "orientations": [ + { + "id": "landscape", + "name": "Landscape" + }, + { + "id": "portrait", + "name": "Portrait", + "tags": [ + "default" + ] + }, + { + "id": "default", + "name": "Default" + } + ] }, - "versions" : [ { - "id" : "9.0", - "majorVersion" : 9, - "supportedXcodeVersionIds" : [ "9.2", "9.4.1", "10.0", "10.1", "10.2" ] - }, { - "id" : "9.1", - "majorVersion" : 9, - "minorVersion" : 1, - "supportedXcodeVersionIds" : [ "9.2", "9.4.1", "10.0", "10.1", "10.2" ] - }, { - "id" : "10.3", - "majorVersion" : 10, - "minorVersion" : 3, - "supportedXcodeVersionIds" : [ "9.2", "9.4.1", "10.0", "10.1", "10.2" ] - }, { - "id" : "11.2", - "majorVersion" : 11, - "minorVersion" : 2, - "supportedXcodeVersionIds" : [ "9.2", "9.4.1", "10.0", "10.1", "10.2" ], - "tags" : [ "default" ] - }, { - "id" : "11.4", - "majorVersion" : 11, - "minorVersion" : 4, - "supportedXcodeVersionIds" : [ "9.4.1", "10.0", "10.1", "10.2" ] - }, { - "id" : "12.0", - "majorVersion" : 12, - "supportedXcodeVersionIds" : [ "10.0", "10.1", "10.2" ] - }, { - "id" : "12.1", - "majorVersion" : 12, - "minorVersion" : 1, - "supportedXcodeVersionIds" : [ "10.1", "10.2" ] - } ], - "xcodeVersions" : [ { - "version" : "9.2" - }, { - "version" : "9.4.1" - }, { - "version" : "10.0" - }, { - "version" : "10.1" - }, { - "tags" : [ "default" ], - "version" : "10.2" - } ] -} + "versions": [ + { + "id": "10.3", + "majorVersion": 10, + "minorVersion": 3, + "supportedXcodeVersionIds": [ + "10.3", + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "11.2", + "majorVersion": 11, + "minorVersion": 2, + "supportedXcodeVersionIds": [ + "10.3", + "11.6", + "11.7", + "12.1", + "12.3" + ], + "tags": [ + "default" + ] + }, + { + "id": "11.4", + "majorVersion": 11, + "minorVersion": 4, + "supportedXcodeVersionIds": [ + "10.3", + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "12.0", + "majorVersion": 12, + "supportedXcodeVersionIds": [ + "10.3", + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "12.1", + "majorVersion": 12, + "minorVersion": 1, + "supportedXcodeVersionIds": [ + "10.3", + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "12.2", + "majorVersion": 12, + "minorVersion": 2, + "supportedXcodeVersionIds": [ + "10.3", + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "12.3", + "majorVersion": 12, + "minorVersion": 3, + "supportedXcodeVersionIds": [ + "10.3", + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "12.4", + "majorVersion": 12, + "minorVersion": 4, + "supportedXcodeVersionIds": [ + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "13.2", + "majorVersion": 13, + "minorVersion": 2, + "supportedXcodeVersionIds": [ + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "13.3", + "majorVersion": 13, + "minorVersion": 3, + "supportedXcodeVersionIds": [ + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "13.6", + "majorVersion": 13, + "minorVersion": 6, + "supportedXcodeVersionIds": [ + "11.6", + "11.7", + "12.1", + "12.3" + ] + }, + { + "id": "14.1", + "majorVersion": 14, + "minorVersion": 1, + "supportedXcodeVersionIds": [ + "12.1", + "12.3" + ] + } + ], + "xcodeVersions": [ + { + "version": "10.3" + }, + { + "tags": [ + "deprecated" + ], + "version": "11.6" + }, + { + "version": "11.7" + }, + { + "version": "12.1" + }, + { + "tags": [ + "default" + ], + "version": "12.3" + } + ] +} \ No newline at end of file diff --git a/test_runner/src/test/kotlin/ftl/ios/IosCatalogTest.kt b/test_runner/src/test/kotlin/ftl/ios/IosCatalogTest.kt index a1ab3841c8..55a72d8e53 100644 --- a/test_runner/src/test/kotlin/ftl/ios/IosCatalogTest.kt +++ b/test_runner/src/test/kotlin/ftl/ios/IosCatalogTest.kt @@ -19,7 +19,7 @@ class IosCatalogTest { @Test fun supportedXcode() { - assertThat(IosCatalog.supportedXcode("9.2", projectId)).isTrue() + assertThat(IosCatalog.supportedXcode("10.3", projectId)).isTrue() assertThat(IosCatalog.supportedXcode("0.1", projectId)).isFalse() } diff --git a/test_runner/src/test/kotlin/task/UpdateCatalogFixtures.kt b/test_runner/src/test/kotlin/task/UpdateCatalogFixtures.kt index f9b13ad9af..24c310b54d 100644 --- a/test_runner/src/test/kotlin/task/UpdateCatalogFixtures.kt +++ b/test_runner/src/test/kotlin/task/UpdateCatalogFixtures.kt @@ -6,7 +6,7 @@ import java.nio.file.Files import java.nio.file.Paths object UpdateCatalogFixtures { - private const val root = "./src/test/kotlin/ftl/fixtures/" + private const val root = "./test_runner/src/test/kotlin/ftl/fixtures/" private fun write(fileName: String, content: GenericJson) { Files.write(Paths.get(root, fileName), content.toPrettyString().toByteArray())