You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by re...@apache.org on 2015/08/03 22:18:03 UTC

svn commit: r1693967 [2/2] - /devicemap/trunk/data/2.0/device/patterns.json

Modified: devicemap/trunk/data/2.0/device/patterns.json
URL: http://svn.apache.org/viewvc/devicemap/trunk/data/2.0/device/patterns.json?rev=1693967&r1=1693966&r2=1693967&view=diff
==============================================================================
--- devicemap/trunk/data/2.0/device/patterns.json (original)
+++ devicemap/trunk/data/2.0/device/patterns.json Mon Aug  3 20:18:02 2015
@@ -23,7 +23,7 @@
   },
   "patternSet": {
     "defaultId": "unknown",
-    "simpleHashCount": 3287,
+    "simpleHashCount": 2988,
     "patterns": [
       {
          "patternId": "SAMSUNG-SGH-i780",
@@ -41,13 +41,7 @@
          "patternId": "INQ Cloud Touch",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["camden"]
-      },
-      {
-         "patternId": "INQ Cloud Touch",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["inqcloudtouch"]
+         "patternTokens": ["camden", "inqcloudtouch"]
       },
       {
          "patternId": "bravo",
@@ -95,13 +89,7 @@
          "patternId": "NXM726HN",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["nxm726"]
-      },
-      {
-         "patternId": "NXM726HN",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["nxm726hn"]
+         "patternTokens": ["nxm726", "nxm726hn"]
       },
       {
          "patternId": "SAMSUNG-GT-M5650",
@@ -155,13 +143,7 @@
          "patternId": "IDEOS S7",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["huaweis7"]
-      },
-      {
-         "patternId": "IDEOS S7",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["ideoss7"]
+         "patternTokens": ["huaweis7", "ideoss7"]
       },
       {
          "patternId": "ThinkPad",
@@ -215,31 +197,13 @@
          "patternId": "SM-G3502",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg3502"]
-      },
-      {
-         "patternId": "SM-G3502",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg3502i"]
-      },
-      {
-         "patternId": "SM-G3502",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg3502t"]
-      },
-      {
-         "patternId": "SonyEricssonLT28at",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt28at"]
+         "patternTokens": ["smg3502", "smg3502i", "smg3502t"]
       },
       {
          "patternId": "SonyEricssonLT28at",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sonyericssonlt28at"]
+         "patternTokens": ["lt28at", "sonyericssonlt28at"]
       },
       {
          "patternId": "SCH-R880",
@@ -263,13 +227,7 @@
          "patternId": "SM-G3509",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg3509"]
-      },
-      {
-         "patternId": "SM-G3509",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg3509i"]
+         "patternTokens": ["smg3509", "smg3509i"]
       },
       {
          "patternId": "ALCATEL ONE TOUCH 5020D",
@@ -305,25 +263,7 @@
          "patternId": "SM-G350H",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg350h"]
-      },
-      {
-         "patternId": "SM-G350H",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg355h"]
-      },
-      {
-         "patternId": "SM-G350H",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg355hn"]
-      },
-      {
-         "patternId": "SM-G350H",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg355m"]
+         "patternTokens": ["smg350h", "smg355h", "smg355hn", "smg355m"]
       },
       {
          "patternId": "HUAWEI G730-U00",
@@ -845,31 +785,13 @@
          "patternId": "GT-N8020",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["samsunggtn8020"]
-      },
-      {
-         "patternId": "GT-N8020",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["gtn8020"]
-      },
-      {
-         "patternId": "SM-G350",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg350"]
-      },
-      {
-         "patternId": "SM-G350",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg350l"]
+         "patternTokens": ["samsunggtn8020", "gtn8020"]
       },
       {
          "patternId": "SM-G350",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg3502l"]
+         "patternTokens": ["smg350", "smg350l", "smg3502l"]
       },
       {
          "patternId": "LG-F200S",
@@ -1043,13 +965,7 @@
          "patternId": "HTC One X+",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["pm63100"]
-      },
-      {
-         "patternId": "HTC One X+",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htconex"]
+         "patternTokens": ["pm63100", "htconex"]
       },
       {
          "patternId": "PH44100",
@@ -1073,13 +989,7 @@
          "patternId": "Transformer Prime TF201",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["transformerprime"]
-      },
-      {
-         "patternId": "Transformer Prime TF201",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["transformerprimetf201"]
+         "patternTokens": ["transformerprime", "transformerprimetf201"]
       },
       {
          "patternId": "HTC_PH39100",
@@ -1133,55 +1043,7 @@
          "patternId": "SM-G310",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg310"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg310hn"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg313"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg313hn"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg313hu"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg313hz"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg313m"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg313ml"]
-      },
-      {
-         "patternId": "SM-G310",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg313mu"]
+         "patternTokens": ["smg310", "smg310hn", "smg313", "smg313hn", "smg313hu", "smg313hz", "smg313m", "smg313ml", "smg313mu"]
       },
       {
          "patternId": "A500",
@@ -1205,19 +1067,7 @@
          "patternId": "Blade",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["ztetu880"]
-      },
-      {
-         "patternId": "Blade",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["zteuv880"]
-      },
-      {
-         "patternId": "Blade",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["blade"]
+         "patternTokens": ["ztetu880", "zteuv880", "blade"]
       },
       {
          "patternId": "Orange Monte Carlo",
@@ -1499,25 +1349,13 @@
          "patternId": "Motorola Electrify",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["mb853"]
-      },
-      {
-         "patternId": "Motorola Electrify",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["motorolaelectrify"]
-      },
-      {
-         "patternId": "LG-P936",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgp936"]
+         "patternTokens": ["mb853", "motorolaelectrify"]
       },
       {
          "patternId": "LG-P936",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["lgp936"]
+         "patternTokens": ["lgp936", "lgp936"]
       },
       {
          "patternId": "LG-P935",
@@ -1721,19 +1559,7 @@
          "patternId": "pandigitalnova1",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["pandigitalopp12"]
-      },
-      {
-         "patternId": "pandigitalnova1",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["pandigitalsprnova1"]
-      },
-      {
-         "patternId": "pandigitalnova1",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["pandigitalnova1"]
+         "patternTokens": ["pandigitalopp12", "pandigitalsprnova1", "pandigitalnova1"]
       },
       {
          "patternId": "HPiPAQVoiceMessenger",
@@ -1943,49 +1769,7 @@
          "patternId": "SM-G800F",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg800a"]
-      },
-      {
-         "patternId": "SM-G800F",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg800f"]
-      },
-      {
-         "patternId": "SM-G800F",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg800h"]
-      },
-      {
-         "patternId": "SM-G800F",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg800hq"]
-      },
-      {
-         "patternId": "SM-G800F",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg800m"]
-      },
-      {
-         "patternId": "SM-G800F",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg800r4"]
-      },
-      {
-         "patternId": "SM-G800F",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg800x"]
-      },
-      {
-         "patternId": "SM-G800F",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg800y"]
+         "patternTokens": ["smg800a", "smg800f", "smg800h", "smg800hq", "smg800m", "smg800r4", "smg800x", "smg800y"]
       },
       {
          "patternId": "LG-E739",
@@ -2063,13 +1847,7 @@
          "patternId": "spica",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["galaxyspica"]
-      },
-      {
-         "patternId": "spica",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["spica"]
+         "patternTokens": ["galaxyspica", "spica"]
       },
       {
          "patternId": "SM-T525",
@@ -2081,13 +1859,7 @@
          "patternId": "SOL21",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sonysol21"]
-      },
-      {
-         "patternId": "SOL21",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sol21"]
+         "patternTokens": ["sonysol21", "sol21"]
       },
       {
          "patternId": "SAMSUNG-GT-S5333",
@@ -2225,13 +1997,7 @@
          "patternId": "SonyEricssonIS12S",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["is12s"]
-      },
-      {
-         "patternId": "SonyEricssonIS12S",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonis12s"]
+         "patternTokens": ["is12s", "sonyericssonis12s"]
       },
       {
          "patternId": "MB855",
@@ -2615,19 +2381,7 @@
          "patternId": "FOLIO_AND_A",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["tsbcloudcompanion"]
-      },
-      {
-         "patternId": "FOLIO_AND_A",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["folio100"]
-      },
-      {
-         "patternId": "FOLIO_AND_A",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["folioanda"]
+         "patternTokens": ["tsbcloudcompanion", "folio100", "folioanda"]
       },
       {
          "patternId": "SCH-R970",
@@ -2645,13 +2399,7 @@
          "patternId": "MOT-XT890",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xt890"]
-      },
-      {
-         "patternId": "MOT-XT890",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["motxt890"]
+         "patternTokens": ["xt890", "motxt890"]
       },
       {
          "patternId": "A953Blur",
@@ -2711,13 +2459,7 @@
          "patternId": "HTC Z560e",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["ones"]
-      },
-      {
-         "patternId": "HTC Z560e",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcz560e"]
+         "patternTokens": ["ones", "htcz560e"]
       },
       {
          "patternId": "SGH-I187",
@@ -3227,13 +2969,7 @@
          "patternId": "ASUS Transformer Pad TF300T",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["asuspadtf300t"]
-      },
-      {
-         "patternId": "ASUS Transformer Pad TF300T",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["asustransformerpadtf300t"]
+         "patternTokens": ["asuspadtf300t", "asustransformerpadtf300t"]
       },
       {
          "patternId": "SonyEricssonE15iv",
@@ -3287,37 +3023,7 @@
          "patternId": "SM-T530",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt530"]
-      },
-      {
-         "patternId": "SM-T530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt530nu"]
-      },
-      {
-         "patternId": "SM-T530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt531"]
-      },
-      {
-         "patternId": "SM-T530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt535"]
-      },
-      {
-         "patternId": "SM-T530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt537a"]
-      },
-      {
-         "patternId": "SM-T530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt537v"]
+         "patternTokens": ["smt530", "smt530nu", "smt531", "smt535", "smt537a", "smt537v"]
       },
       {
          "patternId": "ALCATEL_one_touch_910",
@@ -3467,19 +3173,7 @@
          "patternId": "DROID BIONIC 4G",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xt875"]
-      },
-      {
-         "patternId": "DROID BIONIC 4G",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["droidbionic"]
-      },
-      {
-         "patternId": "DROID BIONIC 4G",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["droidbionic4g"]
+         "patternTokens": ["xt875", "droidbionic", "droidbionic4g"]
       },
       {
          "patternId": "SAMSUNG-SGH-T340G",
@@ -3515,19 +3209,7 @@
          "patternId": "SonyLT30p",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperiat"]
-      },
-      {
-         "patternId": "SonyLT30p",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt30p"]
-      },
-      {
-         "patternId": "SonyLT30p",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonylt30p"]
+         "patternTokens": ["xperiat", "lt30p", "sonylt30p"]
       },
       {
          "patternId": "Nokia2700c",
@@ -3659,19 +3341,7 @@
          "patternId": "SonyEricssonWT19i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperialive"]
