summaryrefslogtreecommitdiffstats
path: root/chrome/browser/template_url_prepopulate_data.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chrome/browser/template_url_prepopulate_data.cc')
-rw-r--r--chrome/browser/template_url_prepopulate_data.cc2993
1 files changed, 2993 insertions, 0 deletions
diff --git a/chrome/browser/template_url_prepopulate_data.cc b/chrome/browser/template_url_prepopulate_data.cc
new file mode 100644
index 0000000..d742daa
--- /dev/null
+++ b/chrome/browser/template_url_prepopulate_data.cc
@@ -0,0 +1,2993 @@
+// Copyright 2008, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "chrome/browser/template_url_prepopulate_data.h"
+
+#include "base/command_line.h"
+#include "chrome/browser/template_url.h"
+#include "chrome/browser/template_url_model.h"
+#include "chrome/common/chrome_switches.h"
+#include "chrome/common/pref_names.h"
+#include "chrome/common/pref_service.h"
+
+namespace {
+
+// NOTE: See comments in GetDataVersion() below! You should probably not change
+// the data in this file without changing the result of that function!
+
+// Engine definitions //////////////////////////////////////////////////////////
+
+struct PrepopulatedEngine {
+ const wchar_t* const name;
+ const wchar_t* const keyword; // If NULL, we'll autogenerate a keyword
+ // based on the search_url.
+ // If the empty string, the engine has no
+ // keyword.
+ const wchar_t* const favicon_url; // If NULL, there is no favicon.
+ const wchar_t* const search_url;
+ const char* const encoding;
+ const wchar_t* const suggest_url; // If NULL, this engine does not support
+ // suggestions.
+ // Unique id for this prepopulate engine (corresponds to
+ // TemplateURL::prepopulate_id). This ID must be greater than zero and must
+ // remain the same for a particular site regardless of how the url changes;
+ // the ID is used when modifying engine data in subsequent versions, so that
+ // we can find the "old" entry to update even when the name or URL changes.
+ //
+ // This ID must be "unique" within one country's prepopulated data, but two
+ // entries can share an ID if they represent the "same" engine (e.g. Yahoo! US
+ // vs. Yahoo! UK) and will not appear in the same user-visible data set. This
+ // facilitates changes like adding more specific per-country data in the
+ // future; in such a case the localized engines will transparently replace the
+ // previous, non-localized versions. For engines where we need two instances
+ // to appear for one country (e.g. Live Search U.S. English and Spanish), we
+ // must use two different unique IDs (and different keywords).
+ const int id;
+};
+
+const PrepopulatedEngine abcsok = {
+ L"ABC S\x00f8k",
+ NULL,
+ L"http://abcsok.no/favicon.ico",
+ L"http://abcsok.no/index.html?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 72,
+};
+
+const PrepopulatedEngine adonde = {
+ L"Adonde.com",
+ NULL,
+ L"http://www.adonde.com/favicon.ico",
+ L"http://www.adonde.com/peru/peru.html?sitesearch=adonde.com&"
+ L"client=pub-6263803831447773&ie={inputEncoding}&cof=GALT%3A%23CC0000"
+ L"%3BGL%3A1%3BDIV%3A%23E6E6E6%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AFFFFFF"
+ L"%3BLBGC%3AFFFFFF%3BALC%3A000000%3BLC%3A000000%3BT%3A0066CC%3BGFNT"
+ L"%3ACCCCCC%3BGIMP%3ACCCCCC%3BFORID%3A11&q={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 95,
+};
+
+const PrepopulatedEngine aeiou = {
+ L"AEIOU",
+ NULL,
+ L"http://aeiou.pt/favicon.ico",
+ L"http://aeiou.pt/pesquisa/index.php?p={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 79,
+};
+
+const PrepopulatedEngine aladin = {
+ L"Aladin",
+ NULL,
+ L"http://www.aladin.info/favicon.ico",
+ L"http://www.aladin.info/search/index.php?term={searchTerms}&req=search&"
+ L"source=2",
+ "UTF-8",
+ NULL,
+ 18,
+};
+
+const PrepopulatedEngine alltheweb = {
+ L"AlltheWeb",
+ NULL,
+ L"http://alltheweb.com/favicon.ico",
+ L"http://alltheweb.com/search?cs={inputEncoding}&q={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 93,
+};
+
+const PrepopulatedEngine altavista = {
+ L"AltaVista",
+ NULL,
+ L"http://www.altavista.com/favicon.ico",
+ L"http://www.altavista.com/web/results?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 89,
+};
+
+const PrepopulatedEngine altavista_ar = {
+ L"AltaVista",
+ NULL,
+ L"http://ar.altavista.com/favicon.ico",
+ L"http://ar.altavista.com/web/results?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 89,
+};
+
+const PrepopulatedEngine altavista_es = {
+ L"AltaVista",
+ NULL,
+ L"http://es.altavista.com/favicon.ico",
+ L"http://es.altavista.com/web/results?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 89,
+};
+
+const PrepopulatedEngine altavista_mx = {
+ L"AltaVista",
+ NULL,
+ L"http://mx.altavista.com/favicon.ico",
+ L"http://mx.altavista.com/web/results?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 89,
+};
+
+const PrepopulatedEngine altavista_se = {
+ L"AltaVista",
+ NULL,
+ L"http://se.altavista.com/favicon.ico",
+ L"http://se.altavista.com/web/results?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 89,
+};
+
+const PrepopulatedEngine aol = {
+ L"AOL",
+ L"aol.com",
+ L"http://search.aol.com/favicon.ico",
+ L"http://search.aol.com/aol/search?query={searchTerms}",
+ "UTF-8",
+ NULL,
+ 35,
+};
+
+const PrepopulatedEngine aol_fr = {
+ L"AOL",
+ L"aol.fr",
+ L"http://www.aol.fr/favicon.ico",
+ L"http://www.recherche.aol.fr/aol/search?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 35,
+};
+
+const PrepopulatedEngine aonde = {
+ L"AONDE.com",
+ L"aonde.com",
+ L"http://busca.aonde.com/favicon.ico",
+ L"http://busca.aonde.com/?keys={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 80,
+};
+
+const PrepopulatedEngine araby = {
+ L"\x0639\x0631\x0628\x064a",
+ NULL,
+ L"http://araby.com/favicon.ico",
+ L"http://araby.com/?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 12,
+};
+
+const PrepopulatedEngine ask = {
+ L"Ask",
+ NULL,
+ L"http://www.ask.com/favicon.ico",
+ L"http://www.ask.com/web?q={searchTerms}",
+ "UTF-8",
+ L"http://ss.ask.com/query?q={searchTerms}&li=ff",
+ 4,
+};
+
+const PrepopulatedEngine ask_de = {
+ L"Ask.com Deutschland",
+ NULL,
+ L"http://de.ask.com/favicon.ico",
+ L"http://de.ask.com/web?q={searchTerms}",
+ "UTF-8",
+ L"http://ss.de.ask.com/query?q={searchTerms}&li=ff",
+ 4,
+};
+
+const PrepopulatedEngine ask_es = {
+ L"Ask.com Espa" L"\x00f1" L"a",
+ NULL,
+ L"http://es.ask.com/favicon.ico",
+ L"http://es.ask.com/web?q={searchTerms}",
+ "UTF-8",
+ L"http://ss.es.ask.com/query?q={searchTerms}&li=ff",
+ 4,
+};
+
+const PrepopulatedEngine ask_it = {
+ L"Ask.com Italia",
+ NULL,
+ L"http://it.ask.com/favicon.ico",
+ L"http://it.ask.com/web?q={searchTerms}",
+ "UTF-8",
+ L"http://ss.it.ask.com/query?q={searchTerms}&li=ff",
+ 4,
+};
+
+const PrepopulatedEngine ask_uk = {
+ L"Ask.com UK",
+ NULL,
+ L"http://uk.ask.com/favicon.ico",
+ L"http://uk.ask.com/web?q={searchTerms}",
+ "UTF-8",
+ L"http://ss.uk.ask.com/query?q={searchTerms}&li=ff",
+ 4,
+};
+
+const PrepopulatedEngine atlas_cz = {
+ L"Atlas",
+ L"atlas.cz",
+ L"http://img.atlas.cz/favicon.ico",
+ L"http://search.atlas.cz/?q={searchTerms}",
+ "windows-1250",
+ NULL,
+ 27,
+};
+
+const PrepopulatedEngine atlas_sk = {
+ L"ATLAS.SK",
+ L"atlas.sk",
+ L"http://www.atlas.sk/images/favicon.ico",
+ L"http://hladaj.atlas.sk/fulltext/?phrase={searchTerms}",
+ "UTF-8",
+ NULL,
+ 27,
+};
+
+const PrepopulatedEngine baidu = {
+ L"\x767e\x5ea6",
+ NULL,
+ L"http://www.baidu.com/favicon.ico",
+ L"http://www.baidu.com/s?wd={searchTerms}",
+ "GB2312",
+ NULL,
+ 21,
+};
+
+const PrepopulatedEngine biglobe = {
+ L"BIGLOBE",
+ L"biglobe.ne.jp",
+ L"http://cgi.search.biglobe.ne.jp/favicon.ico",
+ L"http://cgi.search.biglobe.ne.jp/cgi-bin/search2-b?q={searchTerms}",
+ "Shift_JIS",
+ NULL,
+ 64,
+};
+
+const PrepopulatedEngine bigmir = {
+ L"bigmir)net",
+ L"bigmir.net",
+ L"http://i.bigmir.net/favicon.ico",
+ L"http://search.bigmir.net/index.php?q={searchTerms}",
+ "windows-1251",
+ NULL,
+ 33,
+};
+
+const PrepopulatedEngine bluewin = {
+ L"Bluewin",
+ NULL,
+ L"http://search.bluewin.ch/favicon.ico",
+ L"http://search.bluewin.ch/bw/search/web/de/result.jsp?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 52,
+};
+
+const PrepopulatedEngine centrum_cz = {
+ L"Centrum.cz",
+ L"centrum.cz",
+ L"http://img.centrum.cz/6/vy2/o/favicon.ico",
+ L"http://search.centrum.cz/index.php?charset={inputEncoding}&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 26,
+};
+
+const PrepopulatedEngine centrum_sk = {
+ L"Centrum.sk",
+ L"centrum.sk",
+ L"http://img.centrum.sk/4/favicon.ico",
+ L"http://search.centrum.sk/index.php?charset={inputEncoding}&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 26,
+};
+
+const PrepopulatedEngine conexcol = {
+ L"Conexcol.com",
+ L"conexcol.com",
+ L"http://www.conexcol.com/favicon.ico",
+ L"http://buscar.conexcol.com/cgi-ps/busqueda.cgi?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 91,
+};
+
+const PrepopulatedEngine daum = {
+ L"Daum",
+ L"daum.net",
+ L"http://search.daum.net/favicon.ico",
+ L"http://search.daum.net/search?q={searchTerms}",
+ "EUC-KR",
+ L"http://sug.search.daum.net/search_nsuggest?mod=fxjson&q={searchTerms}",
+ 68,
+};
+
+const PrepopulatedEngine delfi_ee = {
+ L"DELFI",
+ L"delfi.ee",
+ L"http://g.delfi.ee/s/search.png",
+ L"http://otsing.delfi.ee/i.php?q={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 45,
+};
+
+const PrepopulatedEngine delfi_lt = {
+ L"DELFI",
+ L"delfi.lv",
+ L"http://search.delfi.lt/img/favicon.png",
+ L"http://search.delfi.lt/search.php?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 45,
+};
+
+const PrepopulatedEngine delfi_lv = {
+ L"DELFI",
+ L"delfi.lv",
+ L"http://smart.delfi.lv/img/smart_search.png",
+ L"http://smart.delfi.lv/i.php?enc={inputEncoding}&q={searchTerms}",
+ "windows-1257",
+ NULL,
+ 45,
+};
+
+const PrepopulatedEngine dogpile = {
+ L"Dogpile",
+ NULL,
+ L"http://ttl60m.wsoo.infospace.com.edgesuite.net/dogpile/ws/pics/favicon.ico",
+ L"http://www.dogpile.com/dogpile/ws/results/Web/{searchTerms}/1/417/"
+ L"TopNavigation/Relevance/_iceUrlFlag=7?_IceUrl=true",
+ "UTF-8",
+ NULL,
+ 92,
+};
+
+const PrepopulatedEngine embla = {
+ L"Embla",
+ NULL,
+ L"http://embla.is/favicon.ico",
+ L"http://embla.is/mm/embla/?s={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 60,
+};
+
+const PrepopulatedEngine empas = {
+ L"\xc5e0\xd30c\xc2a4",
+ L"empas.com",
+ L"http://search.empas.com/favicon.ico",
+ L"http://search.empas.com/search/all.html?q={searchTerms}",
+ "EUC-KR",
+ NULL,
+ 70,
+};
+
+const PrepopulatedEngine eniro_dk = {
+ L"Eniro",
+ NULL,
+ L"http://eniro.dk/favicon.ico",
+ L"http://eniro.dk/query?search_word={searchTerms}&what=web_local",
+ "ISO-8859-1",
+ NULL,
+ 29,
+};
+
+const PrepopulatedEngine eniro_fi = {
+ L"Eniro",
+ NULL,
+ L"http://eniro.fi/favicon.ico",
+ L"http://eniro.fi/query?search_word={searchTerms}&what=web_local",
+ "ISO-8859-1",
+ NULL,
+ 29,
+};
+
+const PrepopulatedEngine eniro_se = {
+ L"Eniro",
+ NULL,
+ L"http://eniro.se/favicon.ico",
+ L"http://eniro.se/query?search_word={searchTerms}&what=web_local",
+ "ISO-8859-1",
+ NULL,
+ 29,
+};
+
+const PrepopulatedEngine finna = {
+ L"FINNA",
+ NULL,
+ L"http://finna.is/favicon.ico",
+ L"http://finna.is/WWW_Search/?query={searchTerms}",
+ "UTF-8",
+ NULL,
+ 61,
+};
+
+const PrepopulatedEngine fonecta_02_fi = {
+ L"Fonecta 02.fi",
+ L"www.fi",
+ L"http://www.02.fi/img/favicon.ico",
+ L"http://www.02.fi/haku/{searchTerms}",
+ "UTF-8",
+ NULL,
+ 46,
+};
+
+const PrepopulatedEngine forthnet = {
+ L"Forthnet",
+ L"forthnet.gr",
+ L"http://search.forthnet.gr/favicon.ico",
+ L"http://search.forthnet.gr/cgi-bin/query?mss=search&q={searchTerms}",
+ "windows-1253",
+ NULL,
+ 53,
+};
+
+const PrepopulatedEngine gigabusca = {
+ L"GiGaBusca",
+ L"gigabusca.com.br",
+ L"http://www.gigabusca.com.br/favicon.ico",
+ L"http://www.gigabusca.com.br/buscar.php?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 81,
+};
+
+const PrepopulatedEngine go = {
+ L"GO.com",
+ L"go.com",
+ L"http://search.yahoo.com/favicon.ico",
+ L"http://search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}&"
+ L"fr=hsusgo1",
+ "ISO-8859-1",
+ NULL,
+ 40,
+};
+
+const PrepopulatedEngine google = {
+ L"Google",
+ NULL,
+ L"http://www.google.com/favicon.ico",
+ // TODO(pkasting): http://b/1176073 We should change to this URL.
+// L"{google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}"
+// L"{google:originalQueryForSuggestion}sourceid=chrome&ie={inputEncoding}&"
+// L"q={searchTerms}",
+ L"{google:baseURL}search?{google:RLZ}{google:acceptedSuggestion}"
+ L"{google:originalQueryForSuggestion}ie={inputEncoding}&q={searchTerms}",
+ "UTF-8",
+ L"{google:baseSuggestURL}search?client=chrome&output=chrome&hl={language}&"
+ L"q={searchTerms}",
+ 1,
+};
+
+const PrepopulatedEngine guruji = {
+ L"guruji",
+ NULL,
+ L"http://guruji.com/favicon.ico",
+ L"http://guruji.com/search?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 38,
+};
+
+const PrepopulatedEngine iafrica = {
+ L"iafrica.com",
+ L"iafrica.com",
+ NULL,
+ L"http://search.iafrica.com/search?q={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 43,
+};
+
+const PrepopulatedEngine ilse = {
+ L"Ilse",
+ L"ilse.nl",
+ L"http://search.ilse.nl/images/favicon.ico",
+ L"http://search.ilse.nl/web?search_for={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 30,
+};
+
+const PrepopulatedEngine in = {
+ L"in.gr",
+ L"in.gr",
+ L"http://www.in.gr/favicon.ico",
+ L"http://find.in.gr/result.asp?q={searchTerms}",
+ "ISO-8859-7",
+ NULL,
+ 54,
+};
+
+const PrepopulatedEngine infoseek = {
+ L"Infoseek",
+ L"infoseek.co.jp",
+ L"http://search.www.infoseek.co.jp/favicon.ico",
+ L"http://search.www.infoseek.co.jp/Web?qt={searchTerms}&enc={inputEncoding}",
+ "EUC-JP",
+ NULL,
+ 66,
+};
+
+const PrepopulatedEngine jabse = {
+ L"Jabse",
+ NULL,
+ L"http://www.jabse.com/favicon.ico",
+ L"http://www.jabse.com/searchmachine.php?query={searchTerms}",
+ "UTF-8",
+ NULL,
+ 19,
+};
+
+const PrepopulatedEngine jamaicalive = {
+ L"JamaicaLive",
+ NULL,
+ L"http://jalive.com.jm/favicon.ico",
+ L"http://jalive.com.jm/search/?mode=allwords&search={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 39,
+};
+
+const PrepopulatedEngine jubii = {
+ L"Jubii",
+ L"jubii.dk",
+ L"http://search.jubii.dk/favicon_jubii.ico",
+ L"http://search.jubii.dk/cgi-bin/pursuit?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 28,
+};
+
+const PrepopulatedEngine krstarica = {
+ L"Krstarica",
+ L"krstarica.rs",
+ L"http://pretraga.krstarica.com/favicon.ico",
+ L"http://pretraga.krstarica.com/index.php?q={searchTerms}",
+ "windows-1250",
+ NULL,
+ 84,
+};
+
+const PrepopulatedEngine kvasir = {
+ L"Kvasir",
+ NULL,
+ L"http://www.kvasir.no/img/favicon.ico",
+ L"http://www.kvasir.no/nettsok/searchResult.html?searchExpr={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 73,
+};
+
+const PrepopulatedEngine latne = {
+ L"LATNE",
+ NULL,
+ L"http://latne.lv/favicon.ico",
+ L"http://latne.lv/siets.php?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 71,
+};
+
+const PrepopulatedEngine leit = {
+ L"leit.is",
+ NULL,
+ L"http://leit.is/leit.ico",
+ L"http://leit.is/query.aspx?qt={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 59,
+};
+
+const PrepopulatedEngine libero = {
+ L"Libero",
+ L"libero.it",
+ L"http://arianna.libero.it/favicon.ico",
+ L"http://arianna.libero.it/search/abin/integrata.cgi?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 63,
+};
+
+const PrepopulatedEngine live = {
+ L"Live Search (\x0627\x0644\x0639\x0631\x0628\x064a\x0629)",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_ar_XA = {
+ L"Live Search (\x0627\x0644\x0639\x0631\x0628\x064a\x0629)",
+ L"", // "live.com" is already taken by live_en_XA (see comment on ID below).
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=ar-XA&mkt=ar-XA&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 7, // Can't be 3 as this has to appear in the Arabian countries' lists
+ // alongside live_en_XA.
+};
+
+const PrepopulatedEngine live_bg_BG = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=bg-BG&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_cs_CZ = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=cs-CZ&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_el_GR = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=el-GR&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_en_ID = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=en_ID&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_en_NZ = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=en-NZ&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_en_US = {
+ L"Live Search (English)",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=en-US&mkt=en-US&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_en_XA = {
+ L"Live Search (English)",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=en-XA&mkt=en-XA&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_es_US = {
+ L"Live Search (Espa" L"\x00f1" L"ol)",
+ L"", // "live.com" is already taken by live_en_US (see comment on ID below).
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=es-US&mkt=es-US&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 6, // Can't be 3 as this has to appear in the U.S. list alongside live_en_US.
+};
+
+const PrepopulatedEngine live_et_EE = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=et-EE&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_hr_HR = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=hr-HR&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_hu_HU = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=hu-HU&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_it_IT = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=it-IT&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_lt_LT = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=lt-LT&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_pl_PL = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=pl-PL&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_pt_PT = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=pt-PT&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_ro_RO = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=ro-RO&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_ru_RU = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=ru-RU&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_sk_SK = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=sk-SK&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_sl_SI = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=sl-SI&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine live_th_TH = {
+ L"Live Search",
+ L"live.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=th-TH&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine lycos_es = {
+ L"Lycos Espa" L"\x00f1" L"a",
+ L"lycos.es",
+ L"http://buscador.lycos.es/favicon.ico",
+ L"http://buscador.lycos.es/cgi-bin/pursuit?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 34,
+};
+
+const PrepopulatedEngine lycos_nl = {
+ L"Lycos",
+ L"lycos.nl",
+ L"http://zoek.lycos.nl/favicon.ico",
+ L"http://zoek.lycos.nl/cgi-bin/pursuit?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 34,
+};
+
+const PrepopulatedEngine mail_ru = {
+ L"@MAIL.RU",
+ L"mail.ru",
+ L"http://img.go.mail.ru/favicon.ico",
+ L"http://go.mail.ru/search?q={searchTerms}",
+ "windows-1251",
+ NULL,
+ 83,
+};
+
+const PrepopulatedEngine maktoob = {
+ L"\x0645\x0643\x062a\x0648\x0628",
+ NULL,
+ L"http://www.maktoob.com/favicon.ico",
+ L"http://www.maktoob.com/searchResult.php?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 13,
+};
+
+const PrepopulatedEngine masrawy = {
+ L"\x0645\x0635\x0631\x0627\x0648\x064a",
+ NULL,
+ L"http://www.masrawy.com/new/images/masrawy.ico",
+ L"http://masrawy.com/new/search.aspx?sr={searchTerms}",
+ "windows-1256",
+ NULL,
+ 14,
+};
+
+const PrepopulatedEngine matkurja = {
+ L"Mat'Kurja",
+ NULL,
+ L"http://matkurja.com/favicon.ico",
+ L"http://matkurja.com/si/iskalnik/?q={searchTerms}&search_source=directory",
+ "ISO-8859-2",
+ NULL,
+ 88,
+};
+
+const PrepopulatedEngine meta = {
+ L"<META>",
+ NULL,
+ L"http://meta.ua/favicon.ico",
+ L"http://meta.ua/search.asp?q={searchTerms}",
+ "windows-1251",
+ L"http://meta.ua/suggestions/?output=fxjson&q={searchTerms}",
+ 102,
+};
+
+const PrepopulatedEngine msn = {
+ L"MSN",
+ L"msn.com",
+ L"http://search.msn.com/s/wlflag.ico",
+ L"http://search.msn.com/results.aspx?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_ar_XA = {
+ L"MSN (\x0627\x0644\x0639\x0631\x0628\x064a\x0629)",
+ L"", // "arabia.msn.com" is already taken by msn_en_XA (see comment on ID
+ // below).
+ L"http://search.msn.com/s/wlflag.ico",
+ L"http://search.msn.com/results.aspx?setlang=ar-XA&mkt=ar-XA&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 7, // Can't be 3 as this has to appear in the Arabian countries' lists
+ // alongside msn_en_XA.
+};
+
+const PrepopulatedEngine msn_da_DK = {
+ L"MSN.nl",
+ L"nl.msn.com",
+ L"http://search.msn.nl/s/wlflag.ico",
+ L"http://search.msn.nl/results.aspx?mkt=nl-NL&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_de_AT = {
+ L"MSN " L"\x00f1" L"sterreich",
+ L"at.msn.com",
+ L"http://search.msn.at/s/wlflag.ico",
+ L"http://search.msn.at/results.aspx?mkt=de-AT&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_de_CH = {
+ L"MSN Schweiz (Deutsch)",
+ L"ch.msn.com",
+ L"http://search.msn.ch/s/wlflag.ico",
+ L"http://search.msn.ch/results.aspx?setlang=de-CH&mkt=de-CH&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_de_DE = {
+ L"MSN",
+ L"de.msn.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=de-DE&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_AU = {
+ L"ninemsn.com.au",
+ L"ninemsn.com.au",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=en-AU&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_CA = {
+ L"Sympatico / MSN (English)",
+ L"sympatico.msn.ca",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=en-CA&mkt=en-CA&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_GB = {
+ L"MSN UK",
+ L"uk.msn.com",
+ L"http://search.msn.co.uk/s/wlflag.ico",
+ L"http://search.msn.co.uk/results.aspx?mkt=en-GB&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_IE = {
+ L"MSN IE",
+ L"ie.msn.com",
+ L"http://search.msn.ie/s/wlflag.ico",
+ L"http://search.msn.ie/results.aspx?mkt=en-IE&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_IN = {
+ L"MSN India",
+ L"in.msn.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=en-IN&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_MY = {
+ L"MSN Malaysia",
+ L"malaysia.msn.com",
+ L"http://search.msn.com.my/s/wlflag.ico",
+ L"http://search.msn.com.my/results.aspx?mkt=en-MY&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_PH = {
+ L"MSN Philippines",
+ L"ph.msn.com",
+ L"http://search.msn.com.ph/s/wlflag.ico",
+ L"http://search.msn.com.ph/results.aspx?mkt=en-PH&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_SG = {
+ L"MSN Singapore",
+ L"sg.msn.com",
+ L"http://search.msn.com.sg/s/wlflag.ico",
+ L"http://search.msn.com.sg/results.aspx?mkt=en-SG&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_XA = {
+ L"MSN (English)",
+ L"arabia.msn.com",
+ L"http://search.msn.com/s/wlflag.ico",
+ L"http://search.msn.com/results.aspx?setlang=en-XA&mkt=en-XA&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_en_ZA = {
+ L"MSN ZA",
+ L"za.msn.com",
+ L"http://search.msn.co.za/s/wlflag.ico",
+ L"http://search.msn.co.za/results.aspx?mkt=en-ZA&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_es_CL = {
+ L"MSN Chile",
+ L"cl.msn.com",
+ L"http://search.msn.com/s/wlflag.ico",
+ L"http://search.msn.com/results.aspx?mkt=es-CL&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_es_ES = {
+ L"MSN Espa" L"\x00f1" L"a",
+ L"es.msn.com",
+ L"http://search.msn.es/s/wlflag.ico",
+ L"http://search.msn.es/results.aspx?mkt=es-ES&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_es_MX = {
+ L"Prodigy / MSN",
+ L"prodigy.msn.com",
+ L"http://search.prodigy.msn.com/s/wlflag.ico",
+ L"http://search.prodigy.msn.com/results.aspx?mkt=es-MX&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_es_XL = {
+ L"MSN Latinoam" L"\x00e9" L"rica",
+ L"latam.msn.com",
+ L"http://search.msn.com/s/wlflag.ico",
+ L"http://search.msn.com/results.aspx?mkt=es-XL&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_fi_FI = {
+ L"MSN",
+ L"fi.msn.com",
+ L"http://search.msn.fi/s/wlflag.ico",
+ L"http://search.msn.fi/results.aspx?mkt=fi-FI&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_fr_BE = {
+ L"MSN Belgique (Fran" L"\x00e7" L"ais)",
+ L"", // "be.msn.com" is already taken by msn_nl_BE (see comment on ID below).
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=fr-BE&mkt=fr-BE&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 8, // Can't be 3 as this has to appear in the Belgium list alongside
+ // msn_nl_BE.
+};
+
+const PrepopulatedEngine msn_fr_CA = {
+ L"Sympatico / MSN (Fran" L"\x00e7" L"ais)",
+ L"", // "sympatico.msn.ca" is already taken by msn_en_CA (see comment on ID
+ // below).
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=fr-CA&mkt=fr-CA&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 9, // Can't be 3 as this has to appear in the Canada list alongside
+ // msn_en_CA.
+};
+
+const PrepopulatedEngine msn_fr_CH = {
+ L"MSN Suisse (Fran" L"\x00e7" L"ais)",
+ L"", // "ch.msn.com" is already taken by msn_de_CH (see comment on ID below).
+ L"http://search.msn.ch/s/wlflag.ico",
+ L"http://search.msn.ch/results.aspx?setlang=fr-CH&mkt=fr-CH&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 10, // Can't be 3 as this has to appear in the Switzerland list alongside
+ // msn_de_CH.
+};
+
+const PrepopulatedEngine msn_fr_FR = {
+ L"MSN France",
+ L"fr.msn.com",
+ L"http://search.msn.fr/s/wlflag.ico",
+ L"http://search.msn.fr/results.aspx?mkt=fr-FR&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_he_IL = {
+ L"msn.co.il",
+ L"msn.co.il",
+ L"http://search.msn.co.il/s/wlflag.ico",
+ L"http://search.msn.co.il/results.aspx?mkt=he-IL&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_ja_JP = {
+ L"MSN Japan",
+ L"jp.msn.com",
+ L"http://search.msn.co.jp/s/wlflag.ico",
+ L"http://search.msn.co.jp/results.aspx?mkt=ja-JP&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_nb_NO = {
+ L"MSN Norge",
+ L"no.msn.com",
+ L"http://search.msn.no/s/wlflag.ico",
+ L"http://search.msn.no/results.aspx?mkt=nb-NO&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_nl_BE = {
+ L"MSN (Nederlandstalige)",
+ L"be.msn.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?setlang=nl-BE&mkt=nl-BE&"
+ L"q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_nl_NL = {
+ L"MSN Danmark",
+ L"dk.msn.com",
+ L"http://search.msn.dk/s/wlflag.ico",
+ L"http://search.msn.dk/results.aspx?mkt=da-DK&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_pt_BR = {
+ L"MSN Brasil",
+ L"br.msn.com",
+ L"http://search.live.com/s/wlflag.ico",
+ L"http://search.live.com/results.aspx?mkt=pt-BR&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_sv_SE = {
+ L"MSN",
+ L"se.msn.com",
+ L"http://search.msn.se/s/wlflag.ico",
+ L"http://search.msn.se/results.aspx?mkt=pv-SE&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_tr_TR = {
+ L"MSN T" L"\x00fc" L"kiye'ye",
+ L"tr.msn.com",
+ L"http://search.msn.com.tr/s/wlflag.ico",
+ L"http://search.msn.com.tr/results.aspx?mkt=tr-TR&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine msn_zh_HK = {
+ L"MSN Hong Kong",
+ L"hk.msn.com",
+ L"http://search.msn.com.hk/s/wlflag.ico",
+ L"http://search.msn.com.hk/results.aspx?mkt=zh-HK&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 3,
+};
+
+const PrepopulatedEngine mweb = {
+ L"MWEB",
+ L"mweb.co.za",
+ L"http://mweb.co.za/favicon.ico",
+ L"http://search.mweb.co.za/search?&q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 42,
+};
+
+const PrepopulatedEngine mynet = {
+ L"MYNET",
+ L"mynet.com",
+ L"http://img.mynet.com/mynetfavori.ico",
+ L"http://arama.mynet.com/search.aspx?q={searchTerms}&pg=q",
+ "windows-1254",
+ NULL,
+ 101,
+};
+
+const PrepopulatedEngine mywebsearch = {
+ L"mywebsearch",
+ L"mywebsearch.com",
+ NULL,
+ L"http://search.mywebsearch.com/mywebsearch/AJmain.jhtml?"
+ L"searchfor={searchTerms}",
+ "UTF-8",
+ NULL,
+ 97,
+};
+
+const PrepopulatedEngine najdi = {
+ L"Najdi.si",
+ NULL,
+ L"http://www.najdi.si/master/favicon.ico",
+ L"http://www.najdi.si/search.jsp?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 87,
+};
+
+const PrepopulatedEngine nana10 = {
+ L"\x05e0\x05e2\x05e0\x05e2 10",
+ L"nana10.co.il",
+ L"http://f.nau.co.il/Common/Includes/Favicon.ico",
+ L"http://index.nana10.co.il/search.asp?q={searchTerms}",
+ "windows-1255",
+ NULL,
+ 56,
+};
+
+const PrepopulatedEngine nate = {
+ L"\xb124\xc774\xd2b8\xb2f7\xcef4",
+ L"nate.com",
+ L"http://nate.search.empas.com/favicon.ico",
+ L"http://nate.search.empas.com/search/all.html?q={searchTerms}",
+ "EUC-KR",
+ NULL,
+ 69,
+};
+
+const PrepopulatedEngine naver = {
+ L"\xb124\xc774\xbc84",
+ L"naver.com",
+ L"http://search.naver.com/favicon.ico",
+ L"http://search.naver.com/search.naver?query={searchTerms}",
+ "EUC-KR",
+ L"http://ac.search.naver.com/autocompl?m=s&ie={inputEncoding}&"
+ L"q={searchTerms}",
+ 67,
+};
+
+const PrepopulatedEngine neti = {
+ L"NETI",
+ NULL,
+ L"http://www.neti.ee/favicon.ico",
+ L"http://www.neti.ee/cgi-bin/otsing?query={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 44,
+};
+
+const PrepopulatedEngine netindex = {
+ L"NetINDEX",
+ NULL,
+ L"http://www.netindex.pt/favicon.ico",
+ L"http://www.netindex.pt/cgi-bin/index.cgi?question={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 78,
+};
+
+const PrepopulatedEngine nifty = {
+ L"@nifty",
+ L"nifty.com",
+ L"http://www.nifty.com/favicon.ico",
+ L"http://search.nifty.com/cgi-bin/search.cgi?Text={searchTerms}",
+ "Shift_JIS",
+ NULL,
+ 65,
+};
+
+const PrepopulatedEngine ohperu = {
+ L"Oh Per" L"\x00fa",
+ L"ohperu.com",
+ NULL,
+ L"http://www.google.com.pe/custom?q={searchTerms}&"
+ L"client=pub-1950414869696311&ie={inputEncoding}&cof=GALT%3A%23000000"
+ L"%3BGL%3A1%3BDIV%3A%23FFFFFF%3BVLC%3A000000%3BAH%3Acenter%3BBGC%3AFFFFFF"
+ L"%3BLBGC%3AFFFFFF%3BALC%3A000000%3BLC%3A000000%3BT%3A000000%3BGFNT"
+ L"%3A000000%3BGIMP%3A000000%3BLH%3A50%3BLW%3A142%3BL%3Ahttp%3A%2F%2F"
+ L"www.ohperu.com%2Fohperu-logo-inv2.gif%3BS%3Ahttp%3A%2F%2Fwww.ohperu.com"
+ L"%3BFORID%3A1",
+ "ISO-8859-1",
+ NULL,
+ 96,
+};
+
+const PrepopulatedEngine ok = {
+ L"OK.hu",
+ NULL,
+ L"http://ok.hu/gfx/favicon.ico",
+ L"http://ok.hu/katalogus?q={searchTerms}",
+ "ISO-8859-2",
+ NULL,
+ 58,
+};
+
+const PrepopulatedEngine onet = {
+ L"Onet.pl",
+ L"onet.pl",
+ L"http://szukaj.beta.onet.pl/favicon.ico",
+ L"http://szukaj.beta.onet.pl/query.html?qt={searchTerms}",
+ "ISO-8859-2",
+ NULL,
+ 75,
+};
+
+const PrepopulatedEngine orange = {
+ L"Orange",
+ L"orange.fr",
+ L"http://www.orange.fr/favicon.ico",
+ L"http://rws.search.ke.voila.fr/RW/S/opensearch_orange?rdata={searchTerms}",
+ "ISO-8859-1",
+ L"http://search.ke.voila.fr/fr/cmplopensearch/xml/fullxml?"
+ L"rdata={searchTerms}",
+ 48,
+};
+
+const PrepopulatedEngine ozu = {
+ L"OZ" L"\x00da",
+ L"ozu.es",
+ L"http://www.ozu.es/favicon.ico",
+ L"http://buscar.ozu.es/index.php?q={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 98,
+};
+
+const PrepopulatedEngine pogodak_ba = {
+ L"Pogodak!",
+ NULL,
+ L"http://www.pogodak.ba/favicon.ico",
+ L"http://www.pogodak.ba/search.jsp?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 24,
+};
+
+const PrepopulatedEngine pogodak_hr = {
+ L"Pogodak!",
+ NULL,
+ L"http://www.pogodak.hr/favicon.ico",
+ L"http://www.pogodak.hr/search.jsp?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 24,
+};
+
+const PrepopulatedEngine pogodak_rs = {
+ L"Pogodak!",
+ NULL,
+ L"http://www.pogodak.rs/favicon.ico",
+ L"http://www.pogodak.rs/search.jsp?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 24,
+};
+
+const PrepopulatedEngine pogodok = {
+ L"\x041f\x043e\x0433\x043e\x0434\x043e\x043a!",
+ NULL,
+ L"http://www.pogodok.com.mk/favicon.ico",
+ L"http://www.pogodok.com.mk/search.jsp?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 24, // Really the same engine as Pogodak, just has a small name change.
+};
+
+const PrepopulatedEngine rambler = {
+ L"Rambler",
+ NULL,
+ L"http://www.rambler.ru/favicon.ico",
+ L"http://www.rambler.ru/srch?words={searchTerms}",
+ "windows-1251",
+ NULL,
+ 16,
+};
+
+const PrepopulatedEngine rediff = {
+ L"Rediff",
+ L"rediff.com",
+ L"http://search1.rediff.com/favicon.ico",
+ L"http://search1.rediff.com/dirsrch/default.asp?MT={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 37,
+};
+
+const PrepopulatedEngine rednano = {
+ L"Rednano",
+ NULL,
+ L"http://rednano.sg/favicon.ico",
+ L"http://rednano.sg/sfe/lwi.action?querystring={searchTerms}",
+ "UTF-8",
+ NULL,
+ 41,
+};
+
+const PrepopulatedEngine sanook = {
+ L"\x0e2a\x0e19\x0e38\x0e01!",
+ L"sanook.com",
+ L"http://search.sanook.com/favicon.ico",
+ L"http://search.sanook.com/search.php?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 100,
+};
+
+const PrepopulatedEngine sapo = {
+ L"SAPO",
+ L"sapo.pt",
+ L"http://imgs.sapo.pt/images/sapo.ico",
+ L"http://pesquisa.sapo.pt/?q={searchTerms}",
+ "UTF-8",
+ L"http://pesquisa.sapo.pt/livesapo?q={searchTerms}",
+ 77,
+};
+
+const PrepopulatedEngine search_ch = {
+ L"search.ch",
+ NULL,
+ L"http://www.search.ch/favicon.ico",
+ L"http://www.search.ch/?q={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 51,
+};
+
+const PrepopulatedEngine sensis = {
+ L"sensis.com.au",
+ NULL,
+ L"http://www.sensis.com.au/favicon.ico",
+ L"http://www.sensis.com.au/search.do?find={searchTerms}",
+ "UTF-8",
+ NULL,
+ 32,
+};
+
+const PrepopulatedEngine sesam = {
+ L"Sesam",
+ NULL,
+ L"http://sesam.no/images/favicon.gif",
+ L"http://sesam.no/search/?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 74,
+};
+
+const PrepopulatedEngine seznam = {
+ L"Seznam",
+ L"seznam.cz",
+ L"http://1.im.cz/szn/img/favicon.ico",
+ L"http://search.seznam.cz/?q={searchTerms}",
+ "UTF-8",
+ L"http:///suggest.fulltext.seznam.cz/?dict=fulltext_ff&phrase={searchTerms}&"
+ L"encoding={inputEncoding}&response_encoding=utf-8",
+ 25,
+};
+
+const PrepopulatedEngine sogou = {
+ L"\x641c\x72d7",
+ NULL,
+ L"http://www.sogou.com/favicon.ico",
+ L"http://www.sogou.com/web?query={searchTerms}",
+ "GB2312",
+ NULL,
+ 20,
+};
+
+const PrepopulatedEngine soso = {
+ L"\x641c\x641c",
+ NULL,
+ L"http://www.soso.com/favicon.ico",
+ L"http://www.soso.com/q?w={searchTerms}",
+ "GB2312",
+ NULL,
+ 22,
+};
+
+const PrepopulatedEngine spray = {
+ L"Spray",
+ L"spray.se",
+ L"http://www.eniro.se/favicon.ico",
+ L"http://www.eniro.se/query?ax=spray&search_word={searchTerms}&what=web",
+ "ISO-8859-1",
+ NULL,
+ 99,
+};
+
+const PrepopulatedEngine szm = {
+ L"SZM.sk",
+ NULL,
+ L"http://szm.sk/favicon.ico",
+ L"http://szm.sk/search/?co=1&q={searchTerms}",
+ "windows-1250",
+ NULL,
+ 86,
+};
+
+const PrepopulatedEngine t_online = {
+ L"T-Online",
+ NULL,
+ L"http://suche.t-online.de/favicon.ico",
+ L"http://suche.t-online.de/fast-cgi/tsc?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 49,
+};
+
+const PrepopulatedEngine tango = {
+ L"Tango",
+ NULL,
+ L"http://tango.hu/favicon.ico",
+ L"http://tango.hu/search.php?q={searchTerms}",
+ "windows-1250",
+ NULL,
+ 58,
+};
+
+const PrepopulatedEngine tapuz = {
+ L"\x05ea\x05e4\x05d5\x05d6 \x05d0\x05e0\x05e9\x05d9\x05dd",
+ NULL,
+ L"http://www.tapuz.co.il/favicon.ico",
+ L"http://www.tapuz.co.il/search/search.asp?q={searchTerms}",
+ "windows-1255",
+ NULL,
+ 57,
+};
+
+const PrepopulatedEngine terra_ar = {
+ L"Terra Argentina",
+ L"terra.com.ar",
+ L"http://buscar.terra.com.ar/favicon.ico",
+ L"http://buscar.terra.com.ar/Default.aspx?query={searchTerms}&source=Search",
+ "ISO-8859-1",
+ NULL,
+ 90,
+};
+
+const PrepopulatedEngine terra_ec = {
+ L"Terra Ecuador",
+ L"terra.com.ec",
+ L"http://buscador.terra.com.ec/favicon.ico",
+ L"http://buscador.terra.com.ec/Default.aspx?query={searchTerms}&"
+ L"source=Search",
+ "ISO-8859-1",
+ NULL,
+ 90,
+};
+
+const PrepopulatedEngine terra_es = {
+ L"Terra",
+ L"terra.es",
+ L"http://buscador.terra.es/favicon.ico",
+ L"http://buscador.terra.es/Default.aspx?query={searchTerms}&source=Search",
+ "ISO-8859-1",
+ NULL,
+ 90,
+};
+
+const PrepopulatedEngine terra_mx = {
+ L"Terra",
+ L"terra.com.mx",
+ L"http://buscador.terra.com.mx/favicon.ico",
+ L"http://buscador.terra.com.mx/Default.aspx?query={searchTerms}&"
+ L"source=Search",
+ "ISO-8859-1",
+ NULL,
+ 90,
+};
+
+const PrepopulatedEngine terra_pe = {
+ L"Terra",
+ L"terra.com.pe",
+ L"http://buscador.terra.com.pe/favicon.ico",
+ L"http://buscador.terra.com.pe/Default.aspx?query={searchTerms}&"
+ L"source=Search",
+ "ISO-8859-1",
+ NULL,
+ 90,
+};
+
+const PrepopulatedEngine toile = {
+ L"La Toile du Qu" L"\x00e9" L"bec",
+ NULL,
+ L"http://static.search.canoe.ca/s-toile/img/favicon_toile.ico",
+ L"http://www.toile.com/search?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 36,
+};
+
+const PrepopulatedEngine tut = {
+ L"TUT.BY",
+ L"tut.by",
+ L"http://www.tut.by/favicon.ico",
+ L"http://search.tut.by/?query={searchTerms}",
+ "windows-1251",
+ NULL,
+ 17,
+};
+
+const PrepopulatedEngine uol = {
+ L"UOL Busca",
+ NULL,
+ L"http://busca.uol.com.br/favicon.ico",
+ L"http://busca.uol.com.br/www/index.html?q={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 82,
+};
+
+const PrepopulatedEngine vinden = {
+ L"Vinden.nl",
+ NULL,
+ L"http://www.vinden.nl/favicon.ico",
+ L"http://www.vinden.nl/?q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 31,
+};
+
+const PrepopulatedEngine virgilio = {
+ L"Virgilio",
+ L"virgilio.alice.it",
+ L"http://ricerca.alice.it/favicon.ico",
+ L"http://ricerca.alice.it/ricerca?qs={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 62,
+};
+
+const PrepopulatedEngine voila = {
+ L"Voila",
+ L"voila.fr",
+ L"http://search.ke.voila.fr/favicon.ico",
+ L"http://rws.search.ke.voila.fr/RW/S/opensearch_voila?rdata={searchTerms}",
+ "UTF-8",
+ L"http://search.ke.voila.fr/fr/cmplopensearch/xml/fullxml?"
+ L"rdata={searchTerms}",
+ 47,
+};
+
+const PrepopulatedEngine walla = {
+ L"\x05d5\x05d5\x05d0\x05dc\x05d4!",
+ L"walla.co.il",
+ L"http://www.walla.co.il/favicon.ico",
+ L"http://search.walla.co.il/?q={searchTerms}",
+ "windows-1255",
+ NULL,
+ 55,
+};
+
+const PrepopulatedEngine web_de = {
+ L"WEB.DE",
+ L"web.de",
+ L"http://img.ui-portal.de/search/img/webde/favicon.ico",
+ L"http://suche.web.de/search/web/?su={searchTerms}",
+ "ISO-8859-1",
+ NULL,
+ 50,
+};
+
+const PrepopulatedEngine wp = {
+ L"Wirtualna Polska",
+ L"wp.pl",
+ L"http://szukaj.wp.pl/favicon.ico",
+ L"http://szukaj.wp.pl/szukaj.html?szukaj={searchTerms}",
+ "ISO-8859-2",
+ NULL,
+ 76,
+};
+
+const PrepopulatedEngine yagua = {
+ L"Yagua.com",
+ L"yagua.com",
+ L"http://yagua.paraguay.com/favicon.ico",
+ L"http://yagua.paraguay.com/buscador.php?q={searchTerms}&cs={inputEncoding}",
+ "ISO-8859-1",
+ NULL,
+ 94,
+};
+
+const PrepopulatedEngine yahoo = {
+ L"Yahoo!",
+ L"yahoo.com",
+ L"http://search.yahoo.com/favicon.ico",
+ L"http://search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_ar = {
+ L"Yahoo! Argentina",
+ L"ar.yahoo.com",
+ L"http://ar.search.yahoo.com/favicon.ico",
+ L"http://ar.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_at = {
+ L"Yahoo! Suche",
+ L"at.yahoo.com",
+ L"http://at.search.yahoo.com/favicon.ico",
+ L"http://at.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_au = {
+ L"Yahoo!7",
+ L"au.yahoo.com",
+ L"http://au.search.yahoo.com/favicon.ico",
+ L"http://au.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_br = {
+ L"Yahoo! Brasil",
+ L"br.yahoo.com",
+ L"http://br.search.yahoo.com/favicon.ico",
+ L"http://br.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_ca = {
+ L"Yahoo! Canada",
+ L"ca.yahoo.com",
+ L"http://ca.search.yahoo.com/favicon.ico",
+ L"http://ca.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_ch = {
+ L"Yahoo! Suche",
+ L"ch.yahoo.com",
+ L"http://ch.search.yahoo.com/favicon.ico",
+ L"http://ch.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_cl = {
+ L"Yahoo! Chile",
+ L"cl.yahoo.com",
+ L"http://cl.search.yahoo.com/favicon.ico",
+ L"http://cl.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_cn = {
+ L"\x4e2d\x56fd\x96c5\x864e",
+ L"cn.yahoo.com",
+ L"http://search.cn.yahoo.com/favicon.ico",
+ L"http://search.cn.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "GB2312",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_co = {
+ L"Yahoo! Colombia",
+ L"co.yahoo.com",
+ L"http://co.search.yahoo.com/favicon.ico",
+ L"http://co.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_de = {
+ L"Yahoo! Deutschland",
+ L"de.yahoo.com",
+ L"http://de.search.yahoo.com/favicon.ico",
+ L"http://de.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_dk = {
+ L"Yahoo! Danmark",
+ L"dk.yahoo.com",
+ L"http://dk.search.yahoo.com/favicon.ico",
+ L"http://dk.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_es = {
+ L"Yahoo! Espa" L"\x00f1" L"a",
+ L"es.yahoo.com",
+ L"http://es.search.yahoo.com/favicon.ico",
+ L"http://es.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_fi = {
+ L"Yahoo!-haku",
+ L"fi.yahoo.com",
+ L"http://fi.search.yahoo.com/favicon.ico",
+ L"http://fi.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_fr = {
+ L"Yahoo! France",
+ L"fr.yahoo.com",
+ L"http://fr.search.yahoo.com/favicon.ico",
+ L"http://fr.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_hk = {
+ L"Yahoo! Hong Kong",
+ L"hk.yahoo.com",
+ L"http://hk.search.yahoo.com/favicon.ico",
+ L"http://hk.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_id = {
+ L"Yahoo! Indonesia",
+ L"id.yahoo.com",
+ L"http://id.search.yahoo.com/favicon.ico",
+ L"http://id.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_in = {
+ L"Yahoo! India",
+ L"in.yahoo.com",
+ L"http://in.search.yahoo.com/favicon.ico",
+ L"http://in.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_it = {
+ L"Yahoo! Italia",
+ L"it.yahoo.com",
+ L"http://it.search.yahoo.com/favicon.ico",
+ L"http://it.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_jp = {
+ L"Yahoo! JAPAN",
+ L"yahoo.co.jp",
+ L"http://search.yahoo.co.jp/favicon.ico",
+ L"http://search.yahoo.co.jp/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_kr = {
+ L"\xc57c\xd6c4! \xcf54\xb9ac\xc544",
+ L"kr.yahoo.com",
+ L"http://kr.search.yahoo.com/favicon.ico",
+ L"http://kr.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_malaysia = {
+ L"Yahoo! Malaysia",
+ L"malaysia.yahoo.com",
+ L"http://malaysia.search.yahoo.com/favicon.ico",
+ L"http://malaysia.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_mx = {
+ L"Yahoo! M" L"\x00e9" L"xico",
+ L"mx.yahoo.com",
+ L"http://mx.search.yahoo.com/favicon.ico",
+ L"http://mx.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_nl = {
+ L"Yahoo! Nederland",
+ L"nl.yahoo.com",
+ L"http://nl.search.yahoo.com/favicon.ico",
+ L"http://nl.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_no = {
+ L"Yahoo! Norge",
+ L"no.yahoo.com",
+ L"http://no.search.yahoo.com/favicon.ico",
+ L"http://no.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_nz = {
+ L"Yahoo!Xtra",
+ L"nz.yahoo.com",
+ L"http://sg.search.yahoo.com/favicon.ico",
+ L"http://sg.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_pe = {
+ L"Yahoo! Per" L"\x00fa",
+ L"pe.yahoo.com",
+ L"http://pe.search.yahoo.com/favicon.ico",
+ L"http://pe.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_ph = {
+ L"Yahoo! Philippines",
+ L"ph.yahoo.com",
+ L"http://ph.search.yahoo.com/favicon.ico",
+ L"http://ph.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_qc = {
+ L"Yahoo! Qu" L"\x00e9" L"bec",
+ L"qc.yahoo.com",
+ L"http://qc.search.yahoo.com/favicon.ico",
+ L"http://qc.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 5, // Can't be 2 as this has to appear in the Canada list alongside yahoo_ca.
+};
+
+const PrepopulatedEngine yahoo_ru = {
+ L"Yahoo! \x043f\x043e-\x0440\x0443\x0441\x0441\x043a\x0438",
+ L"ru.yahoo.com",
+ L"http://ru.search.yahoo.com/favicon.ico",
+ L"http://ru.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_sg = {
+ L"Yahoo! Singapore",
+ L"sg.yahoo.com",
+ L"http://tw.search.yahoo.com/favicon.ico",
+ L"http://tw.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_th = {
+ L"Yahoo! \x0e1b\x0e23\x0e30\x0e40\x0e17\x0e28\x0e44\x0e17\x0e22",
+ L"th.yahoo.com",
+ L"http://th.search.yahoo.com/favicon.ico",
+ L"http://th.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_tw = {
+ L"Yahoo!\x5947\x6469",
+ L"tw.yahoo.com",
+ L"http://tw.search.yahoo.com/favicon.ico",
+ L"http://tw.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_uk = {
+ L"Yahoo! UK & Ireland",
+ L"uk.yahoo.com",
+ L"http://uk.search.yahoo.com/favicon.ico",
+ L"http://uk.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_ve = {
+ L"Yahoo! Venezuela",
+ L"ve.yahoo.com",
+ L"http://ve.search.yahoo.com/favicon.ico",
+ L"http://ve.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yahoo_vn = {
+ L"Yahoo! Vi\x1ec7t Nam",
+ L"vn.yahoo.com",
+ L"http://vn.search.yahoo.com/favicon.ico",
+ L"http://vn.search.yahoo.com/search?ei={inputEncoding}&p={searchTerms}",
+ "UTF-8",
+ L"http://ff.search.yahoo.com/gossip?output=fxjson&command={searchTerms}",
+ 2,
+};
+
+const PrepopulatedEngine yam = {
+ L"\u5929\u7a7a",
+ L"yam.com",
+ L"http://www.yam.com/i/8/sky.ico",
+ L"http://search.yam.com/wps?k={searchTerms}",
+ "Big5",
+ NULL,
+ 23,
+};
+
+const PrepopulatedEngine yamli = {
+ L"Yamli",
+ NULL,
+ L"http://www.yamli.com/favicon.ico",
+ L"http://www.yamli.com/#q={searchTerms}",
+ "UTF-8",
+ NULL,
+ 11,
+};
+
+const PrepopulatedEngine yandex_ru = {
+ L"\x042f\x043d\x0434\x0435\x043a\x0441",
+ NULL,
+ L"http://yandex.ru/favicon.ico",
+ L"http://yandex.ru/yandsearch?text={searchTerms}",
+ "windows-1251",
+ L"http://suggest.yandex.net/suggest-ff.cgi?part={searchTerms}",
+ 15,
+};
+
+const PrepopulatedEngine yandex_ua = {
+ L"\x042f\x043d\x0434\x0435\x043a\x0441",
+ NULL,
+ L"http://yandex.ua/favicon.ico",
+ L"http://yandex.ua/yandsearch?text={searchTerms}",
+ "windows-1251",
+ L"http://suggest.yandex.net/suggest-ff.cgi?part={searchTerms}",
+ 15,
+};
+
+const PrepopulatedEngine zoznam = {
+ L"Zoznam",
+ NULL,
+ L"http://zoznam.sk/favicon.ico",
+ L"http://zoznam.sk/hladaj.fcgi?s={searchTerms}",
+ "windows-1250",
+ NULL,
+ 85,
+};
+
+// Lists of engines per country ////////////////////////////////////////////////
+
+// Put these in order with most interesting/important first. The default will
+// be the first engine.
+
+// United Arab Emirates
+const PrepopulatedEngine engines_AE[] =
+ { google, maktoob, yahoo, yamli, araby, msn_en_XA, msn_ar_XA, };
+
+// Albania
+const PrepopulatedEngine engines_AL[] =
+ { google, yahoo, live_en_XA, live_ar_XA, };
+
+// Argentina
+const PrepopulatedEngine engines_AR[] =
+ { google, altavista_ar, terra_ar, yahoo_ar, };
+
+// Austria
+const PrepopulatedEngine engines_AT[] = { google, yahoo_at, msn_de_AT, };
+
+// Australia
+const PrepopulatedEngine engines_AU[] =
+ { google, yahoo_au, msn_en_AU, sensis, };
+
+// Bosnia and Herzegovina
+const PrepopulatedEngine engines_BA[] = { google, pogodak_ba, yahoo, live, };
+
+// Belgium
+const PrepopulatedEngine engines_BE[] =
+ { google, yahoo, msn_nl_BE, msn_fr_BE, };
+
+// Bulgaria
+// The commented-out entry for "dir" below is for dir.bg, which we don't
+// currently support because it uses POST instead of GET for its searches.
+// See http://b/1196285
+const PrepopulatedEngine engines_BG[] =
+ { google, /*dir,*/ yahoo, jabse, live_bg_BG, };
+
+// Bahrain
+const PrepopulatedEngine engines_BH[] =
+ { google, maktoob, yamli, yahoo, araby, msn_en_XA, msn_ar_XA, };
+
+// Brunei
+const PrepopulatedEngine engines_BN[] =
+ { google, yahoo_malaysia, msn_en_MY, };
+
+// Bolivia
+const PrepopulatedEngine engines_BO[] =
+ { google, altavista, msn_es_XL, yahoo, ask_es, };
+
+// Brazil
+const PrepopulatedEngine engines_BR[] =
+ { google, msn_pt_BR, yahoo_br, aonde, gigabusca, uol, };
+
+// Belarus
+const PrepopulatedEngine engines_BY[] =
+ { google, yandex_ru, rambler, yahoo, tut, };
+
+// Belize
+const PrepopulatedEngine engines_BZ[] = { google, yahoo, live, aol, };
+
+// Canada
+const PrepopulatedEngine engines_CA[] =
+ { google, msn_en_CA, msn_fr_CA, yahoo_ca, yahoo_qc, toile, };
+
+// Switzerland
+const PrepopulatedEngine engines_CH[] =
+ { google, search_ch, yahoo_ch, msn_de_CH, msn_fr_CH, bluewin, };
+
+// Chile
+const PrepopulatedEngine engines_CL[] =
+ { google, yahoo_cl, altavista, msn_es_CL, };
+
+// China
+const PrepopulatedEngine engines_CN[] =
+ { google, baidu, yahoo_cn, sogou, soso, };
+
+// Colombia
+const PrepopulatedEngine engines_CO[] =
+ { google, ask_es, altavista, conexcol, yahoo_co, dogpile, alltheweb, };
+
+// Costa Rica
+const PrepopulatedEngine engines_CR[] =
+ { google, msn_es_XL, yahoo, altavista, aol, lycos_es, };
+
+// Czech Republic
+const PrepopulatedEngine engines_CZ[] =
+ { google, seznam, centrum_cz, atlas_cz, live_cs_CZ, };
+
+// Germany
+const PrepopulatedEngine engines_DE[] =
+ { google, msn_de_DE, yahoo_de, t_online, ask_de, web_de, };
+
+// Denmark
+const PrepopulatedEngine engines_DK[] =
+ { google, jubii, msn_da_DK, yahoo_dk, eniro_dk, };
+
+// Dominican Republic
+const PrepopulatedEngine engines_DO[] =
+ { google, msn_es_XL, yahoo, altavista, go, aol, };
+
+// Algeria
+const PrepopulatedEngine engines_DZ[] =
+ { google, yahoo, yamli, msn_en_XA, msn_ar_XA, araby, };
+
+// Ecuador
+const PrepopulatedEngine engines_EC[] =
+ { google, msn_es_XL, yahoo, terra_ec, };
+
+// Estonia
+const PrepopulatedEngine engines_EE[] =
+ { google, neti, delfi_ee, yahoo, live_et_EE, };
+
+// Egypt
+const PrepopulatedEngine engines_EG[] =
+ { google, masrawy, yahoo, maktoob, araby, msn_en_XA, msn_ar_XA, };
+
+// Spain
+const PrepopulatedEngine engines_ES[] =
+ { google, msn_es_ES, yahoo_es, terra_es, ozu, altavista_es, };
+
+// Faroe Islands
+const PrepopulatedEngine engines_FO[] =
+ { google, jubii, msn_da_DK, yahoo_dk, eniro_dk, };
+
+// Finland
+const PrepopulatedEngine engines_FI[] =
+ { google, msn_fi_FI, yahoo_fi, eniro_fi, fonecta_02_fi, };
+
+// France
+const PrepopulatedEngine engines_FR[] =
+ { google, voila, yahoo_fr, msn_fr_FR, orange, aol_fr, };
+
+// Greece
+const PrepopulatedEngine engines_GR[] =
+ { google, yahoo, forthnet, in, live_el_GR };
+
+// Guatemala
+const PrepopulatedEngine engines_GT[] =
+ { google, msn_es_XL, yahoo, ask_es, altavista, go, };
+
+// Hong Kong
+const PrepopulatedEngine engines_HK[] =
+ { google, yahoo_hk, msn_zh_HK, sogou, baidu, };
+
+// Honduras
+const PrepopulatedEngine engines_HN[] =
+ { google, msn_es_XL, yahoo, ask_es, altavista, };
+
+// Croatia
+const PrepopulatedEngine engines_HR[] =
+ { google, yahoo, pogodak_hr, live_hr_HR, };
+
+// Hungary
+const PrepopulatedEngine engines_HU[] = { google, tango, ok, live_hu_HU, };
+
+// Indonesia
+const PrepopulatedEngine engines_ID[] = { google, yahoo_id, live_en_ID, };
+
+// Ireland
+const PrepopulatedEngine engines_IE[] = { google, yahoo_uk, msn_en_IE, };
+
+// Israel
+const PrepopulatedEngine engines_IL[] =
+ { google, walla, nana10, tapuz, msn_he_IL, };
+
+// India
+const PrepopulatedEngine engines_IN[] =
+ { google, yahoo_in, msn_en_IN, rediff, guruji, };
+
+// Iraq
+const PrepopulatedEngine engines_IQ[] =
+ { google, maktoob, yamli, yahoo, araby, msn_en_XA, msn_ar_XA, };
+
+// Iran
+const PrepopulatedEngine engines_IR[] = { google, };
+
+// Iceland
+const PrepopulatedEngine engines_IS[] = { google, leit, embla, finna, };
+
+// Italy
+const PrepopulatedEngine engines_IT[] =
+ { google, virgilio, yahoo_it, libero, ask_it, live_it_IT, };
+
+// Jamaica
+const PrepopulatedEngine engines_JM[] =
+ { google, jamaicalive, yahoo, live, go, aol, };
+
+// Jordan
+const PrepopulatedEngine engines_JO[] =
+ { google, maktoob, yamli, yahoo, araby, msn_en_XA, msn_ar_XA, };
+
+// Japan
+const PrepopulatedEngine engines_JP[] =
+ { google, yahoo_jp, msn_ja_JP, biglobe, nifty, infoseek, };
+
+// Kenya
+const PrepopulatedEngine engines_KE[] = { google, yahoo, msn, };
+
+// Kuwait
+const PrepopulatedEngine engines_KW[] =
+ { google, maktoob, yahoo, yamli, araby, msn_en_XA, msn_ar_XA, };
+
+// South Korea
+const PrepopulatedEngine engines_KR[] =
+ { google, naver, daum, yahoo_kr, nate, empas, };
+
+// Lebanon
+const PrepopulatedEngine engines_LB[] =
+ { google, maktoob, yahoo, yamli, araby, msn_en_XA, msn_ar_XA, };
+
+// Liechtenstein
+const PrepopulatedEngine engines_LI[] =
+ { google, msn_de_DE, yahoo_de, t_online, ask_de, web_de, };
+
+// Lithuania
+const PrepopulatedEngine engines_LT[] =
+ { google, delfi_lt, yandex_ru, live_lt_LT, };
+
+// Luxembourg
+const PrepopulatedEngine engines_LU[] =
+ { google, voila, yahoo_fr, msn_fr_FR, orange, aol_fr, };
+
+// Latvia
+const PrepopulatedEngine engines_LV[] =
+ { google, yandex_ru, delfi_lv, latne, };
+
+// Libya
+const PrepopulatedEngine engines_LY[] =
+ { google, maktoob, yahoo, yamli, araby, msn_en_XA, msn_ar_XA, };
+
+// Morocco
+const PrepopulatedEngine engines_MA[] =
+ { google, yamli, araby, yahoo, msn_en_XA, msn_ar_XA, };
+
+// Monaco
+const PrepopulatedEngine engines_MC[] = { google, };
+
+// Macedonia
+const PrepopulatedEngine engines_MK[] = { google, pogodok, yahoo, live, };
+
+// Mexico
+const PrepopulatedEngine engines_MX[] =
+ { google, msn_es_MX, yahoo_mx, ask_es, altavista_mx, terra_mx, };
+
+// Malaysia
+const PrepopulatedEngine engines_MY[] =
+ { google, yahoo_malaysia, msn_en_MY, };
+
+// Nicaragua
+const PrepopulatedEngine engines_NI[] =
+ { google, msn_es_XL, yahoo, ask_es, altavista, };
+
+// Netherlands
+const PrepopulatedEngine engines_NL[] =
+ { google, ilse, msn_nl_NL, yahoo_nl, lycos_nl, vinden, };
+
+// Norway
+const PrepopulatedEngine engines_NO[] =
+ { google, msn_nb_NO, abcsok, yahoo_no, kvasir, sesam, };
+
+// New Zealand
+const PrepopulatedEngine engines_NZ[] = { google, yahoo_nz, live_en_NZ, };
+
+// Oman
+const PrepopulatedEngine engines_OM[] =
+ { google, maktoob, yahoo, yamli, araby, msn_en_XA, msn_ar_XA, };
+
+// Panama
+const PrepopulatedEngine engines_PA[] =
+ { google, msn_es_XL, yahoo, ask_es, altavista, lycos_es, };
+
+// Peru
+const PrepopulatedEngine engines_PE[] =
+ { google, msn_es_XL, yahoo_pe, terra_pe, adonde, ohperu, };
+
+// Philippines
+const PrepopulatedEngine engines_PH[] = { google, yahoo_ph, msn_en_PH, };
+
+// Pakistan
+const PrepopulatedEngine engines_PK[] = { google, yahoo, msn, };
+
+// Puerto Rico
+const PrepopulatedEngine engines_PR[] =
+ { google, msn_es_XL, yahoo, ask_es, altavista, mywebsearch, };
+
+// Poland
+const PrepopulatedEngine engines_PL[] = { google, onet, wp, live_pl_PL, };
+
+// Portugal
+const PrepopulatedEngine engines_PT[] =
+ { google, sapo, yahoo, live_pt_PT, netindex, aeiou, };
+
+// Paraguay
+const PrepopulatedEngine engines_PY[] =
+ { google, msn_es_XL, yahoo, lycos_es, yagua, go, };
+
+// Qatar
+const PrepopulatedEngine engines_QA[] =
+ { google, maktoob, yahoo, araby, msn_en_XA, msn_ar_XA, };
+
+// Romania
+const PrepopulatedEngine engines_RO[] = { google, yahoo, live_ro_RO, };
+
+// Serbia/Montenegro
+const PrepopulatedEngine engines_RS_ME[] =
+ { google, yahoo, krstarica, pogodak_rs, aladin, live, };
+
+// Russia
+const PrepopulatedEngine engines_RU[] =
+ { google, yandex_ru, rambler, mail_ru, yahoo_ru, live_ru_RU, };
+
+// Saudi Arabia
+const PrepopulatedEngine engines_SA[] =
+ { google, yahoo, araby, msn_en_XA, msn_ar_XA, maktoob, };
+
+// Sweden
+const PrepopulatedEngine engines_SE[] =
+ { google, eniro_se, msn_sv_SE, altavista_se, spray, };
+
+// Singapore
+const PrepopulatedEngine engines_SG[] =
+ { google, yahoo_sg, msn_en_SG, rednano, };
+
+// Slovenia
+const PrepopulatedEngine engines_SI[] =
+ { google, najdi, yahoo, matkurja, live_sl_SI, };
+
+// Slovakia
+const PrepopulatedEngine engines_SK[] =
+ { google, zoznam, centrum_sk, atlas_sk, szm, live_sk_SK, };
+
+// El Salvador
+const PrepopulatedEngine engines_SV[] =
+ { google, msn_es_XL, yahoo, ask_es, altavista, go, };
+
+// Syria
+const PrepopulatedEngine engines_SY[] =
+ { google, yahoo, maktoob, yamli, araby, msn_en_XA, msn_ar_XA, };
+
+// Thailand
+const PrepopulatedEngine engines_TH[] =
+ { google, sanook, yahoo_th, live_th_TH, };
+
+// Tunisia
+const PrepopulatedEngine engines_TN[] =
+ { google, maktoob, yamli, yahoo, msn_en_XA, msn_ar_XA, };
+
+// Turkey
+const PrepopulatedEngine engines_TR[] = { google, msn_tr_TR, yahoo, mynet, };
+
+// Trinidad and Tobago
+const PrepopulatedEngine engines_TT[] = { google, live, yahoo, go, aol, };
+
+// Taiwan
+const PrepopulatedEngine engines_TW[] = { google, yahoo_tw, yam, };
+
+// Ukraine
+const PrepopulatedEngine engines_UA[] =
+ { google, meta, yandex_ua, bigmir, rambler, };
+
+// United Kingdom
+const PrepopulatedEngine engines_UK[] =
+ { google, yahoo_uk, msn_en_GB, ask_uk, };
+
+// United States
+const PrepopulatedEngine engines_US[] =
+ { google, yahoo, live_en_US, live_es_US, aol, ask, };
+
+// Uruguay
+const PrepopulatedEngine engines_UY[] =
+ { google, msn_es_XL, yahoo, go, lycos_es, };
+
+// Venezuela
+const PrepopulatedEngine engines_VE[] =
+ { google, msn_es_XL, yahoo_ve, altavista, };
+
+// Vietnam
+const PrepopulatedEngine engines_VN[] = { google, yahoo_vn, };
+
+// Yemen
+const PrepopulatedEngine engines_YE[] =
+ { google, yahoo, maktoob, yamli, araby, msn_en_XA, msn_ar_XA, };
+
+// South Africa
+const PrepopulatedEngine engines_ZA[] =
+ { google, yahoo, msn_en_ZA, mweb, iafrica, };
+
+// Zimbabwe
+const PrepopulatedEngine engines_ZW[] = { google, yahoo, msn, };
+
+// GeoID mappings //////////////////////////////////////////////////////////////
+
+LONG GetCurrentGeoID() {
+ // TODO(pkasting): http://b/1225276 Much of this should live in a utility
+ // function somewhere.
+ typedef GEOID (WINAPI *GetUserGeoIDFunction)(GEOCLASS);
+ const HMODULE kernel32_handle = GetModuleHandle(L"kernel32.dll");
+ if (!kernel32_handle) {
+ NOTREACHED();
+ return GEOID_NOT_AVAILABLE;
+ }
+ const GetUserGeoIDFunction GetUserGeoIDPtr =
+ reinterpret_cast<GetUserGeoIDFunction>(GetProcAddress(kernel32_handle,
+ "GetUserGeoID"));
+ return GetUserGeoIDPtr ?
+ ((*GetUserGeoIDPtr)(GEOCLASS_NATION)) : GEOID_NOT_AVAILABLE;
+}
+
+int GetGeoIDFromPrefs(PrefService* prefs) {
+ // See if the user overrode the GeoID on the command line.
+ CommandLine parsed_command_line;
+ const std::wstring geoID(
+ parsed_command_line.GetSwitchValue(switches::kGeoID));
+ if (!geoID.empty())
+ return _wtoi(geoID.c_str());
+
+ // Cache first run GeoID value in prefs, and use it afterwards. This ensures
+ // that just because the user moves around, we won't automatically make major
+ // changes to their available search providers, which would feel surprising.
+ if (!prefs)
+ return GetCurrentGeoID();
+ if (!prefs->HasPrefPath(prefs::kGeoIDAtInstall))
+ prefs->SetInteger(prefs::kGeoIDAtInstall, GetCurrentGeoID());
+ return prefs->GetInteger(prefs::kGeoIDAtInstall);
+}
+
+void GetPrepopulationSetFromGeoID(PrefService* prefs,
+ const PrepopulatedEngine** engines,
+ size_t* num_engines) {
+ // NOTE: This function should ALWAYS set its outparams.
+
+ // GeoIDs are from http://msdn.microsoft.com/en-us/library/ms776390.aspx .
+ // Country codes and names are from http://www.geonames.org/countries/ .
+ switch (GetGeoIDFromPrefs(prefs)) {
+
+#define DECLARE_COUNTRY(id, code) \
+ case id:\
+ *engines = engines_##code;\
+ *num_engines = arraysize(engines_##code);\
+ return;
+
+ DECLARE_COUNTRY(0x4, DZ) // Algeria
+ DECLARE_COUNTRY(0x6, AL) // Albania
+ DECLARE_COUNTRY(0xB, AR) // Argentina
+ DECLARE_COUNTRY(0xC, AU) // Australia
+ DECLARE_COUNTRY(0xE, AT) // Austria
+ DECLARE_COUNTRY(0x11, BH) // Bahrain
+ DECLARE_COUNTRY(0x15, BE) // Belgium
+ DECLARE_COUNTRY(0x18, BZ) // Belize
+ DECLARE_COUNTRY(0x19, BA) // Bosnia and Herzegovina
+ DECLARE_COUNTRY(0x1A, BO) // Bolivia
+ DECLARE_COUNTRY(0x1D, BY) // Belarus
+ DECLARE_COUNTRY(0x20, BR) // Brazil
+ DECLARE_COUNTRY(0x23, BG) // Bulgaria
+ DECLARE_COUNTRY(0x25, BN) // Brunei
+ DECLARE_COUNTRY(0x27, CA) // Canada
+ DECLARE_COUNTRY(0x2D, CN) // China
+ DECLARE_COUNTRY(0x2E, CL) // Chile
+ DECLARE_COUNTRY(0x33, CO) // Colombia
+ DECLARE_COUNTRY(0x36, CR) // Costa Rica
+ DECLARE_COUNTRY(0x3D, DK) // Denmark
+ DECLARE_COUNTRY(0x41, DO) // Dominican Republic
+ DECLARE_COUNTRY(0x42, EC) // Ecuador
+ DECLARE_COUNTRY(0x43, EG) // Egypt
+ DECLARE_COUNTRY(0x44, IE) // Ireland
+ DECLARE_COUNTRY(0x46, EE) // Estonia
+ DECLARE_COUNTRY(0x48, SV) // El Salvador
+ DECLARE_COUNTRY(0x4B, CZ) // Czech Republic
+ DECLARE_COUNTRY(0x4D, FI) // Finland
+ DECLARE_COUNTRY(0x51, FO) // Faroe Islands
+ DECLARE_COUNTRY(0x54, FR) // France
+ DECLARE_COUNTRY(0x5E, DE) // Germany
+ DECLARE_COUNTRY(0x62, GR) // Greece
+ DECLARE_COUNTRY(0x63, GT) // Guatemala
+ DECLARE_COUNTRY(0x68, HK) // Hong Kong
+ DECLARE_COUNTRY(0x6A, HN) // Honduras
+ DECLARE_COUNTRY(0x6C, HR) // Croatia
+ DECLARE_COUNTRY(0x6D, HU) // Hungary
+ DECLARE_COUNTRY(0x6E, IS) // Iceland
+ DECLARE_COUNTRY(0x6F, ID) // Indonesia
+ DECLARE_COUNTRY(0x71, IN) // India
+ DECLARE_COUNTRY(0x74, IR) // Iran
+ DECLARE_COUNTRY(0x75, IL) // Israel
+ DECLARE_COUNTRY(0x76, IT) // Italy
+ DECLARE_COUNTRY(0x79, IQ) // Iraq
+ DECLARE_COUNTRY(0x7A, JP) // Japan
+ DECLARE_COUNTRY(0x7C, JM) // Jamaica
+ DECLARE_COUNTRY(0x7E, JO) // Jordan
+ DECLARE_COUNTRY(0x81, KE) // Kenya
+ DECLARE_COUNTRY(0x86, KR) // South Korea
+ DECLARE_COUNTRY(0x88, KW) // Kuwait
+ DECLARE_COUNTRY(0x8B, LB) // Lebanon
+ DECLARE_COUNTRY(0x8C, LV) // Latvia
+ DECLARE_COUNTRY(0x8D, LT) // Lithuania
+ DECLARE_COUNTRY(0x8F, SK) // Slovakia
+ DECLARE_COUNTRY(0x91, LI) // Liechtenstein
+ DECLARE_COUNTRY(0x93, LU) // Luxembourg
+ DECLARE_COUNTRY(0x94, LY) // Libya
+ DECLARE_COUNTRY(0x9E, MC) // Monaco
+ DECLARE_COUNTRY(0x9F, MA) // Morocco
+ DECLARE_COUNTRY(0xA4, OM) // Oman
+ DECLARE_COUNTRY(0xA6, MX) // Mexico
+ DECLARE_COUNTRY(0xA7, MY) // Malaysia
+ DECLARE_COUNTRY(0xB0, NL) // Netherlands
+ DECLARE_COUNTRY(0xB1, NO) // Norway
+ DECLARE_COUNTRY(0xB6, NI) // Nicaragua
+ DECLARE_COUNTRY(0xB7, NZ) // New Zealand
+ DECLARE_COUNTRY(0xB9, PY) // Paraguay
+ DECLARE_COUNTRY(0xBB, PE) // Peru
+ DECLARE_COUNTRY(0xBE, PK) // Pakistan
+ DECLARE_COUNTRY(0xBF, PL) // Poland
+ DECLARE_COUNTRY(0xC0, PA) // Panama
+ DECLARE_COUNTRY(0xC1, PT) // Portugal
+ DECLARE_COUNTRY(0xC5, QA) // Qatar
+ DECLARE_COUNTRY(0xC8, RO) // Romania
+ DECLARE_COUNTRY(0xC9, PH) // Philippines
+ DECLARE_COUNTRY(0xCA, PR) // Puerto Rico
+ DECLARE_COUNTRY(0xCB, RU) // Russia
+ DECLARE_COUNTRY(0xCD, SA) // Saudi Arabia
+ DECLARE_COUNTRY(0xD1, ZA) // South Africa
+ DECLARE_COUNTRY(0xD4, SI) // Slovenia
+ DECLARE_COUNTRY(0xD7, SG) // Singapore
+ DECLARE_COUNTRY(0xD9, ES) // Spain
+ DECLARE_COUNTRY(0xDD, SE) // Sweden
+ DECLARE_COUNTRY(0xDE, SY) // Syria
+ DECLARE_COUNTRY(0xDF, CH) // Switzerland
+ DECLARE_COUNTRY(0xE0, AE) // United Arab Emirates
+ DECLARE_COUNTRY(0xE1, TT) // Trinidad and Tobago
+ DECLARE_COUNTRY(0xE3, TH) // Thailand
+ DECLARE_COUNTRY(0xEA, TN) // Tunisia
+ DECLARE_COUNTRY(0xEB, TR) // Turkey
+ DECLARE_COUNTRY(0xED, TW) // Taiwan
+ DECLARE_COUNTRY(0xF1, UA) // Ukraine
+ DECLARE_COUNTRY(0xF2, UK) // United Kingdom
+ DECLARE_COUNTRY(0xF4, US) // United States
+ DECLARE_COUNTRY(0xF6, UY) // Uruguay
+ DECLARE_COUNTRY(0xF9, VE) // Venezuela
+ DECLARE_COUNTRY(0xFB, VN) // Vietnam
+ DECLARE_COUNTRY(0x105, YE) // Yemen
+ DECLARE_COUNTRY(0x108, ZW) // Zimbabwe
+ DECLARE_COUNTRY(0x10D, RS_ME) // Serbia/Montenegro
+ DECLARE_COUNTRY(0x4CA2, MK) // Macedonia
+
+#define UNHANDLED_COUNTRY(id, code) \
+ case id:
+
+ // All these fall through to the GEOID_NOT_AVAILABLE case at the bottom.
+ UNHANDLED_COUNTRY(0x2, AG) // Antigua and Barbuda
+ UNHANDLED_COUNTRY(0x3, AF) // Afghanistan
+ UNHANDLED_COUNTRY(0x5, AZ) // Azerbaijan
+ UNHANDLED_COUNTRY(0x7, AM) // Armenia
+ UNHANDLED_COUNTRY(0x8, AD) // Andorra
+ UNHANDLED_COUNTRY(0x9, AO) // Angola
+ UNHANDLED_COUNTRY(0xA, AS) // American Samoa
+ UNHANDLED_COUNTRY(0x12, BB) // Barbados
+ UNHANDLED_COUNTRY(0x13, BW) // Botswana
+ UNHANDLED_COUNTRY(0x14, BM) // Bermuda
+ UNHANDLED_COUNTRY(0x16, BS) // Bahamas
+ UNHANDLED_COUNTRY(0x17, BD) // Bangladesh
+ UNHANDLED_COUNTRY(0x1B, MM) // Myanmar
+ UNHANDLED_COUNTRY(0x1C, BJ) // Benin
+ UNHANDLED_COUNTRY(0x1E, SB) // Solomon Islands
+ UNHANDLED_COUNTRY(0x22, BT) // Bhutan
+ UNHANDLED_COUNTRY(0x26, BI) // Burundi
+ UNHANDLED_COUNTRY(0x28, KH) // Cambodia
+ UNHANDLED_COUNTRY(0x29, TD) // Chad
+ UNHANDLED_COUNTRY(0x2A, LK) // Sri Lanka
+ UNHANDLED_COUNTRY(0x2B, CG) // Congo - Brazzaville
+ UNHANDLED_COUNTRY(0x2C, CD) // Congo - Kinshasa
+ UNHANDLED_COUNTRY(0x31, CM) // Cameroon
+ UNHANDLED_COUNTRY(0x32, KM) // Comoros
+ UNHANDLED_COUNTRY(0x37, CF) // Central African Republic
+ UNHANDLED_COUNTRY(0x38, CU) // Cuba
+ UNHANDLED_COUNTRY(0x39, CV) // Cape Verde
+ UNHANDLED_COUNTRY(0x3B, CY) // Cyprus
+ UNHANDLED_COUNTRY(0x3E, DJ) // Djibouti
+ UNHANDLED_COUNTRY(0x3F, DM) // Dominica
+ UNHANDLED_COUNTRY(0x45, GQ) // Equatorial Guinea
+ UNHANDLED_COUNTRY(0x47, ER) // Eritrea
+ UNHANDLED_COUNTRY(0x49, ET) // Ethiopia
+ UNHANDLED_COUNTRY(0x4E, FJ) // Fiji
+ UNHANDLED_COUNTRY(0x50, FM) // Micronesia
+ UNHANDLED_COUNTRY(0x56, GM) // Gambia
+ UNHANDLED_COUNTRY(0x57, GA) // Gabon
+ UNHANDLED_COUNTRY(0x58, GE) // Georgia
+ UNHANDLED_COUNTRY(0x59, GH) // Ghana
+ UNHANDLED_COUNTRY(0x5A, GI) // Gibraltar
+ UNHANDLED_COUNTRY(0x5B, GD) // Grenada
+ UNHANDLED_COUNTRY(0x5D, GL) // Greenland
+ UNHANDLED_COUNTRY(0x64, GN) // Guinea
+ UNHANDLED_COUNTRY(0x65, GY) // Guyana
+ UNHANDLED_COUNTRY(0x67, HT) // Haiti
+ UNHANDLED_COUNTRY(0x72, IO) // British Indian Ocean Territory
+ UNHANDLED_COUNTRY(0x77, CI) // Ivory Coast
+ UNHANDLED_COUNTRY(0x7D, SJ) // [Svalbard and] Jan Mayen
+ UNHANDLED_COUNTRY(0x7F, XX) // Johnston Atoll
+ UNHANDLED_COUNTRY(0x82, KG) // Kyrgyzstan
+ UNHANDLED_COUNTRY(0x83, KP) // North Korea
+ UNHANDLED_COUNTRY(0x85, KI) // Kiribati
+ UNHANDLED_COUNTRY(0x89, KZ) // Kazakhstan
+ UNHANDLED_COUNTRY(0x8A, LA) // Laos
+ UNHANDLED_COUNTRY(0x8E, LR) // Liberia
+ UNHANDLED_COUNTRY(0x92, LS) // Lesotho
+ UNHANDLED_COUNTRY(0x95, MG) // Madagascar
+ UNHANDLED_COUNTRY(0x97, MO) // Macao
+ UNHANDLED_COUNTRY(0x98, MD) // Moldova
+ UNHANDLED_COUNTRY(0x9A, MN) // Mongolia
+ UNHANDLED_COUNTRY(0x9C, MW) // Malawi
+ UNHANDLED_COUNTRY(0x9D, ML) // Mali
+ UNHANDLED_COUNTRY(0xA0, MU) // Mauritius
+ UNHANDLED_COUNTRY(0xA2, MR) // Mauritania
+ UNHANDLED_COUNTRY(0xA3, MT) // Malta
+ UNHANDLED_COUNTRY(0xA5, MV) // Maldives
+ UNHANDLED_COUNTRY(0xA8, MZ) // Mozambique
+ UNHANDLED_COUNTRY(0xAD, NE) // Niger
+ UNHANDLED_COUNTRY(0xAE, VU) // Vanuatu
+ UNHANDLED_COUNTRY(0xAF, NG) // Nigeria
+ UNHANDLED_COUNTRY(0xB2, NP) // Nepal
+ UNHANDLED_COUNTRY(0xB4, NR) // Nauru
+ UNHANDLED_COUNTRY(0xB5, SR) // Suriname
+ UNHANDLED_COUNTRY(0xB8, PS) // Palestinian Territory
+ UNHANDLED_COUNTRY(0xC2, PG) // Papua New Guinea
+ UNHANDLED_COUNTRY(0xC3, PW) // Palau
+ UNHANDLED_COUNTRY(0xC4, GW) // Guinea-Bissau
+ UNHANDLED_COUNTRY(0xC6, RE) // Reunion
+ UNHANDLED_COUNTRY(0xC7, MH) // Marshall Islands
+ UNHANDLED_COUNTRY(0xCC, RW) // Rwanda
+ UNHANDLED_COUNTRY(0xCE, PM) // Saint Pierre and Miquelon
+ UNHANDLED_COUNTRY(0xCF, KN) // Saint Kitts and Nevis
+ UNHANDLED_COUNTRY(0xD0, SC) // Seychelles
+ UNHANDLED_COUNTRY(0xD2, SN) // Senegal
+ UNHANDLED_COUNTRY(0xD5, SL) // Sierra Leone
+ UNHANDLED_COUNTRY(0xD6, SM) // San Marino
+ UNHANDLED_COUNTRY(0xD8, SO) // Somalia
+ UNHANDLED_COUNTRY(0xDA, LC) // Saint Lucia
+ UNHANDLED_COUNTRY(0xDB, SD) // Sudan
+ UNHANDLED_COUNTRY(0xDC, SJ) // Svalbard [and Jan Mayen]
+ UNHANDLED_COUNTRY(0xE4, TJ) // Tajikistan
+ UNHANDLED_COUNTRY(0xE7, TO) // Tonga
+ UNHANDLED_COUNTRY(0xE8, TG) // Togo
+ UNHANDLED_COUNTRY(0xE9, ST) // Sao Tome and Principe
+ UNHANDLED_COUNTRY(0xEC, TV) // Tuvalu
+ UNHANDLED_COUNTRY(0xEE, TM) // Turkmenistan
+ UNHANDLED_COUNTRY(0xEF, TZ) // Tanzania
+ UNHANDLED_COUNTRY(0xF0, UG) // Uganda
+ UNHANDLED_COUNTRY(0xF5, BF) // Burkina Faso
+ UNHANDLED_COUNTRY(0xF7, UZ) // Uzbekistan
+ UNHANDLED_COUNTRY(0xF8, VC) // Saint Vincent and the Grenadines
+ UNHANDLED_COUNTRY(0xFC, VI) // U.S. Virgin Islands
+ UNHANDLED_COUNTRY(0xFD, VA) // Vatican
+ UNHANDLED_COUNTRY(0xFE, NA) // Namibia
+ UNHANDLED_COUNTRY(0x102, XX) // Wake Island
+ UNHANDLED_COUNTRY(0x103, WS) // Samoa
+ UNHANDLED_COUNTRY(0x104, SZ) // Swaziland
+ UNHANDLED_COUNTRY(0x107, ZM) // Zambia
+ UNHANDLED_COUNTRY(0x12C, AI) // Anguilla
+ UNHANDLED_COUNTRY(0x12D, AQ) // Antarctica
+ UNHANDLED_COUNTRY(0x12E, AW) // Aruba
+ UNHANDLED_COUNTRY(0x12F, XX) // Ascension Island
+ UNHANDLED_COUNTRY(0x130, XX) // Ashmore and Cartier Islands
+ UNHANDLED_COUNTRY(0x131, XX) // Baker Island
+ UNHANDLED_COUNTRY(0x132, BV) // Bouvet Island
+ UNHANDLED_COUNTRY(0x133, KY) // Cayman Islands
+ UNHANDLED_COUNTRY(0x134, XX) // Channel Islands
+ UNHANDLED_COUNTRY(0x135, CX) // Christmas Island
+ UNHANDLED_COUNTRY(0x136, XX) // Clipperton Island
+ UNHANDLED_COUNTRY(0x137, CC) // Cocos Islands
+ UNHANDLED_COUNTRY(0x138, CK) // Cook Islands
+ UNHANDLED_COUNTRY(0x139, XX) // Coral Sea Islands
+ UNHANDLED_COUNTRY(0x13A, XX) // Diego Garcia
+ UNHANDLED_COUNTRY(0x13B, FK) // Falkland Islands
+ UNHANDLED_COUNTRY(0x13D, GF) // French Guiana
+ UNHANDLED_COUNTRY(0x13E, PF) // French Polynesia
+ UNHANDLED_COUNTRY(0x13F, TF) // French Southern Territories
+ UNHANDLED_COUNTRY(0x141, GP) // Guadeloupe
+ UNHANDLED_COUNTRY(0x142, GU) // Guam
+ UNHANDLED_COUNTRY(0x143, XX) // Guantanamo Bay
+ UNHANDLED_COUNTRY(0x144, GG) // Guernsey
+ UNHANDLED_COUNTRY(0x145, HM) // Heard Island and McDonald Islands
+ UNHANDLED_COUNTRY(0x146, XX) // Howland Island
+ UNHANDLED_COUNTRY(0x147, XX) // Jarvis Island
+ UNHANDLED_COUNTRY(0x148, JE) // Jersey
+ UNHANDLED_COUNTRY(0x149, XX) // Kingman Reef
+ UNHANDLED_COUNTRY(0x14A, MQ) // Martinique
+ UNHANDLED_COUNTRY(0x14B, YT) // Mayotte
+ UNHANDLED_COUNTRY(0x14C, MS) // Montserrat
+ UNHANDLED_COUNTRY(0x14D, AN) // Netherlands Antilles
+ UNHANDLED_COUNTRY(0x14E, NC) // New Caledonia
+ UNHANDLED_COUNTRY(0x14F, NU) // Niue
+ UNHANDLED_COUNTRY(0x150, NF) // Norfolk Island
+ UNHANDLED_COUNTRY(0x151, MP) // Northern Mariana Islands
+ UNHANDLED_COUNTRY(0x152, XX) // Palmyra Atoll
+ UNHANDLED_COUNTRY(0x153, PN) // Pitcairn Islands
+ UNHANDLED_COUNTRY(0x154, XX) // Rota Island
+ UNHANDLED_COUNTRY(0x155, XX) // Saipan
+ UNHANDLED_COUNTRY(0x156, GS) // South Georgia and the South Sandwich
+ // Islands
+ UNHANDLED_COUNTRY(0x157, SH) // Saint Helena
+ UNHANDLED_COUNTRY(0x15A, XX) // Tinian Island
+ UNHANDLED_COUNTRY(0x15B, TK) // Tokelau
+ UNHANDLED_COUNTRY(0x15C, XX) // Tristan da Cunha
+ UNHANDLED_COUNTRY(0x15D, TC) // Turks and Caicos Islands
+ UNHANDLED_COUNTRY(0x15F, VG) // British Virgin Islands
+ UNHANDLED_COUNTRY(0x160, WF) // Wallis and Futuna
+ UNHANDLED_COUNTRY(0x3B16, IM) // Isle of Man
+ UNHANDLED_COUNTRY(0x52FA, XX) // Midway Islands
+ UNHANDLED_COUNTRY(0x6F60E7, TL) // East Timor
+ default: // Unknown location
+ // Perhaps this should use an empty set of engines instead of the US set?
+ DECLARE_COUNTRY(GEOID_NOT_AVAILABLE, US)
+ }
+}
+
+} // namespace
+
+namespace TemplateURLPrepopulateData {
+
+void RegisterUserPrefs(PrefService* prefs) {
+ prefs->RegisterIntegerPref(prefs::kGeoIDAtInstall, -1);
+}
+
+int GetDataVersion() {
+ return 8; // Increment this if you change the above data in ways that mean
+ // users with existing data should get a new version.
+}
+
+void GetPrepopulatedEngines(PrefService* prefs,
+ std::vector<TemplateURL*>* t_urls,
+ size_t* default_search_provider_index) {
+ // TODO(pkasting): http://b/1225464 GeoID is not available on Win2k. We'll
+ // need to do something else there.
+ const PrepopulatedEngine* engines;
+ size_t num_engines;
+ GetPrepopulationSetFromGeoID(prefs, &engines, &num_engines);
+ *default_search_provider_index = 0;
+
+ for (size_t i = 0; i < num_engines; ++i) {
+ TemplateURL* new_turl = new TemplateURL();
+ new_turl->SetURL(engines[i].search_url, 0, 0);
+ if (engines[i].favicon_url)
+ new_turl->SetFavIconURL(GURL(engines[i].favicon_url));
+ if (engines[i].suggest_url)
+ new_turl->SetSuggestionsURL(engines[i].suggest_url, 0, 0);
+ new_turl->set_short_name(engines[i].name);
+ new_turl->set_show_in_default_list(true);
+ new_turl->set_safe_for_autoreplace(true);
+ new_turl->set_date_created(Time());
+ std::vector<std::string> turl_encodings;
+ turl_encodings.push_back(engines[i].encoding);
+ new_turl->set_input_encodings(turl_encodings);
+ new_turl->set_prepopulate_id(engines[i].id);
+
+ // Set the keyword. We do this last so that if we need to generate a
+ // keyword, the rest of the data is complete for GenerateSearchHost().
+ new_turl->set_keyword(engines[i].keyword ? engines[i].keyword :
+ TemplateURLModel::GenerateKeyword(
+ TemplateURLModel::GenerateSearchURL(new_turl).GetWithEmptyPath(),
+ true)); // autodetected
+
+ t_urls->push_back(new_turl);
+ }
+}
+
+} // namespace TemplateURLPrepopulateData