Best Python code snippet using avocado_python
handle-count-runtime-literals.js
Source:handle-count-runtime-literals.js  
1// Copyright 2015 the V8 project authors. All rights reserved.2// Use of this source code is governed by a BSD-style license that can be3// found in the LICENSE file.4// Flags: --check-handle-count5(function (s) {6  s.frob = function () {7    var j;8    var p0 = /^[\],:{}\s]*$/;9    var p1 = /"[^"\\\n\r]*"|a|b|c|_*-?\d+(?:\.\d*)?(:?[eE][+\-]?\d+)?/g;10    var p2 = /(?:^|:|,)(?:\s*\[)+/g;11    if (p0.test(this.replace(/\\./g, '@').replace(p1, ']').replace(p2, ''))) {12       var tmp = eval('(' + this + ')');13       return 0;14     }15     return -1;16  };17})(String.prototype);18var kvJSON = '[\19  {\n    \"key\": "ionion",\n    \"value\": 779249\n  },\20  {\n    \"key\": "essess",\n    \"value\": 775215\n  },\21  {\n    \"key\": "lerler",\n    \"value\": 773163\n  },\22  {\n    \"key\": "essess",\n    \"value\": 778638\n  },\23  {\n    \"key\": "suosuo",\n    \"value\": 778428\n  },\24  {\n    \"key\": "astast",\n    \"value\": 779719\n  },\25  {\n    \"key\": "oidoid",\n    \"value\": 776316\n  },\26  {\n    \"key\": "onyony",\n    \"value\": 777017\n  },\27  {\n    \"key\": "oryory",\n    \"value\": 775785\n  },\28  {\n    \"key\": "ardard",\n    \"value\": 776276\n  },\29  {\n    \"key\": "nicnic",\n    \"value\": 773163\n  },\30  {\n    \"key\": "udyudy",\n    \"value\": 775255\n  },\31  {\n    \"key\": "blybly",\n    \"value\": 776546\n  },\32  {\n    \"key\": "ormorm",\n    \"value\": 770040\n  },\33  {\n    \"key\": "izeize",\n    \"value\": 774534\n  },\34  {\n    \"key\": "lialia",\n    \"value\": 775135\n  },\35  {\n    \"key\": "thythy",\n    \"value\": 773823\n  },\36  {\n    \"key\": "hiphip",\n    \"value\": 776526\n  },\37  {\n    \"key\": "iseise",\n    \"value\": 772322\n  },\38  {\n    \"key\": "salsal",\n    \"value\": 772122\n  },\39  {\n    \"key\": "essess",\n    \"value\": 775915\n  },\40  {\n    \"key\": "etaeta",\n    \"value\": 779719\n  },\41  {\n    \"key\": "kcakca",\n    \"value\": 776616\n  },\42  {\n    \"key\": "tiktik",\n    \"value\": 773513\n  },\43  {\n    \"key\": "rerrer",\n    \"value\": 773413\n  },\44  {\n    \"key\": "teatea",\n    \"value\": 773313\n  },\45  {\n    \"key\": "izeize",\n    \"value\": 774214\n  },\46  {\n    \"key\": "reyrey",\n    \"value\": 777117\n  },\47  {\n    \"key\": "oteote",\n    \"value\": 770110\n  },\48  {\n    \"key\": "essess",\n    \"value\": 773013\n  },\49  {\n    \"key\": "essess",\n    \"value\": 778798\n  },\50  {\n    \"key\": "tchtch",\n    \"value\": 774294\n  },\51  {\n    \"key\": "taltal",\n    \"value\": 775785\n  },\52  {\n    \"key\": "risris",\n    \"value\": 770380\n  },\53  {\n    \"key\": "ateate",\n    \"value\": 779879\n  },\54  {\n    \"key\": "ousous",\n    \"value\": 770570\n  },\55  {\n    \"key\": "essess",\n    \"value\": 775175\n  },\56  {\n    \"key\": "lesles",\n    \"value\": 772862\n  },\57  {\n    \"key\": "iveive",\n    \"value\": 771561\n  },\58  {\n    \"key\": "diadia",\n    \"value\": 772262\n  },\59  {\n    \"key\": "ekieki",\n    \"value\": 776956\n  },\60  {\n    \"key\": "omaoma",\n    \"value\": 771751\n  },\61  {\n    \"key\": "nalnal",\n    \"value\": 777457\n  },\62  {\n    \"key\": "essess",\n    \"value\": 776256\n  },\63  {\n    \"key\": "ilyily",\n    \"value\": 775055\n  },\64  {\n    \"key\": "emuemu",\n    \"value\": 776846\n  },\65  {\n    \"key\": "eeteet",\n    \"value\": 778648\n  },\66  {\n    \"key\": "rerrer",\n    \"value\": 770540\n  },\67  {\n    \"key\": "eaeeae",\n    \"value\": 774344\n  },\68  {\n    \"key\": "lumlum",\n    \"value\": 779149\n  },\69  {\n    \"key\": "essess",\n    \"value\": 774044\n  },\70  {\n    \"key\": "antant",\n    \"value\": 771931\n  },\71  {\n    \"key\": "lahlah",\n    \"value\": 778738\n  },\72  {\n    \"key\": "tnatna",\n    \"value\": 775635\n  },\73  {\n    \"key\": "oseose",\n    \"value\": 774534\n  },\74  {\n    \"key\": "ataata",\n    \"value\": 773433\n  },\75  {\n    \"key\": "inging",\n    \"value\": 772332\n  },\76  {\n    \"key\": "ypeype",\n    \"value\": 772232\n  },\77  {\n    \"key\": "tictic",\n    \"value\": 772132\n  },\78  {\n    \"key\": "hiphip",\n    \"value\": 773033\n  },\79  {\n    \"key\": "taltal",\n    \"value\": 774924\n  },\80  {\n    \"key\": "istist",\n    \"value\": 776826\n  },\81  {\n    \"key\": "ralral",\n    \"value\": 778728\n  },\82  {\n    \"key\": "tortor",\n    \"value\": 770720\n  },\83  {\n    \"key\": "rnsrns",\n    \"value\": 773623\n  },\84  {\n    \"key\": "siasia",\n    \"value\": 776526\n  },\85  {\n    \"key\": "yabyab",\n    \"value\": 779429\n  },\86  {\n    \"key\": "noinoi",\n    \"value\": 773423\n  },\87  {\n    \"key\": "ardard",\n    \"value\": 777327\n  },\88  {\n    \"key\": "derder",\n    \"value\": 771321\n  },\89  {\n    \"key\": "iveive",\n    \"value\": 775225\n  },\90  {\n    \"key\": "ateate",\n    \"value\": 779129\n  },\91  {\n    \"key\": "imoimo",\n    \"value\": 774124\n  },\92  {\n    \"key\": "adeade",\n    \"value\": 779029\n  },\93  {\n    \"key\": "ugeuge",\n    \"value\": 774024\n  },\94  {\n    \"key\": "iveive",\n    \"value\": 779919\n  },\95  {\n    \"key\": "belbel",\n    \"value\": 775915\n  },\96  {\n    \"key\": "inging",\n    \"value\": 770910\n  },\97  {\n    \"key\": "barbar",\n    \"value\": 776816\n  },\98  {\n    \"key\": "ionion",\n    \"value\": 772812\n  },\99  {\n    \"key\": "ineine",\n    \"value\": 778718\n  },\100  {\n    \"key\": "ityity",\n    \"value\": 774714\n  },\101  {\n    \"key\": "ytiyti",\n    \"value\": 770710\n  },\102  {\n    \"key\": "ismism",\n    \"value\": 777617\n  },\103  {\n    \"key\": "iumium",\n    \"value\": 773613\n  },\104  {\n    \"key\": "hichic",\n    \"value\": 770610\n  },\105  {\n    \"key\": "ideide",\n    \"value\": 777517\n  },\106  {\n    \"key\": "denden",\n    \"value\": 774514\n  },\107  {\n    \"key\": "redred",\n    \"value\": 770510\n  },\108  {\n    \"key\": "perper",\n    \"value\": 778418\n  },\109  {\n    \"key\": "rusrus",\n    \"value\": 775415\n  },\110  {\n    \"key\": "herher",\n    \"value\": 772412\n  },\111  {\n    \"key\": "sidsid",\n    \"value\": 779319\n  },\112  {\n    \"key\": "ianian",\n    \"value\": 777317\n  },\113  {\n    \"key\": "ricric",\n    \"value\": 774314\n  },\114  {\n    \"key\": "odyody",\n    \"value\": 772312\n  },\115  {\n    \"key\": "ferfer",\n    \"value\": 779219\n  },\116  {\n    \"key\": "ogyogy",\n    \"value\": 777217\n  },\117  {\n    \"key\": "micmic",\n    \"value\": 775215\n  },\118  {\n    \"key\": "ateate",\n    \"value\": 772212\n  },\119  {\n    \"key\": "tantan",\n    \"value\": 770210\n  },\120  {\n    \"key\": "getget",\n    \"value\": 778118\n  },\121  {\n    \"key\": "ulaula",\n    \"value\": 776116\n  },\122  {\n    \"key\": "calcal",\n    \"value\": 774114\n  },\123  {\n    \"key\": "izeize",\n    \"value\": 772112\n  },\124  {\n    \"key\": "manman",\n    \"value\": 770110\n  },\125  {\n    \"key\": "terter",\n    \"value\": 778018\n  },\126  {\n    \"key\": "hedhed",\n    \"value\": 777017\n  },\127  {\n    \"key\": "berber",\n    \"value\": 775015\n  },\128  {\n    \"key\": "olfolf",\n    \"value\": 773013\n  },\129  {\n    \"key\": "opeope",\n    \"value\": 772012\n  },\130  {\n    \"key\": "hiphip",\n    \"value\": 770010\n  },\131  {\n    \"key\": "tedted",\n    \"value\": 779899\n  },\132  {\n    \"key\": "ismism",\n    \"value\": 773793\n  },\133  {\n    \"key\": "terter",\n    \"value\": 778598\n  },\134  {\n    \"key\": "ismism",\n    \"value\": 774494\n  },\135  {\n    \"key\": "ikeike",\n    \"value\": 779299\n  },\136  {\n    \"key\": "sdrsdr",\n    \"value\": 776196\n  },\137  {\n    \"key\": "calcal",\n    \"value\": 772092\n  },\138  {\n    \"key\": "ledled",\n    \"value\": 779889\n  },\139  {\n    \"key\": "coicoi",\n    \"value\": 776786\n  },\140  {\n    \"key\": "ialial",\n    \"value\": 773683\n  },\141  {\n    \"key\": "izeize",\n    \"value\": 771581\n  },\142  {\n    \"key\": "ogyogy",\n    \"value\": 778388\n  },\143  {\n    \"key\": "ismism",\n    \"value\": 777287\n  },\144  {\n    \"key\": "Huk",\n    \"value\": 775185\n  },\145  {\n    \"key\": "nonnon",\n    \"value\": 774084\n  },\146  {\n    \"key\": "ledled",\n    \"value\": 773973\n  },\147  {\n    \"key\": "llylly",\n    \"value\": 772872\n  },\148  {\n    \"key\": "ishish",\n    \"value\": 771771\n  },\149  {\n    \"key\": "terter",\n    \"value\": 771671\n  },\150  {\n    \"key\": "iorior",\n    \"value\": 771571\n  },\151  {\n    \"key\": "ionion",\n    \"value\": 771471\n  },\152  {\n    \"key\": "luslus",\n    \"value\": 771371\n  },\153  {\n    \"key\": "detdet",\n    \"value\": 771271\n  },\154  {\n    \"key\": "ionion",\n    \"value\": 772172\n  },\155  {\n    \"key\": "ezoezo",\n    \"value\": 773073\n  },\156  {\n    \"key\": "iceice",\n    \"value\": 774964\n  },\157  {\n    \"key\": "piapia",\n    \"value\": 775865\n  },\158  {\n    \"key\": "nedned",\n    \"value\": 776766\n  },\159  {\n    \"key\": "ffaffa",\n    \"value\": 778668\n  },\160  {\n    \"key\": "oidoid",\n    \"value\": 779569\n  },\161  {\n    \"key\": "ureure",\n    \"value\": 771561\n  },\162  {\n    \"key\": "akaaka",\n    \"value\": 773463\n  },\163  {\n    \"key\": "jimjim",\n    \"value\": 775365\n  },\164  {\n    \"key\": "calcal",\n    \"value\": 778268\n  },\165  {\n    \"key\": "istist",\n    \"value\": 770260\n  },\166  {\n    \"key\": "ickick",\n    \"value\": 773163\n  },\167  {\n    \"key\": "ncence",\n    \"value\": 775065\n  },\168  {\n    \"key\": "ikeike",\n    \"value\": 778958\n  },\169  {\n    \"key\": "omeome",\n    \"value\": 771951\n  },\170  {\n    \"key\": "ismism",\n    \"value\": 774854\n  },\171  {\n    \"key\": "eeleel",\n    \"value\": 778758\n  },\172  {\n    \"key\": "ialial",\n    \"value\": 771751\n  },\173  {\n    \"key\": "deadea",\n    \"value\": 774654\n  },\174  {\n    \"key\": "fulful",\n    \"value\": 778558\n  },\175  {\n    \"key\": "bleble",\n    \"value\": 772552\n  },\176  {\n    \"key\": "tahtah",\n    \"value\": 776456\n  },\177  {\n    \"key\": "astast",\n    \"value\": 770450\n  },\178  {\n    \"key\": "ylsyls",\n    \"value\": 774354\n  },\179  {\n    \"key\": "ziazia",\n    \"value\": 778258\n  },\180  {\n    \"key\": "ssesse",\n    \"value\": 772252\n  },\181  {\n    \"key\": "essess",\n    \"value\": 776156\n  },\182  {\n    \"key\": "lewlew",\n    \"value\": 771151\n  },\183  {\n    \"key\": "ionion",\n    \"value\": 775055\n  },\184  {\n    \"key\": "ackack",\n    \"value\": 770050\n  },\185  {\n    \"key\": "wedwed",\n    \"value\": 775945\n  },\186  {\n    \"key\": "gnigni",\n    \"value\": 779849\n  },\187  {\n    \"key\": "areare",\n    \"value\": 774844\n  },\188  {\n    \"key\": "oleole",\n    \"value\": 779749\n  },\189  {\n    \"key\": "ateate",\n    \"value\": 774744\n  },\190  {\n    \"key\": "ousous",\n    \"value\": 779649\n  },\191  {\n    \"key\": "niania",\n    \"value\": 775645\n  },\192  {\n    \"key\": "tletle",\n    \"value\": 770640\n  },\193  {\n    \"key\": "cimcim",\n    \"value\": 775545\n  },\194  {\n    \"key\": "eedeed",\n    \"value\": 771541\n  },\195  {\n    \"key\": "bleble",\n    \"value\": 776446\n  },\196  {\n    \"key\": "tcatca",\n    \"value\": 772442\n  },\197  {\n    \"key\": "oneone",\n    \"value\": 777347\n  },\198  {\n    \"key\": "nidnid",\n    \"value\": 773343\n  },\199  {\n    \"key\": "hnahna",\n    \"value\": 779249\n  },\200  {\n    \"key\": "olfolf",\n    \"value\": 775245\n  },\201  {\n    \"key\": "ousous",\n    \"value\": 770240\n  },\202  {\n    \"key\": "verver",\n    \"value\": 776146\n  },\203  {\n    \"key\": "oseose",\n    \"value\": 772142\n  },\204  {\n    \"key\": "tictic",\n    \"value\": 779049\n  },\205  {\n    \"key\": "essess",\n    \"value\": 775045\n  },\206  {\n    \"key\": "ionion",\n    \"value\": 771041\n  },\207  {\n    \"key\": "iedied",\n    \"value\": 777937\n  },\208  {\n    \"key\": "diadia",\n    \"value\": 773933\n  },\209  {\n    \"key\": "ityity",\n    \"value\": 770930\n  },\210  {\n    \"key\": "fulful",\n    \"value\": 776836\n  },\211  {\n    \"key\": "ukeuke",\n    \"value\": 773833\n  },\212  {\n    \"key\": "intint",\n    \"value\": 779739\n  },\213  {\n    \"key\": "hoqhoq",\n    \"value\": 776736\n  },\214  {\n    \"key\": "yoxyox",\n    \"value\": 772732\n  },\215  {\n    \"key\": "taltal",\n    \"value\": 779639\n  },\216  {\n    \"key\": "paipai",\n    \"value\": 776636\n  },\217  {\n    \"key\": "eanean",\n    \"value\": 772632\n  },\218  {\n    \"key\": "ineine",\n    \"value\": 779539\n  },\219  {\n    \"key\": "uthuth",\n    \"value\": 776536\n  },\220  {\n    \"key\": "izeize",\n    \"value\": 773533\n  },\221  {\n    \"key\": "rubrub",\n    \"value\": 770530\n  },\222  {\n    \"key\": "ilyily",\n    \"value\": 777437\n  },\223  {\n    \"key\": "ylbylb",\n    \"value\": 774434\n  },\224  {\n    \"key\": "liclic",\n    \"value\": 771431\n  },\225  {\n    \"key\": "bleble",\n    \"value\": 778338\n  },\226  {\n    \"key\": "elyely",\n    \"value\": 775335\n  },\227  {\n    \"key\": "nelnel",\n    \"value\": 772332\n  },\228  {\n    \"key\": "siasia",\n    \"value\": 779239\n  },\229  {\n    \"key\": "monmon",\n    \"value\": 777237\n  },\230  {\n    \"key\": "rinrin",\n    \"value\": 774234\n  },\231  {\n    \"key\": "nalnal",\n    \"value\": 771231\n  },\232  {\n    \"key\": "etyety",\n    \"value\": 779139\n  },\233  {\n    \"key\": "tictic",\n    \"value\": 776136\n  },\234  {\n    \"key\": "hsuhsu",\n    \"value\": 773133\n  },\235  {\n    \"key\": "testes",\n    \"value\": 771131\n  },\236  {\n    \"key\": "ritrit",\n    \"value\": 778038\n  },\237  {\n    \"key\": "gabgab",\n    \"value\": 776036\n  },\238  {\n    \"key\": "naenae",\n    \"value\": 773033\n  },\239  {\n    \"key\": "noinoi",\n    \"value\": 771031\n  },\240  {\n    \"key\": "ondond",\n    \"value\": 778928\n  },\241  {\n    \"key\": "nisnis",\n    \"value\": 776926\n  },\242  {\n    \"key\": "ianian",\n    \"value\": 774924\n  },\243  {\n    \"key\": "cincin",\n    \"value\": 771921\n  },\244  {\n    \"key\": "luslus",\n    \"value\": 779829\n  },\245  {\n    \"key\": "llylly",\n    \"value\": 777827\n  },\246  {\n    \"key\": "ltylty",\n    \"value\": 775825\n  },\247  {\n    \"key\": "nienie",\n    \"value\": 772822\n  },\248  {\n    \"key\": "ookook",\n    \"value\": 770820\n  },\249  {\n    \"key\": "oinoin",\n    \"value\": 778728\n  },\250  {\n    \"key\": "dmidmi",\n    \"value\": 776726\n  },\251  {\n    \"key\": "macmac",\n    \"value\": 774724\n  },\252  {\n    \"key\": "bleble",\n    \"value\": 772722\n  },\253  {\n    \"key\": "ionion",\n    \"value\": 770720\n  },\254  {\n    \"key\": "manman",\n    \"value\": 778628\n  },\255  {\n    \"key\": "cipcip",\n    \"value\": 776626\n  },\256  {\n    \"key\": "barbar",\n    \"value\": 774624\n  },\257  {\n    \"key\": "llylly",\n    \"value\": 772622\n  },\258  {\n    \"key\": "hothot",\n    \"value\": 770620\n  },\259  {\n    \"key\": "oodood",\n    \"value\": 778528\n  },\260  {\n    \"key\": "cumcum",\n    \"value\": 776526\n  },\261  {\n    \"key\": "rkarka",\n    \"value\": 774524\n  },\262  {\n    \"key\": "iveive",\n    \"value\": 772522\n  },\263  {\n    \"key\": "ranran",\n    \"value\": 771521\n  },\264  {\n    \"key\": "lesles",\n    \"value\": 779429\n  },\265  {\n    \"key\": "fulful",\n    \"value\": 777427\n  },\266  {\n    \"key\": "nalnal",\n    \"value\": 775425\n  },\267  {\n    \"key\": "ousous",\n    \"value\": 773423\n  },\268  {\n    \"key\": "inging",\n    \"value\": 772422\n  },\269  {\n    \"key\": "ionion",\n    \"value\": 770420\n  },\270  {\n    \"key\": "ousous",\n    \"value\": 778328\n  },\271  {\n    \"key\": "pitpit",\n    \"value\": 777327\n  },\272  {\n    \"key\": "oicoic",\n    \"value\": 775325\n  },\273  {\n    \"key\": "vetvet",\n    \"value\": 773323\n  },\274  {\n    \"key\": "erkerk",\n    \"value\": 772322\n  },\275  {\n    \"key\": "ncyncy",\n    \"value\": 770320\n  },\276  {\n    \"key\": "ionion",\n    \"value\": 779229\n  },\277  {\n    \"key\": "inging",\n    \"value\": 777227\n  },\278  {\n    \"key\": "tictic",\n    \"value\": 775225\n  },\279  {\n    \"key\": "sissis",\n    \"value\": 774224\n  },\280  {\n    \"key\": "rgyrgy",\n    \"value\": 772222\n  },\281  {\n    \"key\": "tictic",\n    \"value\": 771221\n  },\282  {\n    \"key\": "oedoed",\n    \"value\": 779129\n  },\283  {\n    \"key\": "omaoma",\n    \"value\": 778128\n  },\284  {\n    \"key\": "hiphip",\n    \"value\": 777127\n  },\285  {\n    \"key\": "ncence",\n    \"value\": 775125\n  },\286  {\n    \"key\": "ousous",\n    \"value\": 774124\n  },\287  {\n    \"key\": "rghrgh",\n    \"value\": 772122\n  },\288  {\n    \"key\": "ebtebt",\n    \"value\": 771121\n  },\289  {\n    \"key\": "msimsi",\n    \"value\": 779029\n  },\290  {\n    \"key\": "inging",\n    \"value\": 778028\n  },\291  {\n    \"key\": "aukauk",\n    \"value\": 777027\n  },\292  {\n    \"key\": "getget",\n    \"value\": 775025\n  },\293  {\n    \"key\": "otaota",\n    \"value\": 774024\n  },\294  {\n    \"key\": "oseose",\n    \"value\": 773023\n  },\295  {\n    \"key\": "sapsap",\n    \"value\": 771021\n  },\296  {\n    \"key\": "micmic",\n    \"value\": 770020\n  },\297  {\n    \"key\": "calcal",\n    \"value\": 779919\n  },\298  {\n    \"key\": "ismism",\n    \"value\": 778918\n  },\299  {\n    \"key\": "dlydly",\n    \"value\": 776916\n  },\300  {\n    \"key\": "ionion",\n    \"value\": 775915\n  },\301  {\n    \"key\": "stysty",\n    \"value\": 774914\n  },\302  {\n    \"key\": "kgokgo",\n    \"value\": 773913\n  },\303  {\n    \"key\": "entent",\n    \"value\": 772912\n  },\304  {\n    \"key\": "entent",\n    \"value\": 770910\n  },\305  {\n    \"key\": "manman",\n    \"value\": 779819\n  },\306  {\n    \"key\": "minmin",\n    \"value\": 778818\n  },\307  {\n    \"key\": "gotgot",\n    \"value\": 777817\n  },\308  {\n    \"key\": "unkunk",\n    \"value\": 776816\n  },\309  {\n    \"key\": "ionion",\n    \"value\": 775815\n  },\310  {\n    \"key\": "kerker",\n    \"value\": 773813\n  },\311  {\n    \"key\": "eltelt",\n    \"value\": 772812\n  },\312  {\n    \"key\": "manman",\n    \"value\": 771811\n  },\313  {\n    \"key\": "ncence",\n    \"value\": 770810\n  },\314  {\n    \"key\": "ernern",\n    \"value\": 779719\n  },\315  {\n    \"key\": "eegeeg",\n    \"value\": 778718\n  },\316  {\n    \"key\": "athath",\n    \"value\": 777717\n  },\317  {\n    \"key\": "daedae",\n    \"value\": 776716\n  },\318  {\n    \"key\": "ionion",\n    \"value\": 775715\n  },\319  {\n    \"key\": "kerker",\n    \"value\": 774714\n  },\320  {\n    \"key\": "terter",\n    \"value\": 773713\n  },\321  {\n    \"key\": "essess",\n    \"value\": 772712\n  },\322  {\n    \"key\": "aneane",\n    \"value\": 771711\n  },\323  {\n    \"key\": "lahlah",\n    \"value\": 770710\n  },\324  {\n    \"key\": "inging",\n    \"value\": 779619\n  },\325  {\n    \"key\": "pilpil",\n    \"value\": 778618\n  },\326  {\n    \"key\": "iseise",\n    \"value\": 777617\n  },\327  {\n    \"key\": "sonson",\n    \"value\": 776616\n  },\328  {\n    \"key\": "ityity",\n    \"value\": 775615\n  },\329  {\n    \"key\": "esaesa",\n    \"value\": 774614\n  },\330  {\n    \"key\": "araara",\n    \"value\": 773613\n  },\331  {\n    \"key\": "perper",\n    \"value\": 772612\n  },\332  {\n    \"key\": "siasia",\n    \"value\": 771611\n  },\333  {\n    \"key\": "bleble",\n    \"value\": 770610\n  },\334  {\n    \"key\": "rumrum",\n    \"value\": 779519\n  },\335  {\n    \"key\": "toltol",\n    \"value\": 779519\n  },\336  {\n    \"key\": "ousous",\n    \"value\": 778518\n  },\337  {\n    \"key\": "ateate",\n    \"value\": 777517\n  },\338  {\n    \"key\": "verver",\n    \"value\": 776516\n  },\339  {\n    \"key\": "psepse",\n    \"value\": 775515\n  },\340  {\n    \"key\": "rkyrky",\n    \"value\": 774514\n  },\341  {\n    \"key\": "uleule",\n    \"value\": 773513\n  },\342  {\n    \"key\": "adaada",\n    \"value\": 772512\n  },\343  {\n    \"key\": "minmin",\n    \"value\": 772512\n  },\344  {\n    \"key\": "amiami",\n    \"value\": 771511\n  },\345  {\n    \"key\": "ulfulf",\n    \"value\": 770510\n  },\346  {\n    \"key\": "rtzrtz",\n    \"value\": 779419\n  },\347  {\n    \"key\": "ockock",\n    \"value\": 778418\n  },\348  {\n    \"key\": "izeize",\n    \"value\": 778418\n  },\349  {\n    \"key\": "oidoid",\n    \"value\": 777417\n  },\350  {\n    \"key\": "bisbis",\n    \"value\": 776416\n  },\351  {\n    \"key\": "nedned",\n    \"value\": 775415\n  },\352  {\n    \"key\": "ralral",\n    \"value\": 774414\n  },\353  {\n    \"key\": "aryary",\n    \"value\": 774414\n  },\354  {\n    \"key\": "ikeike",\n    \"value\": 773413\n  },\355  {\n    \"key\": "terter",\n    \"value\": 772412\n  },\356  {\n    \"key\": "oveove",\n    \"value\": 771411\n  },\357  {\n    \"key\": "ineine",\n    \"value\": 771411\n  },\358  {\n    \"key\": "ebiebi",\n    \"value\": 770410\n  },\359  {\n    \"key\": "iumium",\n    \"value\": 779319\n  },\360  {\n    \"key\": "dgedge",\n    \"value\": 779319\n  },\361  {\n    \"key\": "riaria",\n    \"value\": 778318\n  },\362  {\n    \"key\": "upaupa",\n    \"value\": 777317\n  },\363  {\n    \"key\": "entent",\n    \"value\": 776316\n  },\364  {\n    \"key\": "eneene",\n    \"value\": 776316\n  },\365  {\n    \"key\": "ridrid",\n    \"value\": 775315\n  },\366  {\n    \"key\": "llelle",\n    \"value\": 774314\n  },\367  {\n    \"key\": "dlydly",\n    \"value\": 774314\n  },\368  {\n    \"key\": "angang",\n    \"value\": 773313\n  },\369  {\n    \"key\": "tictic",\n    \"value\": 772312\n  },\370  {\n    \"key\": "ontont",\n    \"value\": 772312\n  },\371  {\n    \"key\": "astast",\n    \"value\": 771311\n  },\372  {\n    \"key\": "suosuo",\n    \"value\": 770310\n  },\373  {\n    \"key\": "essess",\n    \"value\": 770310\n  },\374  {\n    \"key\": "essess",\n    \"value\": 779219\n  },\375  {\n    \"key\": "istist",\n    \"value\": 778218\n  },\376  {\n    \"key\": "inaina",\n    \"value\": 778218\n  },\377  {\n    \"key\": "ewdewd",\n    \"value\": 777217\n  },\378  {\n    \"key\": "verver",\n    \"value\": 776216\n  },\379  {\n    \"key\": "ionion",\n    \"value\": 776216\n  },\380  {\n    \"key\": "ardard",\n    \"value\": 775215\n  },\381  {\n    \"key\": "pidpid",\n    \"value\": 775215\n  },\382  {\n    \"key\": "eltelt",\n    \"value\": 774214\n  },\383  {\n    \"key\": "letlet",\n    \"value\": 773213\n  },\384  {\n    \"key\": "iesies",\n    \"value\": 773213\n  },\385  {\n    \"key\": "ityity",\n    \"value\": 772212\n  },\386  {\n    \"key\": "chacha",\n    \"value\": 772212\n  },\387  {\n    \"key\": "ngenge",\n    \"value\": 771211\n  },\388  {\n    \"key\": "terter",\n    \"value\": 770210\n  },\389  {\n    \"key\": "eanean",\n    \"value\": 770210\n  },\390  {\n    \"key\": "bleble",\n    \"value\": 779119\n  },\391  {\n    \"key\": "llylly",\n    \"value\": 779119\n  },\392  {\n    \"key\": "hiphip",\n    \"value\": 778118\n  },\393  {\n    \"key\": "omaoma",\n    \"value\": 778118\n  },\394  {\n    \"key\": "agoago",\n    \"value\": 777117\n  },\395  {\n    \"key\": "oidoid",\n    \"value\": 776116\n  },\396  {\n    \"key\": "manman",\n    \"value\": 776116\n  },\397  {\n    \"key\": "ismism",\n    \"value\": 775115\n  },\398  {\n    \"key\": "audaud",\n    \"value\": 775115\n  },\399  {\n    \"key\": "ismism",\n    \"value\": 774114\n  },\400  {\n    \"key\": "ionion",\n    \"value\": 774114\n  },\401  {\n    \"key\": "thgthg",\n    \"value\": 773113\n  },\402  {\n    \"key\": "endend",\n    \"value\": 773113\n  },\403  {\n    \"key\": "udeude",\n    \"value\": 772112\n  },\404  {\n    \"key\": "ashash",\n    \"value\": 772112\n  },\405  {\n    \"key\": "ankank",\n    \"value\": 771111\n  },\406  {\n    \"key\": "calcal",\n    \"value\": 771111\n  },\407  {\n    \"key\": "pleple",\n    \"value\": 770110\n  },\408  {\n    \"key\": "hedhed",\n    \"value\": 770110\n  },\409  {\n    \"key\": "bleble",\n    \"value\": 779019\n  },\410  {\n    \"key\": "tictic",\n    \"value\": 779019\n  },\411  {\n    \"key\": "yteyte",\n    \"value\": 778018\n  },\412  {\n    \"key\": "oldold",\n    \"value\": 778018\n  },\413  {\n    \"key\": "steste",\n    \"value\": 777017\n  },\414  {\n    \"key\": "ishish",\n    \"value\": 777017\n  },\415  {\n    \"key\": "ineine",\n    \"value\": 776016\n  },\416  {\n    \"key\": "manman",\n    \"value\": 776016\n  },\417  {\n    \"key\": "miamia",\n    \"value\": 775015\n  },\418  {\n    \"key\": "ifeife",\n    \"value\": 775015\n  },\419  {\n    \"key\": "ssassa",\n    \"value\": 774014\n  },\420  {\n    \"key\": "apeape",\n    \"value\": 774014\n  },\421  {\n    \"key\": "essess",\n    \"value\": 773013\n  },\422  {\n    \"key\": "fowfow",\n    \"value\": 773013\n  },\423  {\n    \"key\": "siasia",\n    \"value\": 773013\n  },\424  {\n    \"key\": "bleble",\n    \"value\": 772012\n  },\425  {\n    \"key\": "eaeeae",\n    \"value\": 772012\n  },\426  {\n    \"key\": "larlar",\n    \"value\": 771011\n  },\427  {\n    \"key\": "tedted",\n    \"value\": 771011\n  },\428  {\n    \"key\": "ralral",\n    \"value\": 770010\n  },\429  {\n    \"key\": "ousous",\n    \"value\": 770010\n  },\430  {\n    \"key\": "hpahpa",\n    \"value\": 779999\n  },\431  {\n    \"key\": "iumium",\n    \"value\": 775995\n  },\432  {\n    \"key\": "reeree",\n    \"value\": 770990\n  },\433  {\n    \"key\": "hinhin",\n    \"value\": 776896\n  },\434  {\n    \"key\": "malmal",\n    \"value\": 772892\n  },\435  {\n    \"key\": "hathat",\n    \"value\": 778798\n  },\436  {\n    \"key\": "dondon",\n    \"value\": 774794\n  },\437  {\n    \"key\": "tictic",\n    \"value\": 770790\n  },\438  {\n    \"key\": "ataata",\n    \"value\": 776696\n  },\439  {\n    \"key\": "ilyily",\n    \"value\": 771691\n  },\440  {\n    \"key\": "assass",\n    \"value\": 777597\n  },\441  {\n    \"key\": "trytry",\n    \"value\": 773593\n  },\442  {\n    \"key\": "essess",\n    \"value\": 779499\n  },\443  {\n    \"key\": "ssesse",\n    \"value\": 775495\n  },\444  {\n    \"key\": "horhor",\n    \"value\": 772492\n  },\445  {\n    \"key\": "ionion",\n    \"value\": 778398\n  },\446  {\n    \"key\": "glygly",\n    \"value\": 774394\n  },\447  {\n    \"key\": "izeize",\n    \"value\": 770390\n  },\448  {\n    \"key\": "essess",\n    \"value\": 776296\n  },\449  {\n    \"key\": "dledle",\n    \"value\": 772292\n  },\450  {\n    \"key\": "calcal",\n    \"value\": 778198\n  },\451  {\n    \"key\": "denden",\n    \"value\": 775195\n  },\452  {\n    \"key\": "ateate",\n    \"value\": 771191\n  },\453  {\n    \"key\": "ylsyls",\n    \"value\": 777097\n  },\454  {\n    \"key\": "oidoid",\n    \"value\": 774094\n  },\455  {\n    \"key\": "llalla",\n    \"value\": 770090\n  },\456  {\n    \"key\": "inging",\n    \"value\": 776986\n  },\457  {\n    \"key\": "omeome",\n    \"value\": 773983\n  },\458  {\n    \"key\": "ttette",\n    \"value\": 779889\n  },\459  {\n    \"key\": "uliuli",\n    \"value\": 776886\n  },\460  {\n    \"key\": "istist",\n    \"value\": 772882\n  },\461  {\n    \"key\": "dlydly",\n    \"value\": 778788\n  },\462  {\n    \"key\": "riaria",\n    \"value\": 775785\n  },\463  {\n    \"key\": "ianian",\n    \"value\": 771781\n  },\464  {\n    \"key\": "deldel",\n    \"value\": 778688\n  },\465  {\n    \"key\": "eaeeae",\n    \"value\": 775685\n  },\466  {\n    \"key\": "gungun",\n    \"value\": 771681\n  },\467  {\n    \"key\": "inging",\n    \"value\": 778588\n  },\468  {\n    \"key\": "noinoi",\n    \"value\": 774584\n  },\469  {\n    \"key\": "serser",\n    \"value\": 771581\n  },\470  {\n    \"key\": "ikeike",\n    \"value\": 778488\n  },\471  {\n    \"key\": "rkyrky",\n    \"value\": 774484\n  },\472  {\n    \"key\": "fulful",\n    \"value\": 771481\n  },\473  {\n    \"key\": "acyacy",\n    \"value\": 778388\n  },\474  {\n    \"key\": "nedned",\n    \"value\": 775385\n  },\475  {\n    \"key\": "icaica",\n    \"value\": 771381\n  },\476  {\n    \"key\": "ousous",\n    \"value\": 778288\n  },\477  {\n    \"key\": "gyegye",\n    \"value\": 775285\n  },\478  {\n    \"key\": "iumium",\n    \"value\": 772282\n  },\479  {\n    \"key\": "ockock",\n    \"value\": 779189\n  },\480  {\n    \"key\": "ushush",\n    \"value\": 775185\n  },\481  {\n    \"key\": "noinoi",\n    \"value\": 772182\n  },\482  {\n    \"key\": "ootoot",\n    \"value\": 779089\n  },\483  {\n    \"key\": "entent",\n    \"value\": 776086\n  },\484  {\n    \"key\": "llylly",\n    \"value\": 773083\n  },\485  {\n    \"key\": "ilyily",\n    \"value\": 770080\n  },\486  {\n    \"key\": "sdrsdr",\n    \"value\": 777977\n  },\487  {\n    \"key\": "ionion",\n    \"value\": 774974\n  },\488  {\n    \"key\": "hlyhly",\n    \"value\": 771971\n  },\489  {\n    \"key\": "adoado",\n    \"value\": 778878\n  },\490  {\n    \"key\": "inkink",\n    \"value\": 775875\n  },\491  {\n    \"key\": "ineine",\n    \"value\": 772872\n  },\492  {\n    \"key\": "ousous",\n    \"value\": 779779\n  },\493  {\n    \"key\": "opeope",\n    \"value\": 776776\n  },\494  {\n    \"key\": "cilcil",\n    \"value\": 773773\n  },\495  {\n    \"key\": "ncyncy",\n    \"value\": 771771\n  },\496  {\n    \"key\": "opyopy",\n    \"value\": 778678\n  },\497  {\n    \"key\": "essess",\n    \"value\": 775675\n  },\498  {\n    \"key\": "ygoygo",\n    \"value\": 772672\n  },\499  {\n    \"key\": "ricric",\n    \"value\": 779579\n  },\500  {\n    \"key\": "inging",\n    \"value\": 776576\n  },\501  {\n    \"key\": "einein",\n    \"value\": 774574\n  },\502  {\n    \"key\": "onaona",\n    \"value\": 771571\n  },\503  {\n    \"key\": "elyely",\n    \"value\": 778478\n  },\504  {\n    \"key\": "auraur",\n    \"value\": 775475\n  },\505  {\n    \"key\": "tortor",\n    \"value\": 773473\n  },\506  {\n    \"key\": "iveive",\n    \"value\": 770470\n  },\507  {\n    \"key\": "taltal",\n    \"value\": 777377\n  },\508  {\n    \"key\": "daedae",\n    \"value\": 775375\n  },\509  {\n    \"key\": "rkarka",\n    \"value\": 772372\n  },\510  {\n    \"key\": "wayway",\n    \"value\": 779279\n  },\511  {\n    \"key\": "ousous",\n    \"value\": 777277\n  },\512  {\n    \"key\": "iveive",\n    \"value\": 774274\n  },\513  {\n    \"key\": "woewoe",\n    \"value\": 772272\n  },\514  {\n    \"key\": "rphrph",\n    \"value\": 779179\n  },\515  {\n    \"key\": "eeteet",\n    \"value\": 776176\n  },\516  {\n    \"key\": "gnigni",\n    \"value\": 774174\n  },\517  {\n    \"key\": "inkink",\n    \"value\": 771171\n  },\518  {\n    \"key\": "terter",\n    \"value\": 779079\n  },\519  {\n    \"key\": "ronron",\n    \"value\": 776076\n  },\520  {\n    \"key\": "ageage",\n    \"value\": 774074\n  },\521  {\n    \"key\": "oeaoea",\n    \"value\": 771071\n  },\522  {\n    \"key\": "geygey",\n    \"value\": 779969\n  },\523  {\n    \"key\": "oryory",\n    \"value\": 776966\n  },\524  {\n    \"key\": "gilgil",\n    \"value\": 774964\n  },\525  {\n    \"key\": "oraora",\n    \"value\": 772962\n  },\526  {\n    \"key\": "tsrtsr",\n    \"value\": 779869\n  },\527  {\n    \"key\": "iteite",\n    \"value\": 777867\n  },\528  {\n    \"key\": "essess",\n    \"value\": 774864\n  },\529  {\n    \"key\": "ashash",\n    \"value\": 772862\n  },\530  {\n    \"key\": "redred",\n    \"value\": 770860\n  },\531  {\n    \"key\": "dnedne",\n    \"value\": 777767\n  },\532  {\n    \"key\": "inging",\n    \"value\": 775765\n  },\533  {\n    \"key\": "eryery",\n    \"value\": 773763\n  },\534  {\n    \"key\": "istist",\n    \"value\": 770760\n  },\535  {\n    \"key\": "essess",\n    \"value\": 778668\n  },\536  {\n    \"key\": "gesges",\n    \"value\": 776666\n  },\537  {\n    \"key\": "odeode",\n    \"value\": 773663\n  },\538  {\n    \"key\": "essess",\n    \"value\": 771661\n  },\539  {\n    \"key\": "detdet",\n    \"value\": 779569\n  },\540  {\n    \"key\": "uleule",\n    \"value\": 777567\n  },\541  {\n    \"key\": "ousous",\n    \"value\": 774564\n  },\542  {\n    \"key\": "hsihsi",\n    \"value\": 772562\n  },\543  {\n    \"key\": "ishish",\n    \"value\": 770560\n  },\544  {\n    \"key\": "esoeso",\n    \"value\": 778468\n  },\545  {\n    \"key\": "eloelo",\n    \"value\": 776466\n  },\546  {\n    \"key\": "outout",\n    \"value\": 774464\n  },\547  {\n    \"key\": "ideide",\n    \"value\": 771461\n  },\548  {\n    \"key\": "eedeed",\n    \"value\": 779369\n  },\549  {\n    \"key\": "oidoid",\n    \"value\": 777367\n  },\550  {\n    \"key\": "oaloal",\n    \"value\": 775365\n  },\551  {\n    \"key\": "namnam",\n    \"value\": 773363\n  },\552  {\n    \"key\": "inging",\n    \"value\": 771361\n  },\553  {\n    \"key\": "inging",\n    \"value\": 779269\n  },\554  {\n    \"key\": "upiupi",\n    \"value\": 777267\n  },\555  {\n    \"key\": "ankank",\n    \"value\": 775265\n  },\556  {\n    \"key\": "kedked",\n    \"value\": 772262\n  },\557  {\n    \"key\": "iseise",\n    \"value\": 770260\n  },\558  {\n    \"key\": "dradra",\n    \"value\": 778168\n  },\559  {\n    \"key\": "ityity",\n    \"value\": 776166\n  },\560  {\n    \"key\": "diadia",\n    \"value\": 774164\n  },\561  {\n    \"key\": "essess",\n    \"value\": 772162\n  },\562  {\n    \"key\": "areare",\n    \"value\": 770160\n  },\563  {\n    \"key\": "ontont",\n    \"value\": 778068\n  },\564  {\n    \"key\": "werwer",\n    \"value\": 776066\n  },\565  {\n    \"key\": "ousous",\n    \"value\": 774064\n  },\566  {\n    \"key\": "manman",\n    \"value\": 772062\n  },\567  {\n    \"key\": "nutnut",\n    \"value\": 771061\n  },\568  {\n    \"key\": "oidoid",\n    \"value\": 779959\n  },\569  {\n    \"key\": "lahlah",\n    \"value\": 777957\n  },\570  {\n    \"key\": "ricric",\n    \"value\": 775955\n  },\571  {\n    \"key\": "ueruer",\n    \"value\": 773953\n  },\572  {\n    \"key\": "naenae",\n    \"value\": 771951\n  },\573  {\n    \"key\": "iteite",\n    \"value\": 779859\n  },\574  {\n    \"key\": "bleble",\n    \"value\": 777857\n  },\575  {\n    \"key\": "terter",\n    \"value\": 775855\n  },\576  {\n    \"key\": "nicnic",\n    \"value\": 773853\n  },\577  {\n    \"key\": "aidaid",\n    \"value\": 772852\n  },\578  {\n    \"key\": "fulful",\n    \"value\": 770850\n  },\579  {\n    \"key\": "essess",\n    \"value\": 778758\n  },\580  {\n    \"key\": "iteite",\n    \"value\": 776756\n  },\581  {\n    \"key\": "glygly",\n    \"value\": 774754\n  },\582  {\n    \"key\": "iseise",\n    \"value\": 772752\n  },\583  {\n    \"key\": "ityity",\n    \"value\": 771751\n  },\584  {\n    \"key\": "essess",\n    \"value\": 779659\n  },\585  {\n    \"key\": "ealeal",\n    \"value\": 777657\n  },\586  {\n    \"key\": "aryary",\n    \"value\": 775655\n  },\587  {\n    \"key\": "ronron",\n    \"value\": 774654\n  },\588  {\n    \"key\": "etaeta",\n    \"value\": 772652\n  },\589  {\n    \"key\": "aveave",\n    \"value\": 770650\n  },\590  {\n    \"key\": "llylly",\n    \"value\": 778558\n  },\591  {\n    \"key\": "iteite",\n    \"value\": 777557\n  },\592  {\n    \"key\": "ianian",\n    \"value\": 775555\n  },\593  {\n    \"key\": "oleole",\n    \"value\": 773553\n  },\594  {\n    \"key\": "ithith",\n    \"value\": 771551\n  },\595  {\n    \"key\": "aryary",\n    \"value\": 770550\n  },\596  {\n    \"key\": "ondond",\n    \"value\": 778458\n  },\597  {\n    \"key\": "oosoos",\n    \"value\": 776456\n  },\598  {\n    \"key\": "hlyhly",\n    \"value\": 775455\n  },\599  {\n    \"key\": "ncence",\n    \"value\": 773453\n  },\600  {\n    \"key\": "eleele",\n    \"value\": 771451\n  },\601  {\n    \"key\": "iotiot",\n    \"value\": 770450\n  },\602  {\n    \"key\": "istist",\n    \"value\": 778358\n  },\603  {\n    \"key\": "nesnes",\n    \"value\": 777357\n  },\604  {\n    \"key\": "izeize",\n    \"value\": 775355\n  },\605  {\n    \"key\": "gusgus",\n    \"value\": 773353\n  },\606  {\n    \"key\": "laylay",\n    \"value\": 772352\n  },\607  {\n    \"key\": "eneene",\n    \"value\": 770350\n  },\608  {\n    \"key\": "eteete",\n    \"value\": 779259\n  },\609  {\n    \"key\": "tictic",\n    \"value\": 777257\n  },\610  {\n    \"key\": "fulful",\n    \"value\": 775255\n  },\611  {\n    \"key\": "toltol",\n    \"value\": 774254\n  },\612  {\n    \"key\": "tictic",\n    \"value\": 772252\n  },\613  {\n    \"key\": "iveive",\n    \"value\": 771251\n  },\614  {\n    \"key\": "manman",\n    \"value\": 779159\n  },\615  {\n    \"key\": "bleble",\n    \"value\": 778158\n  },\616  {\n    \"key\": "oidoid",\n    \"value\": 776156\n  },\617  {\n    \"key\": "salsal",\n    \"value\": 775155\n  },\618  {\n    \"key\": "kalkal",\n    \"value\": 773153\n  },\619  {\n    \"key\": "essess",\n    \"value\": 771151\n  },\620  {\n    \"key\": "omyomy",\n    \"value\": 770150\n  },\621  {\n    \"key\": "oreore",\n    \"value\": 778058\n  },\622  {\n    \"key\": "ionion",\n    \"value\": 777057\n  },\623  {\n    \"key\": "eanean",\n    \"value\": 775055\n  },\624  {\n    \"key\": "ellell",\n    \"value\": 774054\n  },\625  {\n    \"key\": "daldal",\n    \"value\": 773053\n  },\626  {\n    \"key\": "ateate",\n    \"value\": 771051\n  },\627  {\n    \"key\": "ssesse",\n    \"value\": 770050\n  },\628  {\n    \"key\": "deidei",\n    \"value\": 778948\n  },\629  {\n    \"key\": "ousous",\n    \"value\": 777947\n  },\630  {\n    \"key\": "glygly",\n    \"value\": 775945\n  },\631  {\n    \"key\": "sitsit",\n    \"value\": 774944\n  },\632  {\n    \"key\": "sissis",\n    \"value\": 772942\n  },\633  {\n    \"key\": "larlar",\n    \"value\": 771941\n  },\634  {\n    \"key\": "salsal",\n    \"value\": 770940\n  },\635  {\n    \"key\": "herher",\n    \"value\": 778848\n  },\636  {\n    \"key\": "tictic",\n    \"value\": 777847\n  },\637  {\n    \"key\": "lamlam",\n    \"value\": 775845\n  },\638  {\n    \"key\": "ionion",\n    \"value\": 774844\n  },\639  {\n    \"key\": "lumlum",\n    \"value\": 773843\n  },\640  {\n    \"key\": "oleole",\n    \"value\": 771841\n  },\641  {\n    \"key\": "chmchm",\n    \"value\": 770840\n  },\642  {\n    \"key\": "omeome",\n    \"value\": 779749\n  },\643  {\n    \"key\": "eaeeae",\n    \"value\": 777747\n  },\644  {\n    \"key\": "adeade",\n    \"value\": 776746\n  },\645  {\n    \"key\": "hiohio",\n    \"value\": 774744\n  },\646  {\n    \"key\": "lumlum",\n    \"value\": 773743\n  },\647  {\n    \"key\": "hpahpa",\n    \"value\": 772742\n  },\648  {\n    \"key\": "entent",\n    \"value\": 770740\n  },\649  {\n    \"key\": "gusgus",\n    \"value\": 779649\n  },\650  {\n    \"key\": "essess",\n    \"value\": 778648\n  },\651  {\n    \"key\": "ityity",\n    \"value\": 777647\n  },\652  {\n    \"key\": "ousous",\n    \"value\": 775645\n  },\653  {\n    \"key\": "eloelo",\n    \"value\": 774644\n  },\654  {\n    \"key\": "orkork",\n    \"value\": 773643\n  },\655  {\n    \"key\": "otaota",\n    \"value\": 771641\n  },\656  {\n    \"key\": "omyomy",\n    \"value\": 770640\n  },\657  {\n    \"key\": "lislis",\n    \"value\": 779549\n  },\658  {\n    \"key\": "teltel",\n    \"value\": 777547\n  },\659  {\n    \"key\": "ytiyti",\n    \"value\": 776546\n  },\660  {\n    \"key\": "noinoi",\n    \"value\": 775545\n  },\661  {\n    \"key\": "micmic",\n    \"value\": 774544\n  },\662  {\n    \"key\": "rerrer",\n    \"value\": 772542\n  },\663  {\n    \"key\": "ionion",\n    \"value\": 771541\n  },\664  {\n    \"key\": "essess",\n    \"value\": 770540\n  },\665  {\n    \"key\": "larlar",\n    \"value\": 779449\n  },\666  {\n    \"key\": "ionion",\n    \"value\": 778448\n  },\667  {\n    \"key\": "nctnct",\n    \"value\": 776446\n  },\668  {\n    \"key\": "aceace",\n    \"value\": 775445\n  },\669  {\n    \"key\": "terter",\n    \"value\": 774444\n  },\670  {\n    \"key\": "taltal",\n    \"value\": 773443\n  },\671  {\n    \"key\": "hilhil",\n    \"value\": 771441\n  },\672  {\n    \"key\": "oleole",\n    \"value\": 770440\n  },\673  {\n    \"key\": "ileile",\n    \"value\": 779349\n  },\674  {\n    \"key\": "inging",\n    \"value\": 778348\n  },\675  {\n    \"key\": "omyomy",\n    \"value\": 777347\n  },\676  {\n    \"key\": "glegle",\n    \"value\": 776346\n  },\677  {\n    \"key\": "queque",\n    \"value\": 774344\n  },\678  {\n    \"key\": "nainai",\n    \"value\": 773343\n  },\679  {\n    \"key\": "buabua",\n    \"value\": 772342\n  },\680  {\n    \"key\": "bleble",\n    \"value\": 771341\n  },\681  {\n    \"key\": "aboabo",\n    \"value\": 770340\n  },\682  {\n    \"key\": "looloo",\n    \"value\": 779249\n  },\683  {\n    \"key\": "nlynly",\n    \"value\": 777247\n  },\684  {\n    \"key\": "inging",\n    \"value\": 776246\n  },\685  {\n    \"key\": "nahnah",\n    \"value\": 775245\n  },\686  {\n    \"key\": "omaoma",\n    \"value\": 774244\n  },\687  {\n    \"key\": "redred",\n    \"value\": 773243\n  },\688  {\n    \"key\": "nalnal",\n    \"value\": 772242\n  },\689  {\n    \"key\": "useuse",\n    \"value\": 771241\n  },\690  {\n    \"key\": "allall",\n    \"value\": 770240\n  },\691  {\n    \"key\": "laclac",\n    \"value\": 778148\n  },\692  {\n    \"key\": "sumsum",\n    \"value\": 777147\n  },\693  {\n    \"key\": "rerrer",\n    \"value\": 776146\n  },\694  {\n    \"key\": "xisxis",\n    \"value\": 775145\n  },\695  {\n    \"key\": "daedae",\n    \"value\": 774144\n  },\696  {\n    \"key\": "dledle",\n    \"value\": 773143\n  },\697  {\n    \"key\": "riaria",\n    \"value\": 772142\n  },\698  {\n    \"key\": "ityity",\n    \"value\": 771141\n  },\699  {\n    \"key\": "entent",\n    \"value\": 770140\n  },\700  {\n    \"key\": "obeobe",\n    \"value\": 779049\n  },\701  {\n    \"key\": "ierier",\n    \"value\": 778048\n  },\702  {\n    \"key\": "oreore",\n    \"value\": 777047\n  },\703  {\n    \"key\": "ateate",\n    \"value\": 776046\n  },\704  {\n    \"key\": "istist",\n    \"value\": 774044\n  },\705  {\n    \"key\": "oanoan",\n    \"value\": 773043\n  },\706  {\n    \"key\": "intint",\n    \"value\": 772042\n  },\707  {\n    \"key\": "sissis",\n    \"value\": 771041\n  },\708  {\n    \"key\": "inging",\n    \"value\": 770040\n  },\709  {\n    \"key\": "ineine",\n    \"value\": 779939\n  },\710  {\n    \"key\": "eryery",\n    \"value\": 778938\n  },\711  {\n    \"key\": "okooko",\n    \"value\": 777937\n  },\712  {\n    \"key\": "ifyify",\n    \"value\": 776936\n  },\713  {\n    \"key\": "detdet",\n    \"value\": 775935\n  },\714  {\n    \"key\": "augaug",\n    \"value\": 774934\n  },\715  {\n    \"key\": "essess",\n    \"value\": 773933\n  },\716  {\n    \"key\": "ailail",\n    \"value\": 772932\n  },\717  {\n    \"key\": "oonoon",\n    \"value\": 771931\n  },\718  {\n    \"key\": "sissis",\n    \"value\": 770930\n  },\719  {\n    \"key\": "neknek",\n    \"value\": 779839\n  },\720  {\n    \"key\": "doodoo",\n    \"value\": 778838\n  },\721  {\n    \"key\": "llylly",\n    \"value\": 777837\n  },\722  {\n    \"key\": "icsics",\n    \"value\": 776836\n  },\723  {\n    \"key\": "inging",\n    \"value\": 775835\n  },\724  {\n    \"key\": "ratrat",\n    \"value\": 774834\n  },\725  {\n    \"key\": "daldal",\n    \"value\": 773833\n  },\726  {\n    \"key\": "andand",\n    \"value\": 772832\n  },\727  {\n    \"key\": "odeode",\n    \"value\": 772832\n  },\728  {\n    \"key\": "ismism",\n    \"value\": 771831\n  },\729  {\n    \"key\": "anyany",\n    \"value\": 770830\n  },\730  {\n    \"key\": "ageage",\n    \"value\": 779739\n  },\731  {\n    \"key\": "essess",\n    \"value\": 778738\n  },\732  {\n    \"key\": "bleble",\n    \"value\": 777737\n  },\733  {\n    \"key\": "angang",\n    \"value\": 776736\n  },\734  {\n    \"key\": "ionion",\n    \"value\": 775735\n  },\735  {\n    \"key\": "tedted",\n    \"value\": 774734\n  },\736  {\n    \"key\": "ifyify",\n    \"value\": 773733\n  },\737  {\n    \"key\": "istist",\n    \"value\": 772732\n  },\738  {\n    \"key\": "bleble",\n    \"value\": 771731\n  },\739  {\n    \"key\": "ionion",\n    \"value\": 770730\n  },\740  {\n    \"key\": "iveive",\n    \"value\": 779639\n  },\741  {\n    \"key\": "noinoi",\n    \"value\": 779639\n  },\742  {\n    \"key\": "raerae",\n    \"value\": 778638\n  },\743  {\n    \"key\": "gedged",\n    \"value\": 777637\n  },\744  {\n    \"key\": "nalnal",\n    \"value\": 776636\n  },\745  {\n    \"key\": "ierier",\n    \"value\": 775635\n  },\746  {\n    \"key\": "hidhid",\n    \"value\": 774634\n  },\747  {\n    \"key\": "ionion",\n    \"value\": 773633\n  },\748  {\n    \"key\": "irtirt",\n    \"value\": 772632\n  },\749  {\n    \"key\": "glygly",\n    \"value\": 771631\n  },\750  {\n    \"key\": "citcit",\n    \"value\": 771631\n  },\751  {\n    \"key\": "ateate",\n    \"value\": 770630\n  },\752  {\n    \"key\": "ikeike",\n    \"value\": 779539\n  },\753  {\n    \"key\": "ataata",\n    \"value\": 778538\n  },\754  {\n    \"key\": "letlet",\n    \"value\": 777537\n  },\755  {\n    \"key\": "ialial",\n    \"value\": 776536\n  },\756  {\n    \"key\": "sissis",\n    \"value\": 775535\n  },\757  {\n    \"key\": "istist",\n    \"value\": 774534\n  },\758  {\n    \"key\": "anaana",\n    \"value\": 774534\n  },\759  {\n    \"key\": "oidoid",\n    \"value\": 773533\n  },\760  {\n    \"key\": "ormorm",\n    \"value\": 772532\n  },\761  {\n    \"key\": "lexlex",\n    \"value\": 771531\n  },\762  {\n    \"key\": "llylly",\n    \"value\": 770530\n  },\763  {\n    \"key\": "ifeife",\n    \"value\": 779439\n  },\764  {\n    \"key\": "nalnal",\n    \"value\": 779439\n  },\765  {\n    \"key\": "ionion",\n    \"value\": 778438\n  },\766  {\n    \"key\": "hichic",\n    \"value\": 777437\n  },\767  {\n    \"key\": "tootoo",\n    \"value\": 776436\n  },\768  {\n    \"key\": "oryory",\n    \"value\": 775435\n  },\769  {\n    \"key\": "llylly",\n    \"value\": 774434\n  },\770  {\n    \"key\": "naenae",\n    \"value\": 774434\n  },\771  {\n    \"key\": "izeize",\n    \"value\": 773433\n  },\772  {\n    \"key\": "werwer",\n    \"value\": 772432\n  },\773  {\n    \"key\": "oiloil",\n    \"value\": 771431\n  },\774  {\n    \"key\": "luslus",\n    \"value\": 770430\n  },\775  {\n    \"key\": "eneene",\n    \"value\": 770430\n  },\776  {\n    \"key\": "ismism",\n    \"value\": 779339\n  },\777  {\n    \"key\": "ricric",\n    \"value\": 778338\n  },\778  {\n    \"key\": "iveive",\n    \"value\": 777337\n  },\779  {\n    \"key\": "glygly",\n    \"value\": 776336\n  },\780  {\n    \"key\": "manman",\n    \"value\": 776336\n  },\781  {\n    \"key\": "rierie",\n    \"value\": 775335\n  },\782  {\n    \"key\": "llylly",\n    \"value\": 774334\n  },\783  {\n    \"key\": "ithith",\n    \"value\": 773333\n  },\784  {\n    \"key\": "laclac",\n    \"value\": 773333\n  },\785  {\n    \"key\": "ityity",\n    \"value\": 772332\n  },\786  {\n    \"key\": "rezrez",\n    \"value\": 771331\n  },\787  {\n    \"key\": "enyeny",\n    \"value\": 770330\n  },\788  {\n    \"key\": "iedied",\n    \"value\": 770330\n  },\789  {\n    \"key\": "rgerge",\n    \"value\": 779239\n  },\790  {\n    \"key\": "wedwed",\n    \"value\": 778238\n  },\791  {\n    \"key\": "iorior",\n    \"value\": 777237\n  },\792  {\n    \"key\": "ousous",\n    \"value\": 777237\n  },\793  {\n    \"key\": "ricric",\n    \"value\": 776236\n  },\794  {\n    \"key\": "iumium",\n    \"value\": 775235\n  },\795  {\n    \"key\": "neanea",\n    \"value\": 774234\n  },\796  {\n    \"key\": "ionion",\n    \"value\": 774234\n  },\797  {\n    \"key\": "ateate",\n    \"value\": 773233\n  },\798  {\n    \"key\": "ateate",\n    \"value\": 772232\n  },\799  {\n    \"key\": "ismism",\n    \"value\": 771231\n  },\800  {\n    \"key\": "karkar",\n    \"value\": 771231\n  },\801  {\n    \"key\": "essess",\n    \"value\": 770230\n  },\802  {\n    \"key\": "oseose",\n    \"value\": 779139\n  },\803  {\n    \"key\": "siasia",\n    \"value\": 778138\n  },\804  {\n    \"key\": "aryary",\n    \"value\": 778138\n  },\805  {\n    \"key\": "iteite",\n    \"value\": 777137\n  },\806  {\n    \"key\": "bleble",\n    \"value\": 776136\n  },\807  {\n    \"key\": "tustus",\n    \"value\": 776136\n  },\808  {\n    \"key\": "iteite",\n    \"value\": 775135\n  },\809  {\n    \"key\": "ikeike",\n    \"value\": 774134\n  },\810  {\n    \"key\": "berber",\n    \"value\": 773133\n  },\811  {\n    \"key\": "ismism",\n    \"value\": 773133\n  },\812  {\n    \"key\": "rigrig",\n    \"value\": 772132\n  },\813  {\n    \"key\": "yreyre",\n    \"value\": 771131\n  },\814  {\n    \"key\": "ismism",\n    \"value\": 771131\n  },\815  {\n    \"key\": "ismism",\n    \"value\": 770130\n  },\816  {\n    \"key\": "oodood",\n    \"value\": 779039\n  },\817  {\n    \"key\": "amaama",\n    \"value\": 779039\n  },\818  {\n    \"key\": "sissis",\n    \"value\": 778038\n  },\819  {\n    \"key\": "ftyfty",\n    \"value\": 777037\n  },\820  {\n    \"key\": "onyony",\n    \"value\": 777037\n  },\821  {\n    \"key\": "ismism",\n    \"value\": 776036\n  },\822  {\n    \"key\": "iumium",\n    \"value\": 775035\n  },\823  {\n    \"key\": "euseus",\n    \"value\": 775035\n  },\824  {\n    \"key\": "bleble",\n    \"value\": 774034\n  },\825  {\n    \"key\": "istist",\n    \"value\": 773033\n  },\826  {\n    \"key\": "bowbow",\n    \"value\": 773033\n  },\827  {\n    \"key\": "lielie",\n    \"value\": 772032\n  },\828  {\n    \"key\": "ursurs",\n    \"value\": 771031\n  },\829  {\n    \"key\": "hsuhsu",\n    \"value\": 771031\n  },\830  {\n    \"key\": "imiimi",\n    \"value\": 770030\n  },\831  {\n    \"key\": "dgedge",\n    \"value\": 779929\n  },\832  {\n    \"key\": "laglag",\n    \"value\": 779929\n  },\833  {\n    \"key\": "ionion",\n    \"value\": 778928\n  },\834  {\n    \"key\": "fulful",\n    \"value\": 777927\n  },\835  {\n    \"key\": "uedued",\n    \"value\": 777927\n  },\836  {\n    \"key\": "angang",\n    \"value\": 776926\n  },\837  {\n    \"key\": "ertert",\n    \"value\": 775925\n  },\838  {\n    \"key\": "bleble",\n    \"value\": 775925\n  },\839  {\n    \"key\": "tibtib",\n    \"value\": 774924\n  },\840  {\n    \"key\": "iteite",\n    \"value\": 773923\n  },\841  {\n    \"key\": "inging",\n    \"value\": 773923\n  },\842  {\n    \"key\": "ionion",\n    \"value\": 772922\n  },\843  {\n    \"key\": "ngsngs",\n    \"value\": 772922\n  },\844  {\n    \"key\": "ralral",\n    \"value\": 771921\n  },\845  {\n    \"key\": "dlydly",\n    \"value\": 770920\n  },\846  {\n    \"key\": "nerner",\n    \"value\": 770920\n  },\847  {\n    \"key\": "iveive",\n    \"value\": 779829\n  },\848  {\n    \"key\": "istist",\n    \"value\": 778828\n  },\849  {\n    \"key\": "piapia",\n    \"value\": 778828\n  },\850  {\n    \"key\": "ncyncy",\n    \"value\": 777827\n  },\851  {\n    \"key\": "geegee",\n    \"value\": 777827\n  },\852  {\n    \"key\": "tictic",\n    \"value\": 776826\n  },\853  {\n    \"key\": "bitbit",\n    \"value\": 775825\n  },\854  {\n    \"key\": "larlar",\n    \"value\": 775825\n  },\855  {\n    \"key\": "tedted",\n    \"value\": 774824\n  },\856  {\n    \"key\": "ineine",\n    \"value\": 774824\n  },\857  {\n    \"key\": "ateate",\n    \"value\": 773823\n  },\858  {\n    \"key\": "essess",\n    \"value\": 772822\n  },\859  {\n    \"key\": "rdsrds",\n    \"value\": 772822\n  },\860  {\n    \"key\": "laplap",\n    \"value\": 771821\n  },\861  {\n    \"key\": "essess",\n    \"value\": 771821\n  },\862  {\n    \"key\": "siasia",\n    \"value\": 770820\n  },\863  {\n    \"key\": "ousous",\n    \"value\": 779729\n  },\864  {\n    \"key\": "inging",\n    \"value\": 779729\n  },\865  {\n    \"key\": "pirpir",\n    \"value\": 778728\n  },\866  {\n    \"key\": "dlydly",\n    \"value\": 778728\n  },\867  {\n    \"key\": "liclic",\n    \"value\": 777727\n  },\868  {\n    \"key\": "cuscus",\n    \"value\": 777727\n  },\869  {\n    \"key\": "essess",\n    \"value\": 776726\n  },\870  {\n    \"key\": "glygly",\n    \"value\": 775725\n  },\871  {\n    \"key\": "ainain",\n    \"value\": 775725\n  },\872  {\n    \"key\": "etyety",\n    \"value\": 774724\n  },\873  {\n    \"key\": "yllyll",\n    \"value\": 774724\n  },\874  {\n    \"key\": "nusnus",\n    \"value\": 773723\n  },\875  {\n    \"key\": "iidiid",\n    \"value\": 773723\n  },\876  {\n    \"key\": "yonyon",\n    \"value\": 772722\n  },\877  {\n    \"key\": "miamia",\n    \"value\": 771721\n  },\878  {\n    \"key\": "domdom",\n    \"value\": 771721\n  },\879  {\n    \"key\": "ineine",\n    \"value\": 770720\n  },\880  {\n    \"key\": "ayoayo",\n    \"value\": 770720\n  },\881  {\n    \"key\": "essess",\n    \"value\": 779629\n  },\882  {\n    \"key\": "ionion",\n    \"value\": 779629\n  },\883  {\n    \"key\": "aftaft",\n    \"value\": 778628\n  },\884  {\n    \"key\": "tchtch",\n    \"value\": 778628\n  },\885  {\n    \"key\": "rowrow",\n    \"value\": 777627\n  },\886  {\n    \"key\": "euseus",\n    \"value\": 776626\n  },\887  {\n    \"key\": "bleble",\n    \"value\": 776626\n  },\888  {\n    \"key\": "manman",\n    \"value\": 775625\n  },\889  {\n    \"key\": "ianian",\n    \"value\": 775625\n  },\890  {\n    \"key\": "tlytly",\n    \"value\": 774624\n  },\891  {\n    \"key\": "opeope",\n    \"value\": 774624\n  },\892  {\n    \"key\": "parpar",\n    \"value\": 773623\n  },\893  {\n    \"key\": "rumrum",\n    \"value\": 773623\n  },\894  {\n    \"key\": "essess",\n    \"value\": 772622\n  },\895  {\n    \"key\": "hinhin",\n    \"value\": 772622\n  },\896  {\n    \"key\": "istist",\n    \"value\": 771621\n  },\897  {\n    \"key\": "denden",\n    \"value\": 771621\n  },\898  {\n    \"key\": "ualual",\n    \"value\": 770620\n  },\899  {\n    \"key\": "tiatia",\n    \"value\": 779529\n  },\900  {\n    \"key\": "sissis",\n    \"value\": 779529\n  },\901  {\n    \"key\": "slysly",\n    \"value\": 778528\n  },\902  {\n    \"key\": "ameame",\n    \"value\": 778528\n  },\903  {\n    \"key\": "ismism",\n    \"value\": 777527\n  },\904  {\n    \"key\": "ialial",\n    \"value\": 777527\n  },\905  {\n    \"key\": "nerner",\n    \"value\": 776526\n  },\906  {\n    \"key\": "ifyify",\n    \"value\": 776526\n  },\907  {\n    \"key\": "ismism",\n    \"value\": 775525\n  },\908  {\n    \"key\": "legleg",\n    \"value\": 775525\n  },\909  {\n    \"key\": "calcal",\n    \"value\": 774524\n  },\910  {\n    \"key\": "oadoad",\n    \"value\": 774524\n  },\911  {\n    \"key\": "iveive",\n    \"value\": 773523\n  },\912  {\n    \"key\": "micmic",\n    \"value\": 773523\n  },\913  {\n    \"key\": "chychy",\n    \"value\": 772522\n  },\914  {\n    \"key\": "daldal",\n    \"value\": 772522\n  },\915  {\n    \"key\": "ityity",\n    \"value\": 771521\n  },\916  {\n    \"key\": "iadiad",\n    \"value\": 771521\n  },\917  {\n    \"key\": "liclic",\n    \"value\": 770520\n  },\918  {\n    \"key\": "ionion",\n    \"value\": 770520\n  },\919  {\n    \"key\": "micmic",\n    \"value\": 779429\n  },\920  {\n    \"key\": "sissis",\n    \"value\": 779429\n  },\921  {\n    \"key\": "rserse",\n    \"value\": 778428\n  },\922  {\n    \"key\": "iteite",\n    \"value\": 778428\n  },\923  {\n    \"key\": "izeize",\n    \"value\": 777427\n  },\924  {\n    \"key\": "iumium",\n    \"value\": 777427\n  },\925  {\n    \"key\": "panpan",\n    \"value\": 776426\n  },\926  {\n    \"key\": "glygly",\n    \"value\": 776426\n  },\927  {\n    \"key\": "etaeta",\n    \"value\": 775425\n  },\928  {\n    \"key\": "ssesse",\n    \"value\": 775425\n  },\929  {\n    \"key\": "narnar",\n    \"value\": 775425\n  },\930  {\n    \"key\": "setset",\n    \"value\": 774424\n  },\931  {\n    \"key\": "tedted",\n    \"value\": 774424\n  },\932  {\n    \"key\": "oidoid",\n    \"value\": 773423\n  },\933  {\n    \"key\": "ineine",\n    \"value\": 773423\n  },\934  {\n    \"key\": "nedned",\n    \"value\": 772422\n  },\935  {\n    \"key\": "eadead",\n    \"value\": 772422\n  },\936  {\n    \"key\": "ousous",\n    \"value\": 771421\n  },\937  {\n    \"key\": "slysly",\n    \"value\": 771421\n  },\938  {\n    \"key\": "enieni",\n    \"value\": 770420\n  },\939  {\n    \"key\": "essess",\n    \"value\": 770420\n  },\940  {\n    \"key\": "terter",\n    \"value\": 779329\n  },\941  {\n    \"key\": "ntynty",\n    \"value\": 779329\n  },\942  {\n    \"key\": "sinsin",\n    \"value\": 778328\n  },\943  {\n    \"key\": "ismism",\n    \"value\": 778328\n  },\944  {\n    \"key\": "ousous",\n    \"value\": 778328\n  },\945  {\n    \"key\": "aryary",\n    \"value\": 777327\n  },\946  {\n    \"key\": "numnum",\n    \"value\": 777327\n  },\947  {\n    \"key\": "tlytly",\n    \"value\": 776326\n  },\948  {\n    \"key\": "calcal",\n    \"value\": 776326\n  },\949  {\n    \"key\": "slysly",\n    \"value\": 775325\n  },\950  {\n    \"key\": "trytry",\n    \"value\": 775325\n  },\951  {\n    \"key\": "ailail",\n    \"value\": 774324\n  },\952  {\n    \"key\": "nicnic",\n    \"value\": 774324\n  },\953  {\n    \"key\": "ionion",\n    \"value\": 773323\n  },\954  {\n    \"key\": "serser",\n    \"value\": 773323\n  },\955  {\n    \"key\": "essess",\n    \"value\": 773323\n  },\956  {\n    \"key\": "tistis",\n    \"value\": 772322\n  },\957  {\n    \"key\": "otlotl",\n    \"value\": 772322\n  },\958  {\n    \"key\": "ousous",\n    \"value\": 771321\n  },\959  {\n    \"key\": "dehdeh",\n    \"value\": 771321\n  },\960  {\n    \"key\": "essess",\n    \"value\": 770320\n  },\961  {\n    \"key\": "llylly",\n    \"value\": 770320\n  },\962  {\n    \"key\": "evievi",\n    \"value\": 770320\n  },\963  {\n    \"key\": "iteite",\n    \"value\": 779229\n  },\964  {\n    \"key\": "rnerne",\n    \"value\": 779229\n  },\965  {\n    \"key\": "oleole",\n    \"value\": 778228\n  },\966  {\n    \"key\": "oryory",\n    \"value\": 778228\n  },\967  {\n    \"key\": "ionion",\n    \"value\": 777227\n  },\968  {\n    \"key\": "eteete",\n    \"value\": 777227\n  },\969  {\n    \"key\": "ismism",\n    \"value\": 777227\n  },\970  {\n    \"key\": "oidoid",\n    \"value\": 776226\n  },\971  {\n    \"key\": "ismism",\n    \"value\": 776226\n  },\972  {\n    \"key\": "ahtaht",\n    \"value\": 775225\n  },\973  {\n    \"key\": "ousous",\n    \"value\": 775225\n  },\974  {\n    \"key\": "daedae",\n    \"value\": 774224\n  },\975  {\n    \"key\": "nrenre",\n    \"value\": 774224\n  },\976  {\n    \"key\": "daldal",\n    \"value\": 774224\n  },\977  {\n    \"key\": "ngsngs",\n    \"value\": 773223\n  },\978  {\n    \"key\": "zinzin",\n    \"value\": 773223\n  },\979  {\n    \"key\": "tistis",\n    \"value\": 772222\n  },\980  {\n    \"key\": "ikeike",\n    \"value\": 772222\n  },\981  {\n    \"key\": "ithith",\n    \"value\": 772222\n  },\982  {\n    \"key\": "fulful",\n    \"value\": 771221\n  },\983  {\n    \"key\": "evievi",\n    \"value\": 771221\n  },\984  {\n    \"key\": "earear",\n    \"value\": 770220\n  },\985  {\n    \"key\": "aftaft",\n    \"value\": 770220\n  },\986  {\n    \"key\": "eereer",\n    \"value\": 770220\n  },\987  {\n    \"key\": "ousous",\n    \"value\": 779129\n  },\988  {\n    \"key\": "aphaph",\n    \"value\": 779129\n  },\989  {\n    \"key\": "iteite",\n    \"value\": 778128\n  },\990  {\n    \"key\": "gerger",\n    \"value\": 778128\n  },\991  {\n    \"key\": "llylly",\n    \"value\": 778128\n  },\992  {\n    \"key\": "oodood",\n    \"value\": 777127\n  },\993  {\n    \"key\": "araara",\n    \"value\": 777127\n  },\994  {\n    \"key\": "suosuo",\n    \"value\": 776126\n  },\995  {\n    \"key\": "ionion",\n    \"value\": 776126\n  },\996  {\n    \"key\": "ishish",\n    \"value\": 776126\n  },\997  {\n    \"key\": "ynyyny",\n    \"value\": 775125\n  },\998  {\n    \"key\": "akeake",\n    \"value\": 775125\n  },\999  {\n    \"key\": "rawraw",\n    \"value\": 774124\n  },\1000  {\n    \"key\": "fidfid",\n    \"value\": 774124\n  },\1001  {\n    \"key\": "slysly",\n    \"value\": 774124\n  },\1002  {\n    \"key\": "ngyngy",\n    \"value\": 773123\n  },\1003  {\n    \"key\": "iteite",\n    \"value\": 773123\n  },\1004  {\n    \"key\": "hichic",\n    \"value\": 772122\n  },\1005  {\n    \"key\": "warwar",\n    \"value\": 772122\n  },\1006  {\n    \"key\": "eziezi",\n    \"value\": 772122\n  },\1007  {\n    \"key\": "sissis",\n    \"value\": 771121\n  },\1008  {\n    \"key\": "aryary",\n    \"value\": 771121\n  },\1009  {\n    \"key\": "trytry",\n    \"value\": 771121\n  },\1010  {\n    \"key\": "eltelt",\n    \"value\": 770120\n  },\1011  {\n    \"key\": "yteyte",\n    \"value\": 770120\n  },\1012  {\n    \"key\": "tictic",\n    \"value\": 779029\n  },\1013  {\n    \"key\": "testes",\n    \"value\": 779029\n  },\1014  {\n    \"key\": "terter",\n    \"value\": 779029\n  },\1015  {\n    \"key\": "antant",\n    \"value\": 778028\n  },\1016  {\n    \"key\": "bleble",\n    \"value\": 778028\n  },\1017  {\n    \"key\": "ikeike",\n    \"value\": 778028\n  },\1018  {\n    \"key\": "ionion",\n    \"value\": 777027\n  },\1019  {\n    \"key\": "ycnycn",\n    \"value\": 777027\n  },\1020  {\n    \"key\": "ermerm",\n    \"value\": 776026\n  },\1021  {\n    \"key\": "istist",\n    \"value\": 776026\n  },\1022  {\n    \"key\": "rryrry",\n    \"value\": 776026\n  },\1023  {\n    \"key\": "nicnic",\n    \"value\": 775025\n  },\1024  {\n    \"key\": "dibdib",\n    \"value\": 775025\n  },\1025  {\n    \"key\": "yroyro",\n    \"value\": 775025\n  },\1026  {\n    \"key\": "kerker",\n    \"value\": 774024\n  },\1027  {\n    \"key\": "zenzen",\n    \"value\": 774024\n  },\1028  {\n    \"key\": "llylly",\n    \"value\": 774024\n  },\1029  {\n    \"key\": "essess",\n    \"value\": 773023\n  },\1030  {\n    \"key\": "iteite",\n    \"value\": 773023\n  },\1031  {\n    \"key\": "eraera",\n    \"value\": 773023\n  },\1032  {\n    \"key\": "oneone",\n    \"value\": 772022\n  },\1033  {\n    \"key\": "saesae",\n    \"value\": 772022\n  },\1034  {\n    \"key\": "tortor",\n    \"value\": 771021\n  },\1035  {\n    \"key\": "testes",\n    \"value\": 771021\n  },\1036  {\n    \"key\": "istist",\n    \"value\": 771021\n  },\1037  {\n    \"key\": "tictic",\n    \"value\": 770020\n  },\1038  {\n    \"key\": "liclic",\n    \"value\": 770020\n  },\1039  {\n    \"key\": "trytry",\n    \"value\": 770020\n  },\1040  {\n    \"key\": "ionion",\n    \"value\": 779919\n  },\1041  {\n    \"key\": "aosaos",\n    \"value\": 779919\n  },\1042  {\n    \"key\": "areare",\n    \"value\": 779919\n  },\1043  {\n    \"key\": "ycayca",\n    \"value\": 778918\n  },\1044  {\n    \"key\": "dahdah",\n    \"value\": 778918\n  },\1045  {\n    \"key\": "eanean",\n    \"value\": 778918\n  },\1046  {\n    \"key\": "uleule",\n    \"value\": 777917\n  },\1047  {\n    \"key\": "ifyify",\n    \"value\": 777917\n  },\1048  {\n    \"key\": "ialial",\n    \"value\": 777917\n  },\1049  {\n    \"key\": "ionion",\n    \"value\": 776916\n  },\1050  {\n    \"key\": "ronron",\n    \"value\": 776916\n  },\1051  {\n    \"key\": "ormorm",\n    \"value\": 776916\n  },\1052  {\n    \"key\": "lonlon",\n    \"value\": 775915\n  },\1053  {\n    \"key\": "nalnal",\n    \"value\": 775915\n  },\1054  {\n    \"key\": "doldol",\n    \"value\": 775915\n  },\1055  {\n    \"key\": "arkark",\n    \"value\": 774914\n  },\1056  {\n    \"key\": "nirnir",\n    \"value\": 774914\n  },\1057  {\n    \"key\": "tumtum",\n    \"value\": 774914\n  },\1058  {\n    \"key\": "ineine",\n    \"value\": 773913\n  },\1059  {\n    \"key\": "loyloy",\n    \"value\": 773913\n  },\1060  {\n    \"key\": "tnetne",\n    \"value\": 773913\n  },\1061  {\n    \"key\": "rborbo",\n    \"value\": 772912\n  },\1062  {\n    \"key\": "ismism",\n    \"value\": 772912\n  },\1063  {\n    \"key\": "ineine",\n    \"value\": 772912\n  },\1064  {\n    \"key\": "llylly",\n    \"value\": 771911\n  },\1065  {\n    \"key\": "tidtid",\n    \"value\": 771911\n  },\1066  {\n    \"key\": "inging",\n    \"value\": 771911\n  },\1067  {\n    \"key\": "gnigni",\n    \"value\": 770910\n  },\1068  {\n    \"key\": "naenae",\n    \"value\": 770910\n  },\1069  {\n    \"key\": "ncence",\n    \"value\": 770910\n  },\1070  {\n    \"key\": "ikeike",\n    \"value\": 779819\n  },\1071  {\n    \"key\": "pedped",\n    \"value\": 779819\n  },\1072  {\n    \"key\": "napnap",\n    \"value\": 779819\n  },\1073  {\n    \"key\": "renren",\n    \"value\": 778818\n  },\1074  {\n    \"key\": "dedded",\n    \"value\": 778818\n  },\1075  {\n    \"key\": "redred",\n    \"value\": 778818\n  },\1076  {\n    \"key\": "yltylt",\n    \"value\": 777817\n  },\1077  {\n    \"key\": "ylgylg",\n    \"value\": 777817\n  },\1078  {\n    \"key\": "oseose",\n    \"value\": 777817\n  },\1079  {\n    \"key\": "ytiyti",\n    \"value\": 777817\n  },\1080  {\n    \"key\": "etaeta",\n    \"value\": 776816\n  },\1081  {\n    \"key\": "oluolu",\n    \"value\": 776816\n  },\1082  {\n    \"key\": "ncence",\n    \"value\": 776816\n  },\1083  {\n    \"key\": "riaria",\n    \"value\": 775815\n  },\1084  {\n    \"key\": "uloulo",\n    \"value\": 775815\n  },\1085  {\n    \"key\": "ionion",\n    \"value\": 775815\n  },\1086  {\n    \"key\": "llylly",\n    \"value\": 774814\n  },\1087  {\n    \"key\": "ninnin",\n    \"value\": 774814\n  },\1088  {\n    \"key\": "ughugh",\n    \"value\": 774814\n  },\1089  {\n    \"key\": "iveive",\n    \"value\": 773813\n  },\1090  {\n    \"key\": "daedae",\n    \"value\": 773813\n  },\1091  {\n    \"key\": "bleble",\n    \"value\": 773813\n  },\1092  {\n    \"key\": "entent",\n    \"value\": 773813\n  },\1093  {\n    \"key\": "budbud",\n    \"value\": 772812\n  },\1094  {\n    \"key\": "ledled",\n    \"value\": 772812\n  },\1095  {\n    \"key\": "rowrow",\n    \"value\": 772812\n  },\1096  {\n    \"key\": "oofoof",\n    \"value\": 771811\n  },\1097  {\n    \"key\": "eiteit",\n    \"value\": 771811\n  },\1098  {\n    \"key\": "hedhed",\n    \"value\": 771811\n  },\1099  {\n    \"key\": "eadead",\n    \"value\": 770810\n  },\1100  {\n    \"key\": "ghtght",\n    \"value\": 770810\n  },\1101  {\n    \"key\": "ncence",\n    \"value\": 770810\n  },\1102  {\n    \"key\": "bleble",\n    \"value\": 770810\n  },\1103  {\n    \"key\": "ralral",\n    \"value\": 779719\n  },\1104  {\n    \"key\": "entent",\n    \"value\": 779719\n  },\1105  {\n    \"key\": "ionion",\n    \"value\": 779719\n  },\1106  {\n    \"key\": "hlyhly",\n    \"value\": 778718\n  },\1107  {\n    \"key\": "dledle",\n    \"value\": 778718\n  },\1108  {\n    \"key\": "oidoid",\n    \"value\": 778718\n  },\1109  {\n    \"key\": "ousous",\n    \"value\": 778718\n  },\1110  {\n    \"key\": "ineine",\n    \"value\": 777717\n  },\1111  {\n    \"key\": "ianian",\n    \"value\": 777717\n  },\1112  {\n    \"key\": "gicgic",\n    \"value\": 777717\n  },\1113  {\n    \"key\": "mbombo",\n    \"value\": 776716\n  },\1114  {\n    \"key\": "tictic",\n    \"value\": 776716\n  },\1115  {\n    \"key\": "antant",\n    \"value\": 776716\n  },\1116  {\n    \"key\": "nwonwo",\n    \"value\": 775715\n  },\1117  {\n    \"key\": "ionion",\n    \"value\": 775715\n  },\1118  {\n    \"key\": "inging",\n    \"value\": 775715\n  },\1119  {\n    \"key\": "arkark",\n    \"value\": 775715\n  },\1120  {\n    \"key\": "nicnic",\n    \"value\": 774714\n  },\1121  {\n    \"key\": "ityity",\n    \"value\": 774714\n  },\1122  {\n    \"key\": "iveive",\n    \"value\": 774714\n  },\1123  {\n    \"key\": "testes",\n    \"value\": 774714\n  },\1124  {\n    \"key\": "llylly",\n    \"value\": 773713\n  },\1125  {\n    \"key\": "sissis",\n    \"value\": 773713\n  },\1126  {\n    \"key\": "ateate",\n    \"value\": 773713\n  },\1127  {\n    \"key\": "ledled",\n    \"value\": 772712\n  },\1128  {\n    \"key\": "niuniu",\n    \"value\": 772712\n  },\1129  {\n    \"key\": "linlin",\n    \"value\": 772712\n  },\1130  {\n    \"key\": "omyomy",\n    \"value\": 772712\n  },\1131  {\n    \"key\": "nannan",\n    \"value\": 771711\n  },\1132  {\n    \"key\": "abeabe",\n    \"value\": 771711\n  },\1133  {\n    \"key\": "ssesse",\n    \"value\": 771711\n  },\1134  {\n    \"key\": "hlyhly",\n    \"value\": 770710\n  },\1135  {\n    \"key\": "llalla",\n    \"value\": 770710\n  },\1136  {\n    \"key\": "kinkin",\n    \"value\": 770710\n  },\1137  {\n    \"key\": "essess",\n    \"value\": 770710\n  },\1138  {\n    \"key\": "essess",\n    \"value\": 779619\n  },\1139  {\n    \"key\": "itoito",\n    \"value\": 779619\n  },\1140  {\n    \"key\": "entent",\n    \"value\": 779619\n  },\1141  {\n    \"key\": "oidoid",\n    \"value\": 779619\n  },\1142  {\n    \"key\": "gerger",\n    \"value\": 778618\n  },\1143  {\n    \"key\": "moomoo",\n    \"value\": 778618\n  },\1144  {\n    \"key\": "ogyogy",\n    \"value\": 778618\n  },\1145  {\n    \"key\": "iseise",\n    \"value\": 778618\n  },\1146  {\n    \"key\": "ichich",\n    \"value\": 777617\n  },\1147  {\n    \"key\": "nedned",\n    \"value\": 777617\n  },\1148  {\n    \"key\": "bleble",\n    \"value\": 777617\n  },\1149  {\n    \"key\": "tictic",\n    \"value\": 777617\n  },\1150  {\n    \"key\": "izeize",\n    \"value\": 776616\n  },\1151  {\n    \"key\": "oxyoxy",\n    \"value\": 776616\n  },\1152  {\n    \"key\": "daldal",\n    \"value\": 776616\n  },\1153  {\n    \"key\": "carcar",\n    \"value\": 775615\n  },\1154  {\n    \"key\": "entent",\n    \"value\": 775615\n  },\1155  {\n    \"key\": "lezlez",\n    \"value\": 775615\n  },\1156  {\n    \"key\": "ikeike",\n    \"value\": 775615\n  },\1157  {\n    \"key\": "noinoi",\n    \"value\": 774614\n  },\1158  {\n    \"key\": "oftoft",\n    \"value\": 774614\n  },\1159  {\n    \"key\": "larlar",\n    \"value\": 774614\n  },\1160  {\n    \"key\": "aicaic",\n    \"value\": 774614\n  },\1161  {\n    \"key\": "nzonzo",\n    \"value\": 773613\n  },\1162  {\n    \"key\": "ianian",\n    \"value\": 773613\n  },\1163  {\n    \"key\": "hlyhly",\n    \"value\": 773613\n  },\1164  {\n    \"key\": "manman",\n    \"value\": 773613\n  },\1165  {\n    \"key\": "iteite",\n    \"value\": 772612\n  },\1166  {\n    \"key\": "eryery",\n    \"value\": 772612\n  },\1167  {\n    \"key\": "ttotto",\n    \"value\": 772612\n  },\1168  {\n    \"key\": "nylnyl",\n    \"value\": 772612\n  },\1169  {\n    \"key\": "ariari",\n    \"value\": 771611\n  },\1170  {\n    \"key\": "ssesse",\n    \"value\": 771611\n  },\1171  {\n    \"key\": "warwar",\n    \"value\": 771611\n  },\1172  {\n    \"key\": "ousous",\n    \"value\": 771611\n  },\1173  {\n    \"key\": "oreore",\n    \"value\": 770610\n  },\1174  {\n    \"key\": "ionion",\n    \"value\": 770610\n  },\1175  {\n    \"key\": "nornor",\n    \"value\": 770610\n  },\1176  {\n    \"key\": "niania",\n    \"value\": 770610\n  },\1177  {\n    \"key\": "niania",\n    \"value\": 779519\n  },\1178  {\n    \"key\": "boxbox",\n    \"value\": 779519\n  },\1179  {\n    \"key\": "aabaab",\n    \"value\": 779519\n  },\1180  {\n    \"key\": "miamia",\n    \"value\": 779519\n  },\1181  {\n    \"key\": "untunt",\n    \"value\": 778518\n  },\1182  {\n    \"key\": "ogyogy",\n    \"value\": 778518\n  },\1183  {\n    \"key\": "ousous",\n    \"value\": 778518\n  },\1184  {\n    \"key\": "ialial",\n    \"value\": 778518\n  },\1185  {\n    \"key\": "lialia",\n    \"value\": 777517\n  },\1186  {\n    \"key\": "etyety",\n    \"value\": 777517\n  },\1187  {\n    \"key\": "ionion",\n    \"value\": 777517\n  },\1188  {\n    \"key\": "ionion",\n    \"value\": 777517\n  },\1189  {\n    \"key\": "eateat",\n    \"value\": 777517\n  },\1190  {\n    \"key\": "bitbit",\n    \"value\": 776516\n  },\1191  {\n    \"key\": "ishish",\n    \"value\": 776516\n  },\1192  {\n    \"key\": "calcal",\n    \"value\": 776516\n  },\1193  {\n    \"key\": "ikeike",\n    \"value\": 776516\n  },\1194  {\n    \"key\": "cincin",\n    \"value\": 775515\n  },\1195  {\n    \"key\": "niknik",\n    \"value\": 775515\n  },\1196  {\n    \"key\": "oneone",\n    \"value\": 775515\n  },\1197  {\n    \"key\": "roiroi",\n    \"value\": 775515\n  },\1198  {\n    \"key\": "ricric",\n    \"value\": 774514\n  },\1199  {\n    \"key\": "ideide",\n    \"value\": 774514\n  },\1200  {\n    \"key\": "nrynry",\n    \"value\": 774514\n  },\1201  {\n    \"key\": "roiroi",\n    \"value\": 775515\n  },\1202  {\n    \"key\": "ricric",\n    \"value\": 774514\n  },\1203  {\n    \"key\": "ideide",\n    \"value\": 774514\n  },\1204  {\n    \"key\": "nrynry",\n    \"value\": 774514\n  },\1205  {\n    \"key\": "lialia",\n    \"value\": 777517\n  },\1206  {\n    \"key\": "etyety",\n    \"value\": 777517\n  },\1207  {\n    \"key\": "ionion",\n    \"value\": 777517\n  },\1208  {\n    \"key\": "ionion",\n    \"value\": 777517\n  },\1209  {\n    \"key\": "eateat",\n    \"value\": 777517\n  },\1210  {\n    \"key\": "bitbit",\n    \"value\": 776516\n  },\1211  {\n    \"key\": "ishish",\n    \"value\": 776516\n  },\1212  {\n    \"key\": "calcal",\n    \"value\": 776516\n  },\1213  {\n    \"key\": "ikeike",\n    \"value\": 776516\n  },\1214  {\n    \"key\": "cincin",\n    \"value\": 775515\n  },\1215  {\n    \"key\": "niknik",\n    \"value\": 775515\n  },\1216  {\n    \"key\": "oneone",\n    \"value\": 775515\n  },\1217  {\n    \"key\": "roiroi",\n    \"value\": 775515\n  },\1218  {\n    \"key\": "ricric",\n    \"value\": 774514\n  },\1219  {\n    \"key\": "ideide",\n    \"value\": 774514\n  },\1220  {\n    \"key\": "nrynry",\n    \"value\": 774514\n  },\1221  {\n    \"key\": "roiroi",\n    \"value\": 775515\n  },\1222  {\n    \"key\": "ricric",\n    \"value\": 774514\n  },\1223  {\n    \"key\": "ideide",\n    \"value\": 774514\n  },\1224  {\n    \"key\": "nrynry",\n    \"value\": 774514\n  },\1225  {\n    \"key\": "ralral",\n    \"value\": 779049\n  }]';...keyhandler_test.js
Source:keyhandler_test.js  
1// Copyright 2008 The Closure Library Authors. All Rights Reserved.2//3// Licensed under the Apache License, Version 2.0 (the "License");4// you may not use this file except in compliance with the License.5// You may obtain a copy of the License at6//7//      http://www.apache.org/licenses/LICENSE-2.08//9// Unless required by applicable law or agreed to in writing, software10// distributed under the License is distributed on an "AS-IS" BASIS,11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.12// See the License for the specific language governing permissions and13// limitations under the License.14goog.provide('goog.events.KeyEventTest');15goog.setTestOnly('goog.events.KeyEventTest');16goog.require('goog.dom');17goog.require('goog.events');18goog.require('goog.events.BrowserEvent');19goog.require('goog.events.EventType');20goog.require('goog.events.KeyCodes');21goog.require('goog.events.KeyHandler');22goog.require('goog.testing.events');23goog.require('goog.testing.jsunit');24goog.require('goog.userAgent');25function setUp() {26  // Have this based on a fictitious DOCUMENT_MODE constant.27  goog.userAgent.isDocumentMode = function(mode) {28    return mode <= goog.userAgent.DOCUMENT_MODE;29  };30}31/**32 * Tests the key handler for the IE 8 and lower behavior.33 */34function testIe8StyleKeyHandling() {35  goog.userAgent.OPERA = false;36  goog.userAgent.IE = true;37  goog.userAgent.GECKO = false;38  goog.userAgent.CAMINO = false;39  goog.userAgent.WEBKIT = false;40  goog.userAgent.MAC = false;41  goog.userAgent.WINDOWS = true;42  goog.userAgent.LINUX = false;43  goog.userAgent.VERSION = 8;44  goog.userAgent.DOCUMENT_MODE = 8;45  goog.events.KeyHandler.USES_KEYDOWN_ = true;46  assertIe8StyleKeyHandling();47}48/**49 * Tests the key handler for the IE 8 and lower behavior.50 */51function testIe8StyleKeyHandlingInIe9DocumentMode() {52  goog.userAgent.OPERA = false;53  goog.userAgent.IE = true;54  goog.userAgent.GECKO = false;55  goog.userAgent.CAMINO = false;56  goog.userAgent.WEBKIT = false;57  goog.userAgent.MAC = false;58  goog.userAgent.WINDOWS = true;59  goog.userAgent.LINUX = false;60  goog.userAgent.VERSION = 9; // Try IE9 in IE8 document mode.61  goog.userAgent.DOCUMENT_MODE = 8;62  goog.events.KeyHandler.USES_KEYDOWN_ = true;63  assertIe8StyleKeyHandling();64}65function assertIe8StyleKeyHandling() {66  var keyEvent, keyHandler = new goog.events.KeyHandler();67  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,68      function(e) { keyEvent = e; });69  fireKeyDown(keyHandler, goog.events.KeyCodes.ENTER);70  fireKeyPress(keyHandler, goog.events.KeyCodes.ENTER);71  assertEquals('Enter should fire a key event with the keycode 13',72               goog.events.KeyCodes.ENTER,73               keyEvent.keyCode);74  assertEquals('Enter should fire a key event with the charcode 0',75               0,76               keyEvent.charCode);77  fireKeyDown(keyHandler, goog.events.KeyCodes.ESC);78  fireKeyPress(keyHandler, goog.events.KeyCodes.ESC);79  assertEquals('Esc should fire a key event with the keycode 27',80               goog.events.KeyCodes.ESC,81               keyEvent.keyCode);82  assertEquals('Esc should fire a key event with the charcode 0',83               0,84               keyEvent.charCode);85  fireKeyDown(keyHandler, goog.events.KeyCodes.UP);86  assertEquals('Up should fire a key event with the keycode 38',87               goog.events.KeyCodes.UP,88               keyEvent.keyCode);89  assertEquals('Up should fire a key event with the charcode 0',90               0,91               keyEvent.charCode);92  fireKeyDown(keyHandler, goog.events.KeyCodes.SEVEN, undefined, undefined,93      undefined, undefined, true);94  fireKeyPress(keyHandler, 38, undefined, undefined, undefined, undefined,95      true);96  assertEquals('Shift+7 should fire a key event with the keycode 55',97               goog.events.KeyCodes.SEVEN,98               keyEvent.keyCode);99  assertEquals('Shift+7 should fire a key event with the charcode 38',100               38,101               keyEvent.charCode);102  fireKeyDown(keyHandler, goog.events.KeyCodes.A);103  fireKeyPress(keyHandler, 97);104  assertEquals('Lower case a should fire a key event with the keycode 65',105               goog.events.KeyCodes.A,106               keyEvent.keyCode);107  assertEquals('Lower case a should fire a key event with the charcode 97',108               97,109               keyEvent.charCode);110  fireKeyDown(keyHandler, goog.events.KeyCodes.A);111  fireKeyPress(keyHandler, 65);112  assertEquals('Upper case A should fire a key event with the keycode 65',113               goog.events.KeyCodes.A,114               keyEvent.keyCode);115  assertEquals('Upper case A should fire a key event with the charcode 65',116               65,117               keyEvent.charCode);118  fireKeyDown(keyHandler, goog.events.KeyCodes.DELETE);119  assertEquals('Delete should fire a key event with the keycode 46',120               goog.events.KeyCodes.DELETE,121               keyEvent.keyCode);122  assertEquals('Delete should fire a key event with the charcode 0',123               0,124               keyEvent.charCode);125  fireKeyDown(keyHandler, goog.events.KeyCodes.PERIOD);126  fireKeyPress(keyHandler, 46);127  assertEquals('Period should fire a key event with the keycode 190',128               goog.events.KeyCodes.PERIOD,129               keyEvent.keyCode);130  assertEquals('Period should fire a key event with the charcode 46',131               46,132               keyEvent.charCode);133  fireKeyDown(keyHandler, goog.events.KeyCodes.CTRL);134  fireKeyDown(keyHandler, goog.events.KeyCodes.A);135  assertEquals('A with control down should fire a key event',136               goog.events.KeyCodes.A,137               keyEvent.keyCode);138  // On IE, when Ctrl+<key> is held down, there is a KEYDOWN, a KEYPRESS, and139  // then a series of KEYDOWN events for each repeat.140  fireKeyDown(keyHandler, goog.events.KeyCodes.B, undefined, undefined, true);141  fireKeyPress(keyHandler, goog.events.KeyCodes.B, undefined, undefined,142      true);143  assertEquals('B with control down should fire a key event',144               goog.events.KeyCodes.B,145               keyEvent.keyCode);146  assertTrue('Ctrl should be down.', keyEvent.ctrlKey);147  assertFalse('Should not have repeat=true on the first key press.',148      keyEvent.repeat);149  // Fire one repeated keydown event.150  fireKeyDown(keyHandler, goog.events.KeyCodes.B, undefined, undefined, true);151  assertEquals('A with control down should fire a key event',152               goog.events.KeyCodes.B,153               keyEvent.keyCode);154  assertTrue('Should have repeat=true on key repeat.',155      keyEvent.repeat);156  assertTrue('Ctrl should be down.', keyEvent.ctrlKey);157}158/**159 * Tests special cases for IE9.160 */161function testIe9StyleKeyHandling() {162  goog.userAgent.OPERA = false;163  goog.userAgent.IE = true;164  goog.userAgent.GECKO = false;165  goog.userAgent.CAMINO = false;166  goog.userAgent.WEBKIT = false;167  goog.userAgent.MAC = false;168  goog.userAgent.WINDOWS = true;169  goog.userAgent.LINUX = false;170  goog.userAgent.VERSION = 9;171  goog.userAgent.DOCUMENT_MODE = 9;172  goog.events.KeyHandler.USES_KEYDOWN_ = true;173  var keyEvent, keyHandler = new goog.events.KeyHandler();174  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,175      function(e) { keyEvent = e; });176  fireKeyDown(keyHandler, goog.events.KeyCodes.ENTER);177  fireKeyPress(keyHandler, goog.events.KeyCodes.ENTER);178  assertEquals('Enter should fire a key event with the keycode 13',179               goog.events.KeyCodes.ENTER,180               keyEvent.keyCode);181  assertEquals('Enter should fire a key event with the charcode 0',182               0,183               keyEvent.charCode);184}185/**186 * Tests the key handler for the Gecko behavior.187 */188function testGeckoStyleKeyHandling() {189  goog.userAgent.OPERA = false;190  goog.userAgent.IE = false;191  goog.userAgent.GECKO = true;192  goog.userAgent.CAMINO = false;193  goog.userAgent.WEBKIT = false;194  goog.userAgent.MAC = false;195  goog.userAgent.WINDOWS = true;196  goog.userAgent.LINUX = false;197  goog.events.KeyHandler.USES_KEYDOWN_ = false;198  var keyEvent, keyHandler = new goog.events.KeyHandler();199  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,200      function(e) { keyEvent = e; });201  fireKeyDown(keyHandler, goog.events.KeyCodes.ENTER);202  fireKeyPress(keyHandler, goog.events.KeyCodes.ENTER);203  assertEquals('Enter should fire a key event with the keycode 13',204               goog.events.KeyCodes.ENTER,205               keyEvent.keyCode);206  assertEquals('Enter should fire a key event with the charcode 0',207               0,208               keyEvent.charCode);209  fireKeyDown(keyHandler, goog.events.KeyCodes.ESC);210  fireKeyPress(keyHandler, goog.events.KeyCodes.ESC);211  assertEquals('Esc should fire a key event with the keycode 27',212               goog.events.KeyCodes.ESC,213               keyEvent.keyCode);214  assertEquals('Esc should fire a key event with the charcode 0',215               0,216               keyEvent.charCode);217  fireKeyDown(keyHandler, goog.events.KeyCodes.UP);218  fireKeyPress(keyHandler, goog.events.KeyCodes.UP);219  assertEquals('Up should fire a key event with the keycode 38',220               goog.events.KeyCodes.UP,221               keyEvent.keyCode);222  assertEquals('Up should fire a key event with the charcode 0',223               0,224               keyEvent.charCode);225  fireKeyDown(keyHandler, goog.events.KeyCodes.SEVEN, undefined, undefined,226      undefined, undefined, true);227  fireKeyPress(keyHandler, undefined, 38, undefined, undefined, undefined,228      true);229  assertEquals('Shift+7 should fire a key event with the keycode 55',230               goog.events.KeyCodes.SEVEN,231               keyEvent.keyCode);232  assertEquals('Shift+7 should fire a key event with the charcode 38',233               38,234               keyEvent.charCode);235  fireKeyDown(keyHandler, goog.events.KeyCodes.A);236  fireKeyPress(keyHandler, undefined, 97);237  assertEquals('Lower case a should fire a key event with the keycode 65',238               goog.events.KeyCodes.A,239               keyEvent.keyCode);240  assertEquals('Lower case a should fire a key event with the charcode 97',241               97,242               keyEvent.charCode);243  fireKeyDown(keyHandler, goog.events.KeyCodes.A);244  fireKeyPress(keyHandler, undefined, 65);245  assertEquals('Upper case A should fire a key event with the keycode 65',246               goog.events.KeyCodes.A,247               keyEvent.keyCode);248  assertEquals('Upper case A should fire a key event with the charcode 65',249               65,250               keyEvent.charCode);251  fireKeyDown(keyHandler, goog.events.KeyCodes.DELETE);252  fireKeyPress(keyHandler, goog.events.KeyCodes.DELETE);253  assertEquals('Delete should fire a key event with the keycode 46',254               goog.events.KeyCodes.DELETE,255               keyEvent.keyCode);256  assertEquals('Delete should fire a key event with the charcode 0',257               0,258               keyEvent.charCode);259  fireKeyDown(keyHandler, goog.events.KeyCodes.PERIOD);260  fireKeyPress(keyHandler, undefined, 46);261  assertEquals('Period should fire a key event with the keycode 190',262               goog.events.KeyCodes.PERIOD,263               keyEvent.keyCode);264  assertEquals('Period should fire a key event with the charcode 46',265               46,266               keyEvent.charCode);267}268/**269 * Tests the key handler for the Safari 3 behavior.270 */271function testSafari3StyleKeyHandling() {272  goog.userAgent.OPERA = false;273  goog.userAgent.IE = false;274  goog.userAgent.GECKO = false;275  goog.userAgent.CAMINO = false;276  goog.userAgent.WEBKIT = true;277  goog.userAgent.MAC = true;278  goog.userAgent.WINDOWS = false;279  goog.userAgent.LINUX = false;280  goog.events.KeyHandler.USES_KEYDOWN_ = true;281  goog.userAgent.VERSION = 525.3;282  var keyEvent, keyHandler = new goog.events.KeyHandler();283  // Make sure all events are caught while testing284  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,285      function(e) { keyEvent = e; });286  fireKeyDown(keyHandler, goog.events.KeyCodes.ENTER);287  fireKeyPress(keyHandler, goog.events.KeyCodes.ENTER);288  assertEquals('Enter should fire a key event with the keycode 13',289               goog.events.KeyCodes.ENTER,290               keyEvent.keyCode);291  assertEquals('Enter should fire a key event with the charcode 0',292               0,293               keyEvent.charCode);294  fireKeyUp(keyHandler, goog.events.KeyCodes.ENTER);295  // Add a listener to ensure that an extra ENTER event is not dispatched296  // by a subsequent keypress.297  var enterCheck = goog.events.listen(keyHandler,298      goog.events.KeyHandler.EventType.KEY,299      function(e) {300        assertNotEquals('Unexpected ENTER keypress dispatched',301            e.keyCode, goog.events.KeyCodes.ENTER);302      });303  fireKeyDown(keyHandler, goog.events.KeyCodes.ESC);304  assertEquals('Esc should fire a key event with the keycode 27',305               goog.events.KeyCodes.ESC,306               keyEvent.keyCode);307  assertEquals('Esc should fire a key event with the charcode 0',308               0,309               keyEvent.charCode);310  fireKeyPress(keyHandler, goog.events.KeyCodes.ESC);311  goog.events.unlistenByKey(enterCheck);312  fireKeyDown(keyHandler, goog.events.KeyCodes.UP);313  assertEquals('Up should fire a key event with the keycode 38',314               goog.events.KeyCodes.UP,315               keyEvent.keyCode);316  assertEquals('Up should fire a key event with the charcode 0',317               0,318               keyEvent.charCode);319  fireKeyDown(keyHandler, goog.events.KeyCodes.SEVEN, undefined, undefined,320      undefined, undefined, true);321  fireKeyPress(keyHandler, 38, 38, undefined, undefined, undefined, true);322  assertEquals('Shift+7 should fire a key event with the keycode 55',323               goog.events.KeyCodes.SEVEN,324               keyEvent.keyCode);325  assertEquals('Shift+7 should fire a key event with the charcode 38',326               38,327               keyEvent.charCode);328  fireKeyDown(keyHandler, goog.events.KeyCodes.A);329  fireKeyPress(keyHandler, 97, 97);330  assertEquals('Lower case a should fire a key event with the keycode 65',331               goog.events.KeyCodes.A,332               keyEvent.keyCode);333  assertEquals('Lower case a should fire a key event with the charcode 97',334               97,335               keyEvent.charCode);336  fireKeyDown(keyHandler, goog.events.KeyCodes.A);337  fireKeyPress(keyHandler, 65, 65);338  assertEquals('Upper case A should fire a key event with the keycode 65',339               goog.events.KeyCodes.A,340               keyEvent.keyCode);341  assertEquals('Upper case A should fire a key event with the charcode 65',342               65,343               keyEvent.charCode);344  fireKeyDown(keyHandler, goog.events.KeyCodes.CTRL);345  fireKeyDown(keyHandler, goog.events.KeyCodes.A, null, null, true /*ctrl*/);346  assertEquals('A with control down should fire a key event',347               goog.events.KeyCodes.A,348               keyEvent.keyCode);349  // Test that Alt-Tab outside the window doesn't break things.350  fireKeyDown(keyHandler, goog.events.KeyCodes.ALT);351  keyEvent.keyCode = -1;  // Reset the event.352  fireKeyDown(keyHandler, goog.events.KeyCodes.A);353  assertEquals('Should not have dispatched an Alt-A', -1, keyEvent.keyCode);354  fireKeyPress(keyHandler, 65, 65);355  assertEquals('Alt should be ignored since it isn\'t currently depressed',356               goog.events.KeyCodes.A,357               keyEvent.keyCode);358  fireKeyDown(keyHandler, goog.events.KeyCodes.DELETE);359  assertEquals('Delete should fire a key event with the keycode 46',360               goog.events.KeyCodes.DELETE,361               keyEvent.keyCode);362  assertEquals('Delete should fire a key event with the charcode 0',363               0,364               keyEvent.charCode);365  fireKeyDown(keyHandler, goog.events.KeyCodes.PERIOD);366  fireKeyPress(keyHandler, 46, 46);367  assertEquals('Period should fire a key event with the keycode 190',368               goog.events.KeyCodes.PERIOD,369               keyEvent.keyCode);370  assertEquals('Period should fire a key event with the charcode 46',371               46,372               keyEvent.charCode);373  // Safari sends zero key code for non-latin characters.374  fireKeyDown(keyHandler, 0, 0);375  fireKeyPress(keyHandler, 1092, 1092);376  assertEquals('Cyrillic small letter "Ef" should fire a key event with ' +377                   'the keycode 0',378               0,379               keyEvent.keyCode);380  assertEquals('Cyrillic small letter "Ef" should fire a key event with ' +381                   'the charcode 1092',382               1092,383               keyEvent.charCode);384}385/**386 * Tests the key handler for the Opera behavior.387 */388function testOperaStyleKeyHandling() {389  goog.userAgent.OPERA = true;390  goog.userAgent.IE = false;391  goog.userAgent.GECKO = false;392  goog.userAgent.CAMINO = false;393  goog.userAgent.WEBKIT = false;394  goog.userAgent.MAC = false;395  goog.userAgent.WINDOWS = true;396  goog.userAgent.LINUX = false;397  goog.events.KeyHandler.USES_KEYDOWN_ = false;398  var keyEvent, keyHandler = new goog.events.KeyHandler();399  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,400      function(e) { keyEvent = e; });401  fireKeyDown(keyHandler, goog.events.KeyCodes.ENTER);402  fireKeyPress(keyHandler, goog.events.KeyCodes.ENTER);403  assertEquals('Enter should fire a key event with the keycode 13',404               goog.events.KeyCodes.ENTER,405               keyEvent.keyCode);406  assertEquals('Enter should fire a key event with the charcode 0',407               0,408               keyEvent.charCode);409  fireKeyDown(keyHandler, goog.events.KeyCodes.ESC);410  fireKeyPress(keyHandler, goog.events.KeyCodes.ESC);411  assertEquals('Esc should fire a key event with the keycode 27',412               goog.events.KeyCodes.ESC,413               keyEvent.keyCode);414  assertEquals('Esc should fire a key event with the charcode 0',415               0,416               keyEvent.charCode);417  fireKeyDown(keyHandler, goog.events.KeyCodes.UP);418  fireKeyPress(keyHandler, goog.events.KeyCodes.UP);419  assertEquals('Up should fire a key event with the keycode 38',420               goog.events.KeyCodes.UP,421               keyEvent.keyCode);422  assertEquals('Up should fire a key event with the charcode 0',423               0,424               keyEvent.charCode);425  fireKeyDown(keyHandler, goog.events.KeyCodes.SEVEN, undefined, undefined,426      undefined, undefined, true);427  fireKeyPress(keyHandler, 38, undefined, undefined, undefined, undefined,428      true);429  assertEquals('Shift+7 should fire a key event with the keycode 55',430               goog.events.KeyCodes.SEVEN,431               keyEvent.keyCode);432  assertEquals('Shift+7 should fire a key event with the charcode 38',433               38,434               keyEvent.charCode);435  fireKeyDown(keyHandler, goog.events.KeyCodes.A);436  fireKeyPress(keyHandler, 97);437  assertEquals('Lower case a should fire a key event with the keycode 65',438               goog.events.KeyCodes.A,439               keyEvent.keyCode);440  assertEquals('Lower case a should fire a key event with the charcode 97',441               97,442               keyEvent.charCode);443  fireKeyDown(keyHandler, goog.events.KeyCodes.A);444  fireKeyPress(keyHandler, 65);445  assertEquals('Upper case A should fire a key event with the keycode 65',446               goog.events.KeyCodes.A,447               keyEvent.keyCode);448  assertEquals('Upper case A should fire a key event with the charcode 65',449               65,450               keyEvent.charCode);451  fireKeyDown(keyHandler, goog.events.KeyCodes.DELETE);452  fireKeyPress(keyHandler, goog.events.KeyCodes.DELETE);453  assertEquals('Delete should fire a key event with the keycode 46',454               goog.events.KeyCodes.DELETE,455               keyEvent.keyCode);456  assertEquals('Delete should fire a key event with the charcode 0',457               0,458               keyEvent.charCode);459  fireKeyDown(keyHandler, goog.events.KeyCodes.PERIOD);460  fireKeyPress(keyHandler, 46);461  assertEquals('Period should fire a key event with the keycode 190',462               goog.events.KeyCodes.PERIOD,463               keyEvent.keyCode);464  assertEquals('Period should fire a key event with the charcode 46',465               46,466               keyEvent.charCode);467}468function testGeckoOnMacAltHandling() {469  goog.userAgent.OPERA = false;470  goog.userAgent.IE = false;471  goog.userAgent.GECKO = true;472  goog.userAgent.CAMINO = false;473  goog.userAgent.WEBKIT = false;474  goog.userAgent.MAC = true;475  goog.userAgent.WINDOWS = false;476  goog.userAgent.LINUX = false;477  goog.events.KeyHandler.SAVE_ALT_FOR_KEYPRESS_ = true;478  var keyEvent, keyHandler = new goog.events.KeyHandler();479  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,480      function(e) { keyEvent = e; });481  fireKeyDown(keyHandler, goog.events.KeyCodes.COMMA, 0, null, false,482      true, false);483  fireKeyPress(keyHandler, 0, 8804, null, false, false, false);484  assertEquals('should fire a key event with COMMA',485      goog.events.KeyCodes.COMMA,486      keyEvent.keyCode);487  assertEquals('should fire a key event with alt key set',488      true,489      keyEvent.altKey);490  // Scenario: alt down, a down, a press, a up (should say alt is true),491  // alt up.492  keyEvent = undefined;493  fireKeyDown(keyHandler, 18, 0, null, false, true, false);494  fireKeyDown(keyHandler, goog.events.KeyCodes.A, 0, null, false, true,495      false);496  fireKeyPress(keyHandler, 0, 229, null, false, false, false);497  assertEquals('should fire a key event with alt key set',498      true,499      keyEvent.altKey);500  fireKeyUp(keyHandler, 0, 229, null, false, true, false);501  assertEquals('alt key should still be set',502      true,503      keyEvent.altKey);504  fireKeyUp(keyHandler, 18, 0, null, false, false, false);505}506function testGeckoEqualSign() {507  goog.userAgent.OPERA = false;508  goog.userAgent.IE = false;509  goog.userAgent.GECKO = true;510  goog.userAgent.CAMINO = false;511  goog.userAgent.WEBKIT = false;512  goog.userAgent.MAC = false;513  goog.userAgent.WINDOWS = true;514  goog.userAgent.LINUX = false;515  goog.events.KeyHandler.USES_KEYDOWN_ = false;516  var keyEvent, keyHandler = new goog.events.KeyHandler();517  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,518      function(e) { keyEvent = e; });519  fireKeyDown(keyHandler, 61, 0);520  fireKeyPress(keyHandler, 0, 61);521  assertEquals('= should fire should fire a key event with the keyCode 187',522               goog.events.KeyCodes.EQUALS,523               keyEvent.keyCode);524  assertEquals('= should fire a key event with the charCode 61',525               goog.events.KeyCodes.FF_EQUALS,526               keyEvent.charCode);527}528function testMacGeckoSlash() {529  goog.userAgent.OPERA = false;530  goog.userAgent.IE = false;531  goog.userAgent.GECKO = true;532  goog.userAgent.CAMINO = false;533  goog.userAgent.WEBKIT = false;534  goog.userAgent.MAC = true;535  goog.userAgent.WINDOWS = false;536  goog.userAgent.LINUX = false;537  goog.events.KeyHandler.USES_KEYDOWN_ = false;538  var keyEvent, keyHandler = new goog.events.KeyHandler();539  goog.events.listen(keyHandler, goog.events.KeyHandler.EventType.KEY,540      function(e) { keyEvent = e; });541  fireKeyDown(keyHandler, 0, 63, null, false, false, true);542  fireKeyPress(keyHandler, 0, 63, null, false, false, true);543  assertEquals('/ should fire a key event with the keyCode 191',544               goog.events.KeyCodes.SLASH,545               keyEvent.keyCode);546  assertEquals('? should fire a key event with the charCode 63',547               goog.events.KeyCodes.QUESTION_MARK,548               keyEvent.charCode);549}550function testGetElement() {551  var target = goog.dom.createDom('div');552  var target2 = goog.dom.createDom('div');553  var keyHandler = new goog.events.KeyHandler();554  assertNull(keyHandler.getElement());555  keyHandler.attach(target);556  assertEquals(target, keyHandler.getElement());557  keyHandler.attach(target2);558  assertNotEquals(target, keyHandler.getElement());559  assertEquals(target2, keyHandler.getElement());560  var doc = goog.dom.getDocument();561  keyHandler.attach(doc);562  assertEquals(doc, keyHandler.getElement());563  keyHandler = new goog.events.KeyHandler(doc);564  assertEquals(doc, keyHandler.getElement());565  keyHandler = new goog.events.KeyHandler(target);566  assertEquals(target, keyHandler.getElement());567}568function testDetach() {569  var target = goog.dom.createDom('div');570  var keyHandler = new goog.events.KeyHandler(target);571  assertEquals(target, keyHandler.getElement());572  fireKeyDown(keyHandler, 0, 63, null, false, false, true);573  fireKeyPress(keyHandler, 0, 63, null, false, false, true);574  keyHandler.detach();575  assertNull(keyHandler.getElement());576  // All listeners should be cleared.577  assertNull(keyHandler.keyDownKey_);578  assertNull(keyHandler.keyPressKey_);579  assertNull(keyHandler.keyUpKey_);580  // All key related state should be cleared.581  assertEquals('Last key should be -1', -1, keyHandler.lastKey_);582  assertEquals('keycode should be -1', -1, keyHandler.keyCode_);583}584function testCapturePhase() {585  var gotInCapturePhase;586  var gotInBubblePhase;587  var target = goog.dom.createDom('div');588  goog.events.listen(589      new goog.events.KeyHandler(target, false /* bubble */),590      goog.events.KeyHandler.EventType.KEY,591      function() {592        gotInBubblePhase = true;593        assertTrue(gotInCapturePhase);594      });595  goog.events.listen(596      new goog.events.KeyHandler(target, true /* capture */),597      goog.events.KeyHandler.EventType.KEY,598      function() {599        gotInCapturePhase = true;600      });601  goog.testing.events.fireKeySequence(target, goog.events.KeyCodes.ESC);602  assertTrue(gotInBubblePhase);603}604function fireKeyDown(keyHandler, keyCode, opt_charCode, opt_keyIdentifier,605    opt_ctrlKey, opt_altKey, opt_shiftKey) {606  var fakeEvent = createFakeKeyEvent(607      goog.events.EventType.KEYDOWN, keyCode, opt_charCode, opt_keyIdentifier,608      opt_ctrlKey, opt_altKey, opt_shiftKey);609  keyHandler.handleKeyDown_(fakeEvent);610  return fakeEvent.returnValue_;611}612function fireKeyPress(keyHandler, keyCode, opt_charCode, opt_keyIdentifier,613    opt_ctrlKey, opt_altKey, opt_shiftKey) {614  var fakeEvent = createFakeKeyEvent(615      goog.events.EventType.KEYPRESS, keyCode, opt_charCode,616      opt_keyIdentifier, opt_ctrlKey, opt_altKey, opt_shiftKey);617  keyHandler.handleEvent(fakeEvent);618  return fakeEvent.returnValue_;619}620function fireKeyUp(keyHandler, keyCode, opt_charCode, opt_keyIdentifier,621    opt_ctrlKey, opt_altKey, opt_shiftKey) {622  var fakeEvent = createFakeKeyEvent(623      goog.events.EventType.KEYUP, keyCode, opt_charCode,624      opt_keyIdentifier, opt_ctrlKey, opt_altKey, opt_shiftKey);625  keyHandler.handleKeyup_(fakeEvent);626  return fakeEvent.returnValue_;627}628function createFakeKeyEvent(type, keyCode, opt_charCode, opt_keyIdentifier,629    opt_ctrlKey, opt_altKey, opt_shiftKey) {630  var event = {631    type: type,632    keyCode: keyCode,633    charCode: opt_charCode || undefined,634    keyIdentifier: opt_keyIdentifier || undefined,635    ctrlKey: opt_ctrlKey || false,636    altKey: opt_altKey || false,637    shiftKey: opt_shiftKey || false,638    timeStamp: goog.now()639  };640  return new goog.events.BrowserEvent(event);...countries.ts
Source:countries.ts  
1export const COUNTRIES = [2  {key: "244", value: "Aaland Islands"},3  {key: "1", value: "Afghanistan"},4  {key: "2", value: "Albania"},5  {key: "3", value: "Algeria"},6  {key: "4", value: "American Samoa"},7  {key: "5", value: "Andorra"},8  {key: "6", value: "Angola"},9  {key: "7", value: "Anguilla"},10  {key: "8", value: "Antarctica"},11  {key: "9", value: "Antigua and Barbuda"},12  {key: "10", value: "Argentina"},13  {key: "11", value: "Armenia"},14  {key: "12", value: "Aruba"},15  {key: "13", value: "Australia"},16  {key: "14", value: "Austria"},17  {key: "15", value: "Azerbaijan"},18  {key: "16", value: "Bahamas"},19  {key: "17", value: "Bahrain"},20  {key: "18", value: "Bangladesh"},21  {key: "19", value: "Barbados"},22  {key: "20", value: "Belarus"},23  {key: "21", value: "Belgium"},24  {key: "22", value: "Belize"},25  {key: "23", value: "Benin"},26  {key: "24", value: "Bermuda"},27  {key: "25", value: "Bhutan"},28  {key: "26", value: "Bolivia"},29  {key: "245", value: "Bonaire, Sint Eustatius and Saba"},30  {key: "27", value: "Bosnia and Herzegovina"},31  {key: "28", value: "Botswana"},32  {key: "29", value: "Bouvet Island"},33  {key: "30", value: "Brazil"},34  {key: "31", value: "British Indian Ocean Territory"},35  {key: "32", value: "Brunei Darussalam"},36  {key: "33", value: "Bulgaria"},37  {key: "34", value: "Burkina Faso"},38  {key: "35", value: "Burundi"},39  {key: "36", value: "Cambodia"},40  {key: "37", value: "Cameroon"},41  {key: "38", value: "Canada"},42  {key: "251", value: "Canary Islands"},43  {key: "39", value: "Cape Verde"},44  {key: "40", value: "Cayman Islands"},45  {key: "41", value: "Central African Republic"},46  {key: "42", value: "Chad"},47  {key: "43", value: "Chile"},48  {key: "44", value: "China"},49  {key: "45", value: "Christmas Island"},50  {key: "46", value: "Cocos (Keeling) Islands"},51  {key: "47", value: "Colombia"},52  {key: "48", value: "Comoros"},53  {key: "49", value: "Congo"},54  {key: "50", value: "Cook Islands"},55  {key: "51", value: "Costa Rica"},56  {key: "52", value: "Cote D'Ivoire"},57  {key: "53", value: "Croatia"},58  {key: "54", value: "Cuba"},59  {key: "246", value: "Curacao"},60  {key: "55", value: "Cyprus"},61  {key: "56", value: "Czech Republic"},62  {key: "237", value: "Democratic Republic of Congo"},63  {key: "57", value: "Denmark"},64  {key: "58", value: "Djibouti"},65  {key: "59", value: "Dominica"},66  {key: "60", value: "Dominican Republic"},67  {key: "61", value: "East Timor"},68  {key: "62", value: "Ecuador"},69  {key: "63", value: "Egypt"},70  {key: "64", value: "El Salvador"},71  {key: "65", value: "Equatorial Guinea"},72  {key: "66", value: "Eritrea"},73  {key: "67", value: "Estonia"},74  {key: "68", value: "Ethiopia"},75  {key: "69", value: "Falkland Islands (Malvinas)"},76  {key: "70", value: "Faroe Islands"},77  {key: "71", value: "Fiji"},78  {key: "72", value: "Finland"},79  {key: "74", value: "France, skypolitan"},80  {key: "75", value: "French Guiana"},81  {key: "76", value: "French Polynesia"},82  {key: "77", value: "French Southern Territories"},83  {key: "126", value: "FYROM"},84  {key: "78", value: "Gabon"},85  {key: "79", value: "Gambia"},86  {key: "80", value: "Georgia"},87  {key: "81", value: "Germany"},88  {key: "82", value: "Ghana"},89  {key: "83", value: "Gibraltar"},90  {key: "84", value: "Greece"},91  {key: "85", value: "Greenland"},92  {key: "86", value: "Grenada"},93  {key: "87", value: "Guadeloupe"},94  {key: "88", value: "Guam"},95  {key: "89", value: "Guatemala"},96  {key: "241", value: "Guernsey"},97  {key: "90", value: "Guinea"},98  {key: "91", value: "Guinea-Bissau"},99  {key: "92", value: "Guyana"},100  {key: "93", value: "Haiti"},101  {key: "94", value: "Heard and Mc Donald Islands"},102  {key: "95", value: "Honduras"},103  {key: "96", value: "Hong Kong"},104  {key: "97", value: "Hungary"},105  {key: "98", value: "Iceland"},106  {key: "99", value: "India"},107  {key: "100", value: "Indonesia"},108  {key: "101", value: "Iran (Islamic Republic of)"},109  {key: "102", value: "Iraq"},110  {key: "103", value: "Ireland"},111  {key: "104", value: "Israel"},112  {key: "105", value: "Italy"},113  {key: "106", value: "Jamaica"},114  {key: "107", value: "Japan"},115  {key: "240", value: "Jersey"},116  {key: "108", value: "Jordan"},117  {key: "109", value: "Kazakhstan"},118  {key: "110", value: "Kenya"},119  {key: "111", value: "Kiribati"},120  {key: "113", value: "Korea, Republic of"},121  {key: "114", value: "Kuwait"},122  {key: "115", value: "Kyrgyzstan"},123  {key: "116", value: "Lao People's Democratic Republic"},124  {key: "117", value: "Latvia"},125  {key: "118", value: "Lebanon"},126  {key: "119", value: "Lesotho"},127  {key: "120", value: "Liberia"},128  {key: "121", value: "Libyan Arab Jamahiriya"},129  {key: "122", value: "Liechtenstein"},130  {key: "123", value: "Lithuania"},131  {key: "124", value: "Luxembourg"},132  {key: "125", value: "Macau"},133  {key: "127", value: "Madagascar"},134  {key: "128", value: "Malawi"},135  {key: "129", value: "Malaysia"},136  {key: "130", value: "Maldives"},137  {key: "131", value: "Mali"},138  {key: "132", value: "Malta"},139  {key: "133", value: "Marshall Islands"},140  {key: "134", value: "Martinique"},141  {key: "135", value: "Mauritania"},142  {key: "136", value: "Mauritius"},143  {key: "137", value: "Mayotte"},144  {key: "138", value: "Mexico"},145  {key: "139", value: "Micronesia, Federated States of"},146  {key: "140", value: "Moldova, Republic of"},147  {key: "141", value: "Monaco"},148  {key: "142", value: "Mongolia"},149  {key: "242", value: "Montenegro"},150  {key: "143", value: "Montserrat"},151  {key: "144", value: "Morocco"},152  {key: "145", value: "Mozambique"},153  {key: "146", value: "Myanmar"},154  {key: "147", value: "Namibia"},155  {key: "148", value: "Nauru"},156  {key: "149", value: "Nepal"},157  {key: "150", value: "Netherlands"},158  {key: "151", value: "Netherlands Antilles"},159  {key: "152", value: "New Caledonia"},160  {key: "153", value: "New Zealand"},161  {key: "154", value: "Nicaragua"},162  {key: "155", value: "Niger"},163  {key: "156", value: "Nigeria"},164  {key: "157", value: "Niue"},165  {key: "158", value: "Norfolk Island"},166  {key: "112", value: "North Korea"},167  {key: "159", value: "Northern Mariana Islands"},168  {key: "160", value: "Norway"},169  {key: "161", value: "Oman"},170  {key: "162", value: "Pakistan"},171  {key: "163", value: "Palau"},172  {key: "247", value: "Palestinian Territory, Occupied"},173  {key: "164", value: "Panama"},174  {key: "165", value: "Papua New Guinea"},175  {key: "166", value: "Paraguay"},176  {key: "167", value: "Peru"},177  {key: "168", value: "Philippines"},178  {key: "169", value: "Pitcairn"},179  {key: "170", value: "Poland"},180  {key: "171", value: "Portugal"},181  {key: "172", value: "Puerto Rico"},182  {key: "173", value: "Qatar"},183  {key: "174", value: "Reunion"},184  {key: "175", value: "Romania"},185  {key: "176", value: "Russian Federation"},186  {key: "177", value: "Rwanda"},187  {key: "178", value: "Saint Kitts and Nevis"},188  {key: "179", value: "Saint Lucia"},189  {key: "180", value: "Saint Vincent and the Grenadines"},190  {key: "181", value: "Samoa"},191  {key: "182", value: "San Marino"},192  {key: "183", value: "Sao Tome and Principe"},193  {key: "184", value: "Saudi Arabia"},194  {key: "185", value: "Senegal"},195  {key: "243", value: "Serbia"},196  {key: "186", value: "Seychelles"},197  {key: "187", value: "Sierra Leone"},198  {key: "188", value: "Singapore"},199  {key: "189", value: "Slovak Republic"},200  {key: "190", value: "Slovenia"},201  {key: "191", value: "Solomon Islands"},202  {key: "192", value: "Somalia"},203  {key: "193", value: "South Africa"},204  {key: "194", value: "South Georgia & South Sandwich Islands"},205  {key: "248", value: "South Sudan"},206  {key: "195", value: "Spain"},207  {key: "196", value: "Sri Lanka"},208  {key: "249", value: "St. Barthelemy"},209  {key: "197", value: "St. Helena"},210  {key: "250", value: "St. Martin (French part)"},211  {key: "198", value: "St. Pierre and Miquelon"},212  {key: "199", value: "Sudan"},213  {key: "200", value: "Suriname"},214  {key: "201", value: "Svalbard and Jan Mayen Islands"},215  {key: "202", value: "Swaziland"},216  {key: "203", value: "Sweden"},217  {key: "204", value: "Switzerland"},218  {key: "205", value: "Syrian Arab Republic"},219  {key: "206", value: "Taiwan"},220  {key: "207", value: "Tajikistan"},221  {key: "208", value: "Tanzania, United Republic of"},222  {key: "209", value: "Thailand"},223  {key: "210", value: "Togo"},224  {key: "211", value: "Tokelau"},225  {key: "212", value: "Tonga"},226  {key: "213", value: "Trinidad and Tobago"},227  {key: "214", value: "Tunisia"},228  {key: "215", value: "Turkey"},229  {key: "216", value: "Turkmenistan"},230  {key: "217", value: "Turks and Caicos Islands"},231  {key: "218", value: "Tuvalu"},232  {key: "219", value: "Uganda"},233  {key: "220", value: "Ukraine"},234  {key: "221", value: "United Arab Emirates"},235  {key: "222", value: "United Kingdom"},236  {key: "223", value: "United States"},237  {key: "224", value: "United States Minor Outlying Islands"},238  {key: "225", value: "Uruguay"},239  {key: "226", value: "Uzbekistan"},240  {key: "227", value: "Vanuatu"},241  {key: "228", value: "Vatican City State (Holy See)"},242  {key: "229", value: "Venezuela"},243  {key: "230", value: "Viet Nam"},244  {key: "231", value: "Virgin Islands (British)"},245  {key: "232", value: "Virgin Islands (U.S.)"},246  {key: "233", value: "Wallis and Futuna Islands"},247  {key: "234", value: "Western Sahara"},248  {key: "235", value: "Yemen"},249  {key: "238", value: "Zambia"},250  {key: "239", value: "Zimbabwe"}...cache.py
Source:cache.py  
...33        self._cached = {}34        self._cache = cache35        self._id = id_.replace(" ", "%20")36        self._root = root37    def cache_key(self, key):38        """Return the cache key name for the given key."""39        key = key.replace(" ", "_")40        if self._root:41            return key42        else:43            return self._id + " " + key44    def cache_read(self):45        """Read information from the cache."""46        if self._root:47            keys_key = " keys"48        else:49            keys_key = self._id50        if self._cache.has_key(keys_key):51            keys = self._cache[keys_key].split(" ")52        else:53            return54        for key in keys:55            cache_key = self.cache_key(key)56            if not self._cached.has_key(key) or self._cached[key]:57                # Key either hasn't been loaded, or is one for the cache58                self._value[key] = self._cache[cache_key]59                self._type[key] = self._cache[cache_key + " type"]60                self._cached[key] = 161    def cache_write(self, sync=1):62        """Write information to the cache."""63        self.cache_clear(sync=0)64        keys = []65        for key in self.keys():66            cache_key = self.cache_key(key)67            if not self._cached[key]:68                if self._cache.has_key(cache_key):69                    # Non-cached keys need to be cleared70                    del(self._cache[cache_key])71                    del(self._cache[cache_key + " type"])72                continue73            keys.append(key)74            self._cache[cache_key] = self._value[key]75            self._cache[cache_key + " type"] = self._type[key]76        if self._root:77            keys_key = " keys"78        else:79            keys_key = self._id80        self._cache[keys_key] = " ".join(keys)81        if sync:82            self._cache.sync()83    def cache_clear(self, sync=1):84        """Remove information from the cache."""85        if self._root:86            keys_key = " keys"87        else:88            keys_key = self._id89        if self._cache.has_key(keys_key):90            keys = self._cache[keys_key].split(" ")91            del(self._cache[keys_key])92        else:93            return94        for key in keys:95            cache_key = self.cache_key(key)96            del(self._cache[cache_key])97            del(self._cache[cache_key + " type"])98        if sync:99            self._cache.sync()100    def has_key(self, key):101        """Check whether the key exists."""102        key = key.replace(" ", "_")103        return self._value.has_key(key)104    def key_type(self, key):105        """Return the key type."""106        key = key.replace(" ", "_")107        return self._type[key]108    def set(self, key, value, cached=1):109        """Set the value of the given key.110        If a set_KEY function exists that is called otherwise the111        string function is called and the date function if that fails112        (it nearly always will).113        """114        key = key.replace(" ", "_")115        try:116            func = getattr(self, "set_" + key)117        except AttributeError:118            pass119        else:120            return func(key, value)121        if value == None:122            return self.set_as_null(key, value)123        else:124            try:125                return self.set_as_string(key, value)126            except TypeError:127                return self.set_as_date(key, value)128    def get(self, key):129        """Return the value of the given key.130        If a get_KEY function exists that is called otherwise the131        correctly typed function is called if that exists.132        """133        key = key.replace(" ", "_")134        try:135            func = getattr(self, "get_" + key)136        except AttributeError:137            pass138        else:139            return func(key)140        try:141            func = getattr(self, "get_as_" + self._type[key])142        except AttributeError:143            pass144        else:145            return func(key)146        return self._value[key]147    def set_as_string(self, key, value, cached=1):148        """Set the key to the string value.149        The value is converted to UTF-8 if it is a Unicode string, otherwise150        it's assumed to have failed decoding (feedparser tries pretty hard)151        so has all non-ASCII characters stripped.152        """153        value = utf8(value)154        key = key.replace(" ", "_")155        self._value[key] = value156        self._type[key] = self.STRING157        self._cached[key] = cached158    def get_as_string(self, key):159        """Return the key as a string value."""160        key = key.replace(" ", "_")161        if not self.has_key(key):162            raise KeyError, key163        return self._value[key]164    def set_as_date(self, key, value, cached=1):165        """Set the key to the date value.166        The date should be a 9-item tuple as returned by time.gmtime().167        """168        value = " ".join([ str(s) for s in value ])169        key = key.replace(" ", "_")170        self._value[key] = value171        self._type[key] = self.DATE172        self._cached[key] = cached173    def get_as_date(self, key):174        """Return the key as a date value."""175        key = key.replace(" ", "_")176        if not self.has_key(key):177            raise KeyError, key178        value = self._value[key]179        return tuple([ int(i) for i in value.split(" ") ])180    def set_as_null(self, key, value, cached=1):181        """Set the key to the null value.182        This only exists to make things less magic.183        """184        key = key.replace(" ", "_")185        self._value[key] = ""186        self._type[key] = self.NULL187        self._cached[key] = cached188    def get_as_null(self, key):189        """Return the key as the null value."""190        key = key.replace(" ", "_")191        if not self.has_key(key):192            raise KeyError, key193        return None194    def del_key(self, key):195        """Delete the given key."""196        key = key.replace(" ", "_")197        if not self.has_key(key):198            raise KeyError, key199        del(self._value[key])200        del(self._type[key])201        del(self._cached[key])202    def keys(self):203        """Return the list of cached keys."""204        return self._value.keys()205    def __iter__(self):206        """Iterate the cached keys."""207        return iter(self._value.keys())208    # Special methods209    __contains__ = has_key210    __setitem__  = set_as_string211    __getitem__  = get212    __delitem__  = del_key213    __delattr__  = del_key214    def __setattr__(self, key, value):215        if key.startswith("_"):216            self.__dict__[key] = value217        else:218            self.set(key, value)219    def __getattr__(self, key):220        if self.has_key(key):221            return self.get(key)222        else:223            raise AttributeError, key224def filename(directory, filename):225    """Return a filename suitable for the cache.226    Strips dangerous and common characters to create a filename we227    can use to store the cache in.228    """229    filename = re_url_scheme.sub("", filename)230    filename = re_slash.sub(",", filename)231    filename = re_initial_cruft.sub("", filename)232    filename = re_final_cruft.sub("", filename)233    return os.path.join(directory, filename)234def utf8(value):...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