-      },
-      {
-         "patternId": "SonyEricssonWT19i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["wt19i"]
-      },
-      {
-         "patternId": "SonyEricssonWT19i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonwt19i"]
+         "patternTokens": ["xperialive", "wt19i", "sonyericssonwt19i"]
       },
       {
          "patternId": "SAMSUNG-SGH-T401G",
@@ -4031,13 +3701,7 @@
          "patternId": "HD2",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["hd2"]
-      },
-      {
-         "patternId": "HD2",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["hd2"]
+         "patternTokens": ["hd2", "hd2"]
       },
       {
          "patternId": "SHV-250K",
@@ -4061,13 +3725,7 @@
          "patternId": "SAMSUNG SM-G3815",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg3815"]
-      },
-      {
-         "patternId": "SAMSUNG SM-G3815",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsungsmg3815"]
+         "patternTokens": ["smg3815", "samsungsmg3815"]
       },
       {
          "patternId": "HTC_Advantage",
@@ -4391,13 +4049,7 @@
          "patternId": "SAMSUNG SM-G900T",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900t"]
-      },
-      {
-         "patternId": "SAMSUNG SM-G900T",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsungsmg900t"]
+         "patternTokens": ["smg900t", "samsungsmg900t"]
       },
       {
          "patternId": "T9199+",
@@ -4457,13 +4109,7 @@
          "patternId": "LG-P880",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["optimus4xhd"]
-      },
-      {
-         "patternId": "LG-P880",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgp880"]
+         "patternTokens": ["optimus4xhd", "lgp880"]
       },
       {
          "patternId": "SCH-I879",
@@ -4589,13 +4235,7 @@
          "patternId": "LG-P760",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["p760"]
-      },
-      {
-         "patternId": "LG-P760",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgp760"]
+         "patternTokens": ["p760", "lgp760"]
       },
       {
          "patternId": "HTC_WildfireS_A510e",
@@ -4715,13 +4355,7 @@
          "patternId": "ME860",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["motome860"]
-      },
-      {
-         "patternId": "ME860",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["me860"]
+         "patternTokens": ["motome860", "me860"]
       },
       {
          "patternId": "X1i",
@@ -4823,13 +4457,7 @@
          "patternId": "HUAWEI P2-6011",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["huaweip26011orange"]
-      },
-      {
-         "patternId": "HUAWEI P2-6011",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["huaweip26011"]
+         "patternTokens": ["huaweip26011orange", "huaweip26011"]
       },
       {
          "patternId": "SGH-T599",
@@ -5525,13 +5153,7 @@
          "patternId": "SonyLT29i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["lt29i"]
-      },
-      {
-         "patternId": "SonyLT29i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonylt29i"]
+         "patternTokens": ["lt29i", "sonylt29i"]
       },
       {
          "patternId": "novo7_Aurora",
@@ -5609,13 +5231,7 @@
          "patternId": "SM-P905",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smp905"]
-      },
-      {
-         "patternId": "SM-P905",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smp905m"]
+         "patternTokens": ["smp905", "smp905m"]
       },
       {
          "patternId": "LG-D959",
@@ -5651,25 +5267,7 @@
          "patternId": "USCCADR6325US",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["adr6325"]
-      },
-      {
-         "patternId": "USCCADR6325US",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["adr6325vw"]
-      },
-      {
-         "patternId": "USCCADR6325US",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htclexikon"]
-      },
-      {
-         "patternId": "USCCADR6325US",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["usccadr6325us"]
+         "patternTokens": ["adr6325", "adr6325vw", "htclexikon", "usccadr6325us"]
       },
       {
          "patternId": "LG-D950",
@@ -5825,13 +5423,7 @@
          "patternId": "SO-03D",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sonyericssonso03d"]
-      },
-      {
-         "patternId": "SO-03D",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["so03d"]
+         "patternTokens": ["sonyericssonso03d", "so03d"]
       },
       {
          "patternId": "LG-VS700",
@@ -5915,13 +5507,7 @@
          "patternId": "HUAWEI C8812",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["huaweic8812"]
-      },
-      {
-         "patternId": "HUAWEI C8812",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["huaweic8812"]
+         "patternTokens": ["huaweic8812", "huaweic8812"]
       },
       {
          "patternId": "MK16i",
@@ -5987,37 +5573,7 @@
          "patternId": "SM-T230",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt230"]
-      },
-      {
-         "patternId": "SM-T230",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt230nu"]
-      },
-      {
-         "patternId": "SM-T230",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt230nt"]
-      },
-      {
-         "patternId": "SM-T230",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt231"]
-      },
-      {
-         "patternId": "SM-T230",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt235"]
-      },
-      {
-         "patternId": "SM-T230",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt235y"]
+         "patternTokens": ["smt230", "smt230nu", "smt230nt", "smt231", "smt235", "smt235y"]
       },
       {
          "patternId": "Nokia302",
@@ -6095,19 +5651,7 @@
          "patternId": "SonyLT25i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperiav"]
-      },
-      {
-         "patternId": "SonyLT25i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt25i"]
-      },
-      {
-         "patternId": "SonyLT25i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonylt25i"]
+         "patternTokens": ["xperiav", "lt25i", "sonylt25i"]
       },
       {
          "patternId": "LG-GR500R",
@@ -6161,19 +5705,7 @@
          "patternId": "SMARTPAD810C",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["mp810c"]
-      },
-      {
-         "patternId": "SMARTPAD810C",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["mediacom810c"]
-      },
-      {
-         "patternId": "SMARTPAD810C",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smartpad810c"]
+         "patternTokens": ["mp810c", "mediacom810c", "smartpad810c"]
       },
       {
          "patternId": "Sprint LN240",
@@ -6203,13 +5735,7 @@
          "patternId": "SAMSUNG GT-S5369",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["gts5369"]
-      },
-      {
-         "patternId": "SAMSUNG GT-S5369",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsunggts5369"]
+         "patternTokens": ["gts5369", "samsunggts5369"]
       },
       {
          "patternId": "SCH-I100",
@@ -6281,13 +5807,7 @@
          "patternId": "SonyST26i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["st26i"]
-      },
-      {
-         "patternId": "SonyST26i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyst26i"]
+         "patternTokens": ["st26i", "sonyst26i"]
       },
       {
          "patternId": "LG-P350",
@@ -6413,13 +5933,7 @@
          "patternId": "HTC_Amaze_4G",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["amaze4g"]
-      },
-      {
-         "patternId": "HTC_Amaze_4G",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcamaze4g"]
+         "patternTokens": ["amaze4g", "htcamaze4g"]
       },
       {
          "patternId": "BlackBerry8120",
@@ -6449,13 +5963,7 @@
          "patternId": "SAMSUNG-SGH-I927",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sghi927"]
-      },
-      {
-         "patternId": "SAMSUNG-SGH-I927",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsungsghi927"]
+         "patternTokens": ["sghi927", "samsungsghi927"]
       },
       {
          "patternId": "DATAM803HC",
@@ -6509,391 +6017,175 @@
          "patternId": "SM-G900",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900"]
+         "patternTokens": ["smg900", "smg9006v", "smg9008v", "smg9009d", "smg9009w", "smg900a", "smg900az", "smg900f", "smg900fd", "smg900fq", "smg900h", "smg900i", "smg900k", "smg900md", "smg900p", "smg900r4", "smg900r6", "smg900r7", "smg900s", "smg900t1", "smg900v", "smg900w", "smg900w8", "smg900x", "smg901f"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "MT25i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg9006v"]
+         "patternTokens": ["sonyericssonmt25i", "mt25i"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "BL40",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg9008v"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["lg", "bl40"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "BL40",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg9009d"]
+         "patternTokens": ["lgbl40"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "LG-LG231C",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg9009w"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["lg", "lg231c"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "LG-LG231C",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900a"]
+         "patternTokens": ["lg231c"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "NGM_Vanity",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg900az"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["ngm", "vanity"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "LG-VM696",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900f"]
+         "patternTokens": ["lgvm696"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "SAMSUNG-SGH-I907",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900fd"]
+         "patternTokens": ["samsungsghi907"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "SAMSUNG-SGH-I907",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg900fq"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["samsung", "sghi907"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "MOT-W418G",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg900h"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["mot", "w418g"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "ZTE-U X850",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900i"]
+         "patternTokens": ["zteux850"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "ZTE-U X850",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg900k"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["zte", "ux850"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "K1",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900md"]
+         "patternTokens": ["k1"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "calgary",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900p"]
+         "patternTokens": ["calgary"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "calgary",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg900r4"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["lg", "caary"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "calgary",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900r6"]
+         "patternTokens": ["lgcaary"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "SonyST23a",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900r7"]
+         "patternTokens": ["sonyst23a"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "001HT",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900s"]
+         "patternTokens": ["001ht"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "KIWIE_UNIQO",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900t1"]
+         "patternTokens": ["kiwieuniqo"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "GT-P7100",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900v"]
+         "patternTokens": ["gtp7100"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "USCCADR6285US",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900w"]
+         "patternTokens": ["usccadr6285us"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "SM-G110",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900w8"]
+         "patternTokens": ["smg110", "smg110b", "smg110bds", "smg110h", "smg110m"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "MID8024",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg900x"]
+         "patternTokens": ["mid8024"]
       },
       {
-         "patternId": "SM-G900",
+         "patternId": "MotoA953",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg901f"]
+         "patternTokens": ["motoa953"]
       },
       {
-         "patternId": "MT25i",
+         "patternId": "MotoA953",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonmt25i"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["mot", "oa953"]
       },
       {
-         "patternId": "MT25i",
+         "patternId": "GT-S5820",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["mt25i"]
+         "patternTokens": ["gts5820"]
       },
       {
-         "patternId": "BL40",
+         "patternId": "HTC 802w",
          "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["lg", "bl40"]
-      },
-      {
-         "patternId": "BL40",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgbl40"]
-      },
-      {
-         "patternId": "LG-LG231C",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["lg", "lg231c"]
-      },
-      {
-         "patternId": "LG-LG231C",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lg231c"]
-      },
-      {
-         "patternId": "NGM_Vanity",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["ngm", "vanity"]
-      },
-      {
-         "patternId": "LG-VM696",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgvm696"]
-      },
-      {
-         "patternId": "SAMSUNG-SGH-I907",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsungsghi907"]
-      },
-      {
-         "patternId": "SAMSUNG-SGH-I907",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["samsung", "sghi907"]
-      },
-      {
-         "patternId": "MOT-W418G",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["mot", "w418g"]
-      },
-      {
-         "patternId": "ZTE-U X850",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["zteux850"]
-      },
-      {
-         "patternId": "ZTE-U X850",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["zte", "ux850"]
-      },
-      {
-         "patternId": "K1",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["k1"]
-      },
-      {
-         "patternId": "calgary",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["calgary"]
-      },
-      {
-         "patternId": "calgary",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["lg", "caary"]
-      },
-      {
-         "patternId": "calgary",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgcaary"]
-      },
-      {
-         "patternId": "ses65",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["ses65"]
-      },
-      {
-         "patternId": "SonyST23a",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyst23a"]
-      },
-      {
-         "patternId": "001HT",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["001ht"]
-      },
-      {
-         "patternId": "KIWIE_UNIQO",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["kiwieuniqo"]
-      },
-      {
-         "patternId": "GT-P7100",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["gtp7100"]
-      },
-      {
-         "patternId": "USCCADR6285US",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["usccadr6285us"]
-      },
-      {
-         "patternId": "SM-G110",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg110"]
-      },
-      {
-         "patternId": "SM-G110",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg110b"]
-      },
-      {
-         "patternId": "SM-G110",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg110bds"]
-      },
-      {
-         "patternId": "SM-G110",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg110h"]
-      },
-      {
-         "patternId": "SM-G110",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg110m"]
-      },
-      {
-         "patternId": "MID8024",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["mid8024"]
-      },
-      {
-         "patternId": "MotoA953",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["motoa953"]
-      },
-      {
-         "patternId": "MotoA953",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["mot", "oa953"]
-      },
-      {
-         "patternId": "GT-S5820",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["gts5820"]
-      },
-      {
-         "patternId": "HTC 802w",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htc802w"]
+         "patternType": "Simple",
+         "patternTokens": ["htc802w"]
       },
       {
          "patternId": "genericPhone",
          "rankType": "None",
          "patternType": "Simple",
-         "patternTokens": ["lg"]
-      },
-      {
-         "patternId": "genericPhone",
-         "rankType": "None",
-         "patternType": "Simple",
-         "patternTokens": ["netfront"]
-      },
-      {
-         "patternId": "genericPhone",
-         "rankType": "None",
-         "patternType": "Simple",
-         "patternTokens": ["palm"]
-      },
-      {
-         "patternId": "genericPhone",
-         "rankType": "None",
-         "patternType": "Simple",
-         "patternTokens": ["samsungsgh"]
-      },
-      {
-         "patternId": "genericPhone",
-         "rankType": "None",
-         "patternType": "Simple",
-         "patternTokens": ["upbrowser"]
-      },
-      {
-         "patternId": "genericPhone",
-         "rankType": "None",
-         "patternType": "Simple",
-         "patternTokens": ["windowsce"]
-      },
-      {
-         "patternId": "genericPhone",
-         "rankType": "None",
-         "patternType": "Simple",
-         "patternTokens": ["windowsceiemobile"]
+         "patternTokens": ["lg", "netfront", "palm", "samsungsgh", "upbrowser", "windowsce", "windowsceiemobile"]
       },
       {
          "patternId": "SonyEricssonSO-03C",
@@ -6956,6 +6248,12 @@
          "patternTokens": ["sphl900"]
       },
       {
+         "patternId": "ses65",
+         "rankType": "Weak",
+         "patternType": "Simple",
+         "patternTokens": ["ses65"]
+      },
+      {
          "patternId": "GT-S5830",
          "rankType": "Weak",
          "patternType": "Simple",
@@ -6983,13 +6281,7 @@
          "patternId": "HTC 8060",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["htc6600lvw4g"]
-      },
-      {
-         "patternId": "HTC 8060",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htc8060"]
+         "patternTokens": ["htc6600lvw4g", "htc8060"]
       },
       {
          "patternId": "SM-G3812B",
@@ -7151,13 +6443,7 @@
          "patternId": "HW-HUAWEI_C8650",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["c8650"]
-      },
-      {
-         "patternId": "HW-HUAWEI_C8650",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["hwhuaweic8650"]
+         "patternTokens": ["c8650", "hwhuaweic8650"]
       },
       {
          "patternId": "SCH-I959",
@@ -7367,19 +6653,7 @@
          "patternId": "HTC_One_X",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["htcs720e"]
-      },
-      {
-         "patternId": "HTC_One_X",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["pj83100"]
-      },
-      {
-         "patternId": "HTC_One_X",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htconex"]
+         "patternTokens": ["htcs720e", "pj83100", "htconex"]
       },
       {
          "patternId": "HTC_One_V",
@@ -7451,13 +6725,7 @@
          "patternId": "AN10G2",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["an10g2lz"]
-      },
-      {
-         "patternId": "AN10G2",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["an10g2"]
+         "patternTokens": ["an10g2lz", "an10g2"]
       },
       {
          "patternId": "AIRPAD",
@@ -7499,13 +6767,7 @@
          "patternId": "SonyEricssonST17i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["st17i"]
-      },
-      {
-         "patternId": "SonyEricssonST17i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonst17i"]
+         "patternTokens": ["st17i", "sonyericssonst17i"]
       },
       {
          "patternId": "SonyEricssonU5i",
@@ -7565,13 +6827,7 @@
          "patternId": "LG-E973",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["optimusg"]
-      },
-      {
-         "patternId": "LG-E973",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lge973"]
+         "patternTokens": ["optimusg", "lge973"]
       },
       {
          "patternId": "Nokia3120c",
@@ -7667,19 +6923,7 @@
          "patternId": "SonyEricssonST15i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sonyericssonst15a"]
-      },
-      {
-         "patternId": "SonyEricssonST15i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonst15i"]
-      },
-      {
-         "patternId": "SonyEricssonST15i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["st15i"]
+         "patternTokens": ["sonyericssonst15a", "sonyericssonst15i", "st15i"]
       },
       {
          "patternId": "SCH-R720",
@@ -7709,13 +6953,7 @@
          "patternId": "DROID3",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xt862"]
-      },
-      {
-         "patternId": "DROID3",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["droid3"]
+         "patternTokens": ["xt862", "droid3"]
       },
       {
          "patternId": "GT-I9192",
@@ -7757,13 +6995,7 @@
          "patternId": "HuaweiU8180",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["u8180"]
-      },
-      {
-         "patternId": "HuaweiU8180",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["huaweiu8180"]
+         "patternTokens": ["u8180", "huaweiu8180"]
       },
       {
          "patternId": "HTC_DesireHD-orange-LS",
@@ -7913,19 +7145,7 @@
          "patternId": "Nexus 4",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["lge960"]
-      },
-      {
-         "patternId": "Nexus 4",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lge960"]
-      },
-      {
-         "patternId": "Nexus 4",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["nexus4"]
+         "patternTokens": ["lge960", "lge960", "nexus4"]
       },
       {
          "patternId": "Nexus 5",
@@ -8075,25 +7295,7 @@
          "patternId": "SonyEricssonST18i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperiaray"]
-      },
-      {
-         "patternId": "SonyEricssonST18i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["st18i"]
-      },
-      {
-         "patternId": "SonyEricssonST18i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonst18a"]
-      },
-      {
-         "patternId": "SonyEricssonST18i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonst18i"]
+         "patternTokens": ["xperiaray", "st18i", "sonyericssonst18a", "sonyericssonst18i"]
       },
       {
          "patternId": "MOT-WX400",
@@ -8195,13 +7397,7 @@
          "patternId": "Nexus S",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["crespo"]
-      },
-      {
-         "patternId": "Nexus S",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["nexuss"]
+         "patternTokens": ["crespo", "nexuss"]
       },
       {
          "patternId": "SM-T315",
@@ -8255,13 +7451,7 @@
          "patternId": "GT-I7500",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["i7500"]
-      },
-      {
-         "patternId": "GT-I7500",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["gti7500"]
+         "patternTokens": ["i7500", "gti7500"]
       },
       {
          "patternId": "HUAWEI G510-0100",
@@ -8435,67 +7625,13 @@
          "patternId": "SAMSUNG GT-N7105",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["gtn7105"]
-      },
-      {
-         "patternId": "SAMSUNG GT-N7105",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsunggtn7105"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sms801"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg850a"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg850f"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg850fq"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg850m"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg850t"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg850w"]
-      },
-      {
-         "patternId": "SM-S801",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg850y"]
+         "patternTokens": ["gtn7105", "samsunggtn7105"]
       },
       {
          "patternId": "SM-S801",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg8508s"]
+         "patternTokens": ["sms801", "smg850a", "smg850f", "smg850fq", "smg850m", "smg850t", "smg850w", "smg850y", "smg8508s"]
       },
       {
          "patternId": "XT321",
@@ -8600,70 +7736,34 @@
          "patternTokens": ["is03"]
       },
       {
-         "patternId": "Blackberry8530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["blackberry8530"]
-      },
-      {
-         "patternId": "Nokia6760s",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["nokia6760s"]
-      },
-      {
-         "patternId": "Nokia6760s",
-         "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["nokia", "6760s"]
-      },
-      {
-         "patternId": "Nokia6760s",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["nokia6760s"]
-      },
-      {
-         "patternId": "SM-T330",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt330"]
-      },
-      {
-         "patternId": "SM-T330",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt330nu"]
-      },
-      {
-         "patternId": "SM-T330",
+         "patternId": "Blackberry8530",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt331"]
+         "patternTokens": ["blackberry8530"]
       },
       {
-         "patternId": "SM-T330",
+         "patternId": "Nokia6760s",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt335"]
+         "patternTokens": ["nokia6760s"]
       },
       {
-         "patternId": "SM-T330",
+         "patternId": "Nokia6760s",
          "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt337a"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["nokia", "6760s"]
       },
       {
-         "patternId": "SM-T330",
+         "patternId": "Nokia6760s",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt337t"]
+         "patternTokens": ["nokia6760s"]
       },
       {
          "patternId": "SM-T330",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt337v"]
+         "patternTokens": ["smt330", "smt330nu", "smt331", "smt335", "smt337a", "smt337t", "smt337v"]
       },
       {
          "patternId": "BlackBerry 9350",
@@ -8735,13 +7835,7 @@
          "patternId": "HTC_Rhyme_S510b",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["htcs510b"]
-      },
-      {
-         "patternId": "HTC_Rhyme_S510b",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcrhymes510b"]
+         "patternTokens": ["htcs510b", "htcrhymes510b"]
       },
       {
          "patternId": "BlackBerry8900",
@@ -8789,13 +7883,7 @@
          "patternId": "SM-G3818",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg3818"]
-      },
-      {
-         "patternId": "SM-G3818",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg3819d"]
+         "patternTokens": ["smg3818", "smg3819d"]
       },
       {
          "patternId": "LePanII",
@@ -8837,13 +7925,7 @@
          "patternId": "C660",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["lgc660"]
-      },
-      {
-         "patternId": "C660",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgc660"]
+         "patternTokens": ["lgc660", "lgc660"]
       },
       {
          "patternId": "GT-S6310",
@@ -8903,13 +7985,7 @@
          "patternId": "SonySGP321",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperiatabletzlte"]
-      },
-      {
-         "patternId": "SonySGP321",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonysgp321"]
+         "patternTokens": ["xperiatabletzlte", "sonysgp321"]
       },
       {
          "patternId": "BlackBerry8910",
@@ -8993,13 +8069,7 @@
          "patternId": "flyiq245",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["iq245"]
-      },
-      {
-         "patternId": "flyiq245",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["iq245plus"]
+         "patternTokens": ["iq245", "iq245plus"]
       },
       {
          "patternId": "SGH-T959V",
@@ -9089,19 +8159,7 @@
          "patternId": "MOTWX435KT",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["wx435"]
-      },
-      {
-         "patternId": "MOTWX435KT",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["motorolatriumph"]
-      },
-      {
-         "patternId": "MOTWX435KT",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["motwx435kt"]
+         "patternTokens": ["wx435", "motorolatriumph", "motwx435kt"]
       },
       {
          "patternId": "SIE-EF51",
@@ -9221,13 +8279,7 @@
          "patternId": "pcdadr6350",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["incredible2"]
-      },
-      {
-         "patternId": "pcdadr6350",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["adr6350"]
+         "patternTokens": ["incredible2", "adr6350"]
       },
       {
          "patternId": "GT-I9228",
@@ -9287,13 +8339,7 @@
          "patternId": "SAMSUNG-SGH-I777",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sghi777"]
-      },
-      {
-         "patternId": "SAMSUNG-SGH-I777",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsungsghi777"]
+         "patternTokens": ["sghi777", "samsungsghi777"]
       },
       {
          "patternId": "LG-E425g",
@@ -9491,49 +8537,19 @@
          "patternId": "SM-G7105",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg7105"]
-      },
-      {
-         "patternId": "SM-G7105",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7105"]
+         "patternTokens": ["smg7105", "smg7105"]
       },
       {
          "patternId": "SM-G7102",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg7102"]
-      },
-      {
-         "patternId": "SM-G7102",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7102"]
-      },
-      {
-         "patternId": "SM-G130",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg130"]
-      },
-      {
-         "patternId": "SM-G130",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg130h"]
-      },
-      {
-         "patternId": "SM-G130",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg130hn"]
+         "patternTokens": ["smg7102", "smg7102"]
       },
       {
          "patternId": "SM-G130",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg130m"]
+         "patternTokens": ["smg130", "smg130h", "smg130hn", "smg130m"]
       },
       {
          "patternId": "SM-N9008V",
@@ -9575,13 +8591,7 @@
          "patternId": "SN10T1",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["hannspadsn10t1"]
-      },
-      {
-         "patternId": "SN10T1",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sn10t1"]
+         "patternTokens": ["hannspadsn10t1", "sn10t1"]
       },
       {
          "patternId": "Nokia6710s",
@@ -9845,13 +8855,7 @@
          "patternId": "MOT-XT530",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xt530"]
-      },
-      {
-         "patternId": "MOT-XT530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["motxt530"]
+         "patternTokens": ["xt530", "motxt530"]
       },
       {
          "patternId": "AT300",
@@ -10013,13 +9017,7 @@
          "patternId": "WT19a",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["wt19a"]
-      },
-      {
-         "patternId": "WT19a",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonwt19a"]
+         "patternTokens": ["wt19a", "sonyericssonwt19a"]
       },
       {
          "patternId": "Acer-Z110",
@@ -10109,13 +9107,7 @@
          "patternId": "SAMSUNG GT-I9507",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["gti9507"]
-      },
-      {
-         "patternId": "SAMSUNG GT-I9507",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsunggti9507"]
+         "patternTokens": ["gti9507", "samsunggti9507"]
       },
       {
          "patternId": "LG-E400",
@@ -10163,13 +9155,7 @@
          "patternId": "SPH-M930BST",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sphm930"]
-      },
-      {
-         "patternId": "SPH-M930BST",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sphm930bst"]
+         "patternTokens": ["sphm930", "sphm930bst"]
       },
       {
          "patternId": "PantechP8000",
@@ -10451,67 +9437,19 @@
          "patternId": "T9599",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["t9599"]
-      },
-      {
-         "patternId": "T9599",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["t9599"]
-      },
-      {
-         "patternId": "HTC One 801e",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcone"]
+         "patternTokens": ["t9599", "t9599"]
       },
       {
          "patternId": "HTC One 801e",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["htcone801e"]
-      },
-      {
-         "patternId": "SM-T800",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt800"]
-      },
-      {
-         "patternId": "SM-T800",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt800x"]
-      },
-      {
-         "patternId": "SM-T800",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt805"]
-      },
-      {
-         "patternId": "SM-T800",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt805m"]
-      },
-      {
-         "patternId": "SM-T800",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt805w"]
+         "patternTokens": ["htcone", "htcone801e"]
       },
       {
          "patternId": "SM-T800",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt805y"]
-      },
-      {
-         "patternId": "SM-T800",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt807p"]
+         "patternTokens": ["smt800", "smt800x", "smt805", "smt805m", "smt805w", "smt805y", "smt807p"]
       },
       {
          "patternId": "XT1080",
@@ -10835,13 +9773,7 @@
          "patternId": "genericFirefoxOS",
          "rankType": "None",
          "patternType": "Simple",
-         "patternTokens": ["mozilla50mobile"]
-      },
-      {
-         "patternId": "genericFirefoxOS",
-         "rankType": "None",
-         "patternType": "Simple",
-         "patternTokens": ["mozilla50tablet"]
+         "patternTokens": ["mozilla50mobile", "mozilla50tablet"]
       },
       {
          "patternId": "HTC Tattoo",
@@ -10979,43 +9911,7 @@
          "patternId": "SM-G710",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg710"]
-      },
-      {
-         "patternId": "SM-G710",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7105l"]
-      },
-      {
-         "patternId": "SM-G710",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7106"]
-      },
-      {
-         "patternId": "SM-G710",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7108"]
-      },
-      {
-         "patternId": "SM-G710",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7108v"]
-      },
-      {
-         "patternId": "SM-G710",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7102t"]
-      },
-      {
-         "patternId": "SM-G710",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg7109"]
+         "patternTokens": ["smg710", "smg7105l", "smg7106", "smg7108", "smg7108v", "smg7102t", "smg7109"]
       },
       {
          "patternId": "Alcatel OT-980",
@@ -11063,13 +9959,7 @@
          "patternId": "Odys-Loox",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["loox"]
-      },
-      {
-         "patternId": "Odys-Loox",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["odysloox"]
+         "patternTokens": ["loox", "odysloox"]
       },
       {
          "patternId": "4Geek Horus",
@@ -11267,13 +10157,7 @@
          "patternId": "SGH-T879",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["samsungsght879"]
-      },
-      {
-         "patternId": "SGH-T879",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sght879"]
+         "patternTokens": ["samsungsght879", "sght879"]
       },
       {
          "patternId": "GT-S5363",
@@ -11741,13 +10625,7 @@
          "patternId": "HTC_DesireS_S510e",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["desires"]
-      },
-      {
-         "patternId": "HTC_DesireS_S510e",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcdesiress510e"]
+         "patternTokens": ["desires", "htcdesiress510e"]
       },
       {
          "patternId": "SM-N900L",
@@ -11855,13 +10733,7 @@
          "patternId": "SonyEricssonLT28i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["lt28i"]
-      },
-      {
-         "patternId": "SonyEricssonLT28i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonlt28i"]
+         "patternTokens": ["lt28i", "sonyericssonlt28i"]
       },
       {
          "patternId": "LG-F120K",
@@ -11933,19 +10805,7 @@
          "patternId": "SonyEricssonLT22i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperiap"]
-      },
-      {
-         "patternId": "SonyEricssonLT22i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt22i"]
-      },
-      {
-         "patternId": "SonyEricssonLT22i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonlt22i"]
+         "patternTokens": ["xperiap", "lt22i", "sonyericssonlt22i"]
       },
       {
          "patternId": "SCH-i929",
@@ -11987,13 +10847,7 @@
          "patternId": "LG-VS980",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["vs980"]
-      },
-      {
-         "patternId": "LG-VS980",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgvs980"]
+         "patternTokens": ["vs980", "lgvs980"]
       },
       {
          "patternId": "ALCATEL one touch 890D",
@@ -12011,13 +10865,7 @@
          "patternId": "Sprint APA9292KT",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sprintapa92"]
-      },
-      {
-         "patternId": "Sprint APA9292KT",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sprintapa9292kt"]
+         "patternTokens": ["sprintapa92", "sprintapa9292kt"]
       },
       {
          "patternId": "SCH-i919",
@@ -12029,25 +10877,13 @@
          "patternId": "SGH-T889",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sght889"]
-      },
-      {
-         "patternId": "SGH-T889",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sght889"]
-      },
-      {
-         "patternId": "Sprint APA7373KT",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcevoshift"]
+         "patternTokens": ["sght889", "sght889"]
       },
       {
          "patternId": "Sprint APA7373KT",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["apa7373kt"]
+         "patternTokens": ["htcevoshift", "apa7373kt"]
       },
       {
          "patternId": "SGP321",
@@ -12761,13 +11597,7 @@
          "patternId": "A310e",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["htcexplorer"]
-      },
-      {
-         "patternId": "A310e",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcexplorera310e"]
+         "patternTokens": ["htcexplorer", "htcexplorera310e"]
       },
       {
          "patternId": "LS670",
@@ -13217,13 +12047,7 @@
          "patternId": "NGM Action",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["action"]
-      },
-      {
-         "patternId": "NGM Action",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["ngmaction"]
+         "patternTokens": ["action", "ngmaction"]
       },
       {
          "patternId": "ALCATEL ONE TOUCH 4010A",
@@ -13282,32 +12106,20 @@
       {
          "patternId": "T-Mobile myTouch 3G",
          "rankType": "Weak",
-         "patternType": "SimpleAnd",
-         "patternTokens": ["wowmobile", "mytouch3g"]
-      },
-      {
-         "patternId": "HTC_C525c",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["c525c"]
-      },
-      {
-         "patternId": "HTC_C525c",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcc525c"]
+         "patternType": "SimpleAnd",
+         "patternTokens": ["wowmobile", "mytouch3g"]
       },
       {
-         "patternId": "ASUS Transformer Pad TF700T",
+         "patternId": "HTC_C525c",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["transformerinfinity"]
+         "patternTokens": ["c525c", "htcc525c"]
       },
       {
          "patternId": "ASUS Transformer Pad TF700T",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["asustransformerpadtf700t"]
+         "patternTokens": ["transformerinfinity", "asustransformerpadtf700t"]
       },
       {
          "patternId": "YP-G50",
@@ -13529,13 +12341,7 @@
          "patternId": "SM-G870",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg870a"]
-      },
-      {
-         "patternId": "SM-G870",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg870f"]
+         "patternTokens": ["smg870a", "smg870f"]
       },
       {
          "patternId": "ADR910L",
@@ -13721,13 +12527,7 @@
          "patternId": "P690",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["optimusnet"]
-      },
-      {
-         "patternId": "P690",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgp690"]
+         "patternTokens": ["optimusnet", "lgp690"]
       },
       {
          "patternId": "7 Mozart",
@@ -13955,175 +12755,13 @@
          "patternId": "SM-T700",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smt700"]
-      },
-      {
-         "patternId": "SM-T700",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt705"]
-      },
-      {
-         "patternId": "SM-T700",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt705m"]
-      },
-      {
-         "patternId": "SM-T700",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt705c"]
-      },
-      {
-         "patternId": "SM-T700",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smt705y"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910a"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910c"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910d"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910f"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910g"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910h"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910j"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910k"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910l"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910p"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910r4"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910t"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910u"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910s"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910v"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn910w8"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn915f"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn915s"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn9106v"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn9106w"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn9108v"]
-      },
-      {
-         "patternId": "SM-N910",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smn9108w"]
+         "patternTokens": ["smt700", "smt705", "smt705m", "smt705c", "smt705y"]
       },
       {
          "patternId": "SM-N910",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smn9109w"]
+         "patternTokens": ["smn910", "smn910a", "smn910c", "smn910d", "smn910f", "smn910g", "smn910h", "smn910j", "smn910k", "smn910l", "smn910p", "smn910r4", "smn910t", "smn910u", "smn910s", "smn910v", "smn910w8", "smn915f", "smn915s", "smn9106v", "smn9106w", "smn9108v", "smn9108w", "smn9109w"]
       },
       {
          "patternId": "SAMSUNG SGH-T399",
@@ -14171,13 +12809,7 @@
          "patternId": "XT937C",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xt937c"]
-      },
-      {
-         "patternId": "XT937C",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["xt937c"]
+         "patternTokens": ["xt937c", "xt937c"]
       },
       {
          "patternId": "SAMSUNG-C6625",
@@ -14339,13 +12971,7 @@
          "patternId": "Nokia 620",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["lumia620"]
-      },
-      {
-         "patternId": "Nokia 620",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["nokia620"]
+         "patternTokens": ["lumia620", "nokia620"]
       },
       {
          "patternId": "Novo7Basic",
@@ -14375,19 +13001,7 @@
          "patternId": "ADR6400L",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["htcmecha"]
-      },
-      {
-         "patternId": "ADR6400L",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["htcthunderbolt"]
-      },
-      {
-         "patternId": "ADR6400L",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["adr6400l"]
+         "patternTokens": ["htcmecha", "htcthunderbolt", "adr6400l"]
       },
       {
          "patternId": "myTouch_4G_Slide",
@@ -14579,19 +13193,7 @@
          "patternId": "SonyEricssonST23i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["st23i"]
-      },
-      {
-         "patternId": "SonyEricssonST23i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyst23i"]
-      },
-      {
-         "patternId": "SonyEricssonST23i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonst23i"]
+         "patternTokens": ["st23i", "sonyst23i", "sonyericssonst23i"]
       },
       {
          "patternId": "SAMSUNG-SGH-T330G",
@@ -14639,19 +13241,7 @@
          "patternId": "SonyEricssonSK17i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperiaminipro"]
-      },
-      {
-         "patternId": "SonyEricssonSK17i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sk17i"]
-      },
-      {
-         "patternId": "SonyEricssonSK17i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonsk17i"]
+         "patternTokens": ["xperiaminipro", "sk17i", "sonyericssonsk17i"]
       },
       {
          "patternId": "LG-CU915",
@@ -14699,13 +13289,7 @@
          "patternId": "Vortex",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["vortex"]
-      },
-      {
-         "patternId": "Vortex",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lgvs660"]
+         "patternTokens": ["vortex", "lgvs660"]
       },
       {
          "patternId": "GT-I9060",
@@ -14723,19 +13307,7 @@
          "patternId": "SM-C105",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smc105"]
-      },
-      {
-         "patternId": "SM-C105",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smc105l"]
-      },
-      {
-         "patternId": "SM-C105",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smc105s"]
+         "patternTokens": ["smc105", "smc105l", "smc105s"]
       },
       {
          "patternId": "GT-B9120",
@@ -14759,13 +13331,7 @@
          "patternId": "SonyEricssonST25i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["st25i"]
-      },
-      {
-         "patternId": "SonyEricssonST25i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonst25i"]
+         "patternTokens": ["st25i", "sonyericssonst25i"]
       },
       {
          "patternId": "Lumia930",
@@ -14789,19 +13355,7 @@
          "patternId": "SonyEricssonST25a",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["st25a"]
-      },
-      {
-         "patternId": "SonyEricssonST25a",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["xperiau"]
-      },
-      {
-         "patternId": "SonyEricssonST25a",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonst25a"]
+         "patternTokens": ["st25a", "xperiau", "sonyericssonst25a"]
       },
       {
          "patternId": "GT-S7710",
@@ -14891,31 +13445,13 @@
          "patternId": "SM-C111",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smc111"]
-      },
-      {
-         "patternId": "SM-C111",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smc111m"]
-      },
-      {
-         "patternId": "SM-C115",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smc115"]
-      },
-      {
-         "patternId": "SM-C115",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smc115l"]
+         "patternTokens": ["smc111", "smc111m"]
       },
       {
          "patternId": "SM-C115",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smc115m"]
+         "patternTokens": ["smc115", "smc115l", "smc115m"]
       },
       {
          "patternId": "LG-F240K",
@@ -14945,13 +13481,7 @@
          "patternId": "NookColor",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["nookbnrv200"]
-      },
-      {
-         "patternId": "NookColor",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["nookcolor"]
+         "patternTokens": ["nookbnrv200", "nookcolor"]
       },
       {
          "patternId": "U8510",
@@ -14969,31 +13499,13 @@
          "patternId": "SonyST21",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sonyst21"]
-      },
-      {
-         "patternId": "SonyEricssonLT18i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt18"]
-      },
-      {
-         "patternId": "SonyEricssonLT18i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonlt18a"]
-      },
-      {
-         "patternId": "SonyEricssonLT18i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt18i"]
+         "patternTokens": ["sonyst21"]
       },
       {
          "patternId": "SonyEricssonLT18i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sonyericssonlt18i"]
+         "patternTokens": ["lt18", "sonyericssonlt18a", "lt18i", "sonyericssonlt18i"]
       },
       {
          "patternId": "GT-S5570L",
@@ -15035,13 +13547,7 @@
          "patternId": "GT-I9000",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["i9000"]
-      },
-      {
-         "patternId": "GT-I9000",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["gti9000"]
+         "patternTokens": ["i9000", "gti9000"]
       },
       {
          "patternId": "USCCADR6230US",
@@ -15155,31 +13661,7 @@
          "patternId": "SM-G530",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg530ds"]
-      },
-      {
-         "patternId": "SM-G530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg530f"]
-      },
-      {
-         "patternId": "SM-G530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg530fz"]
-      },
-      {
-         "patternId": "SM-G530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg530h"]
-      },
-      {
-         "patternId": "SM-G530",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg530y"]
+         "patternTokens": ["smg530ds", "smg530f", "smg530fz", "smg530h", "smg530y"]
       },
       {
          "patternId": "SAMSUNG-GT-S3770",
@@ -15329,13 +13811,7 @@
          "patternId": "E10i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["x10mini"]
-      },
-      {
-         "patternId": "E10i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["e10i"]
+         "patternTokens": ["x10mini", "e10i"]
       },
       {
          "patternId": "97FC",
@@ -15365,19 +13841,7 @@
          "patternId": "SonyEricssonMT11i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperianeov"]
-      },
-      {
-         "patternId": "SonyEricssonMT11i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["mt11i"]
-      },
-      {
-         "patternId": "SonyEricssonMT11i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["sonyericssonmt11i"]
+         "patternTokens": ["xperianeov", "mt11i", "sonyericssonmt11i"]
       },
       {
          "patternId": "SonyEricssonE15a",
@@ -15401,13 +13865,7 @@
          "patternId": "LT28h",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sonyericssonlt28h"]
-      },
-      {
-         "patternId": "LT28h",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt28h"]
+         "patternTokens": ["sonyericssonlt28h", "lt28h"]
       },
       {
          "patternId": "SonyEricssonE15i",
@@ -15635,13 +14093,7 @@
          "patternId": "LT26i",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["xperias"]
-      },
-      {
-         "patternId": "LT26i",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["lt26i"]
+         "patternTokens": ["xperias", "lt26i"]
       },
       {
          "patternId": "HTC6445LVW",
@@ -15677,13 +14129,7 @@
          "patternId": "SM-G357FZ",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["smg357fz"]
-      },
-      {
-         "patternId": "SM-G357FZ",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["smg357m"]
+         "patternTokens": ["smg357fz", "smg357m"]
       },
       {
          "patternId": "GT-P5210",
@@ -16037,19 +14483,7 @@
          "patternId": "U8150",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["fusionideos"]
-      },
-      {
-         "patternId": "U8150",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["ideos"]
-      },
-      {
-         "patternId": "U8150",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["u8150"]
+         "patternTokens": ["fusionideos", "ideos", "u8150"]
       },
       {
          "patternId": "Nokia7210Supernova",
@@ -16301,13 +14735,7 @@
          "patternId": "GT-I9505",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["samsunggti9505orange"]
-      },
-      {
-         "patternId": "GT-I9505",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["gti9505"]
+         "patternTokens": ["samsunggti9505orange", "gti9505"]
       },
       {
          "patternId": "GT-I9508",
@@ -16343,13 +14771,7 @@
          "patternId": "GT-I9500",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["sumsunggalaxys4"]
-      },
-      {
-         "patternId": "GT-I9500",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["gti9500"]
+         "patternTokens": ["sumsunggalaxys4", "gti9500"]
       },
       {
          "patternId": "C6916",
@@ -16565,13 +14987,7 @@
          "patternId": "NGM Quasar",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["quasar"]
-      },
-      {
-         "patternId": "NGM Quasar",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["ngmquasar"]
+         "patternTokens": ["quasar", "ngmquasar"]
       },
       {
          "patternId": "MOT-MOTORAZRV9",
@@ -16625,13 +15041,7 @@
          "patternId": "APC715CKT",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["htcc715c"]
-      },
-      {
-         "patternId": "APC715CKT",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["apc715ckt"]
+         "patternTokens": ["htcc715c", "apc715ckt"]
       },
       {
          "patternId": "SM-T217T",
@@ -16703,13 +15113,7 @@
          "patternId": "VM670",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["m670"]
-      },
-      {
-         "patternId": "VM670",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["vm670"]
+         "patternTokens": ["m670", "vm670"]
       },
       {
          "patternId": "SAMSUNG GT-I9192",
@@ -16733,13 +15137,7 @@
          "patternId": "SAMSUNG GT-I9190",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["gti9190"]
-      },
-      {
-         "patternId": "SAMSUNG GT-I9190",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsunggti9190"]
+         "patternTokens": ["gti9190", "samsunggti9190"]
       },
       {
          "patternId": "LG-F300L",
@@ -16787,13 +15185,7 @@
          "patternId": "BNTV250",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["nooktablet"]
-      },
-      {
-         "patternId": "BNTV250",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["bntv250"]
+         "patternTokens": ["nooktablet", "bntv250"]
       },
       {
          "patternId": "ZiiLABS ZiiO7",
@@ -16811,13 +15203,7 @@
          "patternId": "SAMSUNG-EK-GC100",
          "rankType": "Weak",
          "patternType": "Simple",
-         "patternTokens": ["ekgc100"]
-      },
-      {
-         "patternId": "SAMSUNG-EK-GC100",
-         "rankType": "Weak",
-         "patternType": "Simple",
-         "patternTokens": ["samsungekgc100"]
+         "patternTokens": ["ekgc100", "samsungekgc100"]
       },

[... 332 lines stripped ...]