Google Extra

Displays results for google image search, video search, wikipedia search and dictionary.com search alongside normal google searches.

// ==UserScript==
// @name           Google Extra
// @description    Displays results for google image search, video search, wikipedia search and dictionary.com search alongside normal google searches.
// @namespace      znerp
// @include        http://www.google.*/search?*q=*
// @include        https://www.google.*/search?*q=*
// @include        https://www.google.*/#*
// @exclude        http://www.google.*/search?*tbm=*
// @exclude        https://www.google.*/search?*tbm=*
// @grant			GM_registerMenuCommand
// @grant			GM_getValue
// @grant			GM_xmlhttpRequest
// @version        1.0
// ==/UserScript==

var show    = "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
              "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
              "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
              "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
              "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
              "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
              "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
              "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
              "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
              "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
              "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
              "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
              "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAA"+
              "8ALAAAAAAMAAwABwgpAB8IHEiwoEAAAAwSRKhwIMOGDx4uREix4sGKGA1KVLhRY0KIHSEODAgAOw%3D%3D";
var hide    = "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
              "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
              "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
              "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
              "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
              "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
              "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
              "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
              "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
              "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
              "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
              "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
              "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAA"+
              "8ALAAAAAAMAAwABwgeAB8IHEiwoMGDCBMqNAigocOHAh9KBLCwosWLCwMCADs%3D";
var moveup  = "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
              "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
              "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
              "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
              "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
              "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
              "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
              "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
              "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
              "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
              "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
              "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
              "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAA"+
              "8ALAAAAAAMAAwABwgjAB8IHEiwoMGDAgEgTAhA4cGGEBc6lLgwYcUHExFmvMhRYEAAOw%3D%3D";
var movedown= "data:image/gif;base64,R0lGODlhDAAMAPcAAAAAAIAAAACAAICAAAAAgIAAgACAgICAgMDAwP8AAAD%2FAP%2F%2FAAAA%2F%"+
              "2F8A%2FwD%2F%2F%2F%2F%2F%2FwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"+
              "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMwAAZgAAmQAAzAAA%2FwAzAAAzMwAzZgAzmQAzzAAz%2FwBmAABmMwBmZgBmmQBmzABm%2"+
              "FwCZAACZMwCZZgCZmQCZzACZ%2FwDMAADMMwDMZgDMmQDMzADM%2FwD%2FAAD%2FMwD%2FZgD%2FmQD%2FzAD%2F%2FzMAADMAMz"+
              "MAZjMAmTMAzDMA%2FzMzADMzMzMzZjMzmTMzzDMz%2FzNmADNmMzNmZjNmmTNmzDNm%2FzOZADOZMzOZZjOZmTOZzDOZ%2FzPMAD"+
              "PMMzPMZjPMmTPMzDPM%2FzP%2FADP%2FMzP%2FZjP%2FmTP%2FzDP%2F%2F2YAAGYAM2YAZmYAmWYAzGYA%2F2YzAGYzM2YzZmYz"+
              "mWYzzGYz%2F2ZmAGZmM2ZmZmZmmWZmzGZm%2F2aZAGaZM2aZZmaZmWaZzGaZ%2F2bMAGbMM2bMZmbMmWbMzGbM%2F2b%2FAGb%2F"+
              "M2b%2FZmb%2FmWb%2FzGb%2F%2F5kAAJkAM5kAZpkAmZkAzJkA%2F5kzAJkzM5kzZpkzmZkzzJkz%2F5lmAJlmM5lmZplmmZlmzJ"+
              "lm%2F5mZAJmZM5mZZpmZmZmZzJmZ%2F5nMAJnMM5nMZpnMmZnMzJnM%2F5n%2FAJn%2FM5n%2FZpn%2FmZn%2FzJn%2F%2F8wAAM"+
              "wAM8wAZswAmcwAzMwA%2F8wzAMwzM8wzZswzmcwzzMwz%2F8xmAMxmM8xmZsxmmcxmzMxm%2F8yZAMyZM8yZZsyZmcyZzMyZ%2F8"+
              "zMAMzMM8zMZszMmczMzMzM%2F8z%2FAMz%2FM8z%2FZsz%2Fmcz%2FzMz%2F%2F%2F8AAP8AM%2F8AZv8Amf8AzP8A%2F%2F8zAP"+
              "8zM%2F8zZv8zmf8zzP8z%2F%2F9mAP9mM%2F9mZv9mmf9mzP9m%2F%2F%2BZAP%2BZM%2F%2BZZv%2BZmf%2BZzP%2BZ%2F%2F%2"+
              "FMAP%2FMM%2F%2FMZv%2FMmf%2FMzP%2FM%2F%2F%2F%2FAP%2F%2FM%2F%2F%2FZv%2F%2Fmf%2F%2FzP%2F%2F%2FyH5BAEAAP"+
              "8ALAAAAAAMAAwABwgjAP8JHEiwoMGDAlEgHKhw4b%2BGCyEilFgQhUWLEzFGdMgRYUAAOw%3D%3D";
var icons =   "data:image/gif;base64,R0lGODlhdAEDAfcAAPVvb4%2Bv1Mw2NNbW1rIdIFVSVbfDyIzK7OoBAerz%2BcbHx%2FbOosnq0nTL"+
              "llSv4ZxjXf%2F55p5%2BufzMUf%2Foq%2F3ahTBrs%2F3p6P3%2B%2Fv%2B0Af3TaojFSjBccKuaX9Tb3w1TpFSJxYeHh%2BLr8%"+
              "2F%2FkmYKWqHuizce01fzKypCkraXctfLx8WjEga%2BTw6eJvHiJsPuZmbq7vE1vpezr7tfq9crY6NB4aoXOjyytUUNtftOxrU66"+
              "bvvX16eoqOX06C6Ir8HI1KnD4dSVi6mLN9fh6f7y8Zybm%2Fq6ujqk393AucrS2%2BHX5%2Fu7Ev%2F12Wi34vhYWfH4%2FM1WS9"+
              "almU%2BItm2JlTWVyv3IPKbV7%2F8zM8vm9UieyfS9IKW5x%2BDg4fn4%2BPiqqpXWqbLZ82mVxtIeI%2FaFhrzU6P%2F77v7lU%"+
              "2FX09bG2xBWFxp%2B72eLb2P7eJf%2FzyM4WGrOQjslHPeKqm%2B9JTf9CQv3rfPn9%2Fuzo1%2F3CK7LK47Tiwi90l9jN4siCfP"+
              "%2FsvbaeyNLDwSUhItBmWO748eodHeLl6Fy8U6%2BxtAJ7tcrh6drTwNHB3WBxnrPgsP75%2BP%2F8%2Be%2FUy%2Bu0GuZYVgSm"+
              "UO%2BbRvbdypqwudCsNW9%2Fqebo6rqrhpGPj%2BqEhMmxbv%2FhOPWuaurIvPvg3u09PYW%2B3R2nRd%2FXLeni7u7h4u2SNrOt"+
              "VmrAXH2WQnjA6aOqxCJgrHajub6PFfDu8vb894AyNtfv3J3E4aB%2BrlmVVO%2B%2FsLa80JovLPClWeKrGeJMUvj6%2FKXJQT%2"+
              "B0YdOgEJ7Q7DKLXndobf2%2FHJxRUPv8%2FL7h9eCpD6t1eMHfjr%2Fb8StXnRtihwKlT1a%2Beerp5%2BrZNGiGbqHYnHqofLmZ"+
              "MPf2%2BBCpWePQms%2FPzziRO76oz1h7irydnOmxEMLnyBFFYESo4I24h8S7ortbYvrPzr%2FQ5PhkZHCDSkR6ukFloN%2Fw%2Bd"+
              "uLee8sLOe1puSch%2FFRU%2Ba%2FgNTKH2ahi%2BRlZZGfvu94eefbuuW%2BQveQkPGNjMEkJFN4YRpYp9DWPePKzf%2F%2F%2Fy"+
              "H5BAAAAAAALAAAAAB0AQMBAAj%2FAP8JHEiwoMGDCBMqXMiwocOHECNKnEjxIKCLGAGt88Sxo8ePnmhgfENSQMWTKFOqRGCOoAsE"+
              "KmPKnEmzps2KYXLqzLnuWYwYz4IKFXppEI2c%2BpIS0EfgptOnEVkKdOECqtWrWLM63cmVhpoEQIcOPYqU6dKmWtNCZUlVrdu3cO"+
              "Fy3dkG0CQzKfLqNRODbNkwBALHHbyyKuHDiBPjnKuzjQBPvLhIlszIr74wSQWcpZgR40aQoDmKvEjyjUnFqFOrXh1Rp4B1AtrQFd"+
              "CO0b8L%2Fxi543pZY2B9FBmH6flT7NCiZJMyZcq6ufPnqV1PshWbbhh3Q%2F41ghNGtk59NFK0%2FwuMVqLwMF7BGhdq2Sxz6PDj"+
              "y7%2BqE9Skf7beeM%2FZps26T9x9hxkNtsHxW3DC1XWXXnv1tVNSgAk234QUVrhYGALc948jT3RHV4f75YRdbga%2BZ955jkE2GW"+
              "WWYaaPZiZaKOOMNA4k3UCfANKfdY1dN9B25CGIIWwhOlbbbbnt9mAYvi1V45NQOtTZRZ%2BFBtJogJR22okYaiiQBUeF2JgA7tAx"+
              "ECMlltdaThlSV%2BR12W3n4XfhjSdhlHjmaSNjxIW1HnJlLacmRPV5KVAK68w5JhyNEITmgRMVip9%2BdPkH4JLgFQipnpxCeV56"+
              "fhrX3m%2BDPnRjQWa4Ux1%2FtBn06J1rdv8pEIeKdgciVyM%2BGiNEU2pkJWhYatnpsBfOpSBeDKbAl18uRliqQ9LR0ShBnwBRXR"+
              "tvAJGdo1wY6GSkbHqZ44499ujOj94%2B25Bwfa4XFKAuCkrsvLEylmJkK1YmYGabgdslHVwwglsjn0wiXmxvHGGBCZ8MVAwXZkDR"+
              "L5cZEgRmrWOWeWaaQs4FqrvPjDoxvSQr5BqRsx2Jm268MbnOprGC4gjAXFwwxCSfZEcHDoAcgZsFnjjSyMN4SQwroTnZVxCiGDvG"+
              "qKPeAuevsXYhy%2BCyD14WZMlcIySdm9aNKGeI4Im3NcWOPMyLBY5YMO0%2FXDzDxUBDeGKLZEWPjLSsqKr%2Fup%2BRrqbbsbGP"+
              "4TuZvki5CKO6XZcsaX5FWhpg4pn%2BE7WQAszMxSeOpMBQIzq080w1KRgtNcWTSFtQtddmu%2B2Z3cK892ursqpyki03eXrjvJ9K"+
              "a5G37pQrxxNdhqEj1TgyyesMfWKLI68YzfhC0QY8cMEHY6swww5DLPGupoYLtrlxckd2nWd3ekEjjAxhgQ7kFNFFF1TV30URJujw"+
              "iQVDMPJ2RexrnwXepwMTFEF%2B9KsfVeZ3PxOQ4xP7G0L%2F%2Fjc7cenoTeZCV%2FogohwBmMARn7ANRFLgiSOYTkgyo5nNcKYz"+
              "nvnsH0ATGtFKt8HwhUFpkKvUfyaHmQFp6ludat8n%2F%2BSXj3o0ARTsEAQClrhEQbAjDuaohwvwlzPcTESIBaRfEc3xDiQqkYlg"+
              "dCIooAgAMbjgfg%2B0gMAe0r5TfSlM9iKTmQTyKn2o0YoPgRBtUjC0C6zvj41YXyAbQchC%2FqNuNKghtNiUNi6srW1vi9vcBFK3"+
              "u0GMhuBbJN9%2B9yGMDU9vVrFAPZAYh3owjyaMsED8XCAGAHTxi2AM4xOjiI8uMOyUCxGiAenXSi56MZbAZKIY32GOMp6xCA%2Fs"+
              "n0J0WQRJEYRpYnLa%2F15FAGTmTIQNWcqLPEEHM1TDDOAMpzjHKc4YuEOR62IkwDjnuYWATnSkO6G%2FKiaQcWGQPz4SCJCOBv8V"+
              "EwBTEDqwyRCG2AV8GPGXwYylIEDxDmMWQQdu%2B5wFPrFLfPQyDqAQBCwTGkwxklEMtaTiECionYlW1I0DSVXtAFeQOob0liQ9iF"+
              "ne4Amw%2FOSmOM2pTp8hPYoYL3PJW95DnAe9ns7TUBcTE6s0RkfiXeUTCWUHNmMyBB3IDx8AaEIc2MHRjjLUoeSwQC7fJz8XbLGL"+
              "SeyqWhHgxDgQsx74mOJD1egosmqxHtGiIOtkgy1ttTR2gYGrXCE6VYSc5TEJuIRiF8vYxQ7isZCFLBDQyZAOfjCEESGhCWVnQ6U9"+
              "M1HRFMDTNsZZpwCAo%2FiYCcHIQT9NmGOrG12rGJsAgJD%2F6gCXZ3qfCeZnUFdiVKNr7apGn0jbeuRjfvmja250y9t6mKN6aySY"+
              "wdqBsO01TCBEM10Uj2tLwi6EAKUBAhTGS97ykhcOR0ivetULhCe416eX2WMfAQnIQRaSkIcMCWWpFy6DqPRvrWqp4LASWzDGYSZV"+
              "vWpWtxpchX7VjMgUK0IGWtGLIrTBCR0mbc3YwJxRkqJX7SVaC4xhYbKDocXksEjjo83HdPOb5IzxOM25X5OFS3XUshZfXffXy2Gl"+
              "q%2BxAsFULWg9IXLjBC20ohMOaEAqX1cJpLXFHT%2FzRl3r4kCDmJQBee2Qpm3iMKbYyblcz05rq9Mxo5mmNEwLd6023%2F7oLu%"+
              "2B4%2FsgtKp5B4iQeWCSOyaFCtclXKJ1YyGseM5fjd1ZdR9rIsUVwPFT9QhAM1tFmdO2JFKzTQUXQ0ZuFz2Jo29tOKjayoJ8tPTa"+
              "ZQMiv08M569rOgDe2SRr3KaROa2pmosgisdCUSS9xWWtpy0xP%2BhKEtumWMJlrRHk3xMW9JkEiHuNhdlnKyyyhm%2BYCXJOI1r7"+
              "ahgN71rre9751nIx8ZUYFIkm52wxsmp0eTT5A4yDRpxK1Z6cs7%2F3OWcP01oQVis1vzktLRRjKmG33MsA4Bj7dxn6TFAPBj83rg"+
              "Ktbfvnk3O82x83OhGx0NgXiVIsQWoDeZqIKP%2BGfhsoOYS%2F9WLkOw%2BOQtVxrD0474NRHCci0j2t5TBrMx0Thziqvkp8hT3s"+
              "Sp9bzorZkmotzqO8Qw9JM0oqq7dYFzYfvPJIP1yhFJpbDLelYv3nm4jFZxcpu%2B3K0fesRfH2aml%2B1dn8vEsiAsLEM0K89h9X"+
              "vIBuUyO%2Fb%2B4CkyTOUAdJ%2FZJ81FY%2B%2F9xDoXO0TVGNPPCV7SZzU83xPP9gH6z%2B000WM7%2BFgMPw6yvoK8b34TWWrM"+
              "m%2F70cGkxN70p49aDk8alR73sZw%2BVMtsUzbgvTqxpz%2Fve26TTiQV1Y0UdWVKz2%2FfIT75Drp2tbWu7295OL7ifoPzqo%2B"+
              "QCvHjFIDrgg1XQowWWUAT%2FDMY%2FfkUowhItoMcZkDCIV%2FAC4dYviAfAQJA0eCD%2B1b8AEr6viHTAAB1R8AECOIAEKIDogA"+
              "7%2Bl363cAnwh3%2F%2FMH8CkQZp4IDK9wqKgA4EeIAHWAEc2IGsUAEfyIEaiIAj8AoUKH9gIIEnmHyDkA4fgA4dGIMeyAo0WIOs"+
              "wA84%2BIHooAiDsIIE4QET6IO%2BJwTpYIM0yA8ekIRKuIRKmIM5qAhCcH3Zt33d933hR37ld37pt37t935C%2BIWr0QhIsAxI6A"+
              "E4uAzLUAHpUAFYiIXp8IZkmISskA4dcBL6x3%2F%2BB4AFuIcviIAwoIAMCIaCiBgX4APpgA4tAAb0sAq34AN6%2F%2FCIetABST"+
              "CJavCIA6AHVdgCMKCGenASFoiBAziCMgiCpCiCGpgOJTiIqhgXxXALLBADrzAE1VANjkQ6RbEFAzAAHdABQrB9QpAAKRADpEAK5a"+
              "AISHASLfiCoxiDRliDOMgPOsiDqziNasELZ3AGc0Y6QoAEWxADihUDSFAIBoAE5IgEBkAJSJCLA2CC9OADJ0GEzViGTDiPTgiNUE"+
              "iN%2BIgVZsCI%2F5ACtHgJPnAJBNEBWoAEUAAE6wAEboAMe%2BAHSKAA2EAH9HALDegQYhiHZsgPaKiGbNiG4%2FeG6YCRc1iHdj"+
              "iF3Od94Gd%2BbaiF6sd%2B7leR%2Baga2Kd9J2mF4oeF5v%2BHfi3ZhTD5EGZADwqAfXM2CGfQAZewBR0wCAZwAhixBzRAA6YBBY"+
              "egAAbgBKuwCj25EIV4iIm4iI0IiZE4iUlQiXpwiZm4ienQiRVRDPvXAv33fwHIhxnohwoYA1kZk4Rxh26Zh3EplwZIlxMZiBTxCi"+
              "0wAFswCEipACdwBgpAldigBePwBDjQmApQCA%2FwBjjQAQpwBgmgBavACxTRiq8Yi7NYiylwi7m4i73Ii8AojMRojJ54gXO5gTL4"+
              "gSFYASOIiiaIl6vxibMJg7VZirh5iqlIEZfQAlvAmNiADQZABC%2BwnAqgBgbwBjRwCLooBFrwAICACJpZCEJwC%2FRQDRT%2FYY"+
              "3YWAzayI3eeAngKI7laI7oqI7s6I4VkYzAuYzNeIQ3CI24eY%2B8qRr0uYwzGI85uJ89SBGkYAnJuZwDsJQGoAbLqQZagAxP4Aeq"+
              "yQ2v0QEDgA2FMAN3QA9mQBH7eAv9%2BI8BOZAFeZAJuZAN%2BZAROZF3qRBbkIa2eYTzWKP1yAqKsAX9qRrwaITyWKNNCI1PGIUU"+
              "0QEtoAaFsJzY8AInUAhU%2BQIKQAkjIBJ74JTUqQBIsJyF4APl0AK7KRE%2FGZSgWQxEaZRIqZRMeRFOCZUCIJVUaZVYSRH6twxL"+
              "qJFzqIYe%2BZFwWIb8AAMkuaOJcZF8qpFpuIZ5CgMgKZJ0WBF6%2F2AJHZCkjfkCI%2BCkjbmkI2AA4oCQ6%2BAGWpAAITAIQmAA"+
              "tzADliCQE0GYhomYmrmYjWkAjxmZk9mYlomZmsmZngmaE1EMhvgBlqCIjOiIZakHYjmWkfiIZ%2FmGxwioibGViOirXwmJkkiJlo"+
              "iJKImWajkRPnCkOwCRA6CYL5CL2NCtJ6AAHXAI5qoFnZoACeAE5aAFyoCgxomcysmczgmd0kmd1smL2bmd3fmd4RmatzACpPAK3k"+
              "SLjEA6IXAJGKqLvHimrXkJr5msynoYogmLskiLvGCLiJmavOiLrTmMxSixElECI9ABO6Ck3tqtEMmklCmrZxACnqoOSLAKVWAJIv"+
              "8LEQeaoOHKoA6KDRAqoRTKixa6DhiqoRzqoRQBC9pQnlyQAFuAnt8YjuNYjufoA6kZA%2F%2FQjhOLGOSZjSmwjd0YtexJte%2BZ"+
              "i%2FFZEd5HCqsAkdiwma7qA9jgAz6gAHDrA%2BRot0KQtzJQDgFwB5YgnxJhpEiqpEzqpAYApVJKpVZKA1iqpVzqpRRRDYx4Af7I"+
              "CwBpqgJBkNiAAwipkMiwDg4JkRJ5C8UwLxdQDLzgBCEgA0JQDnfwAxIogT%2FwA%2BUwA0IAs07ghXZ4uqnrqSEgBDMwBuUwu7Eb"+
              "u7N7B2NguyGAu7zAC503ESnAj%2F7IBZdrogbZuSoautjACxOpuxGxiFz%2FgKFCcJghAIvqmgK56wTqq67qurwywKFpMAuWsAoU"+
              "0aiP2rYKIKmUurKXmqnrsKmd%2BqmhOqqlShEp0I5CSaZFeZRJuZSA8ARP%2BZQkAQWaWZVXWbrqUwyeOgY%2FEAAkAAYwyApMyA"+
              "oACAYkkAZ3MAMh4AR%2BFBF%2BlLq%2FC78eDAYfEAUc%2BKNJqJ8YaMIBkAY%2FMAa3mwDv96Iv7ARC0AKJgLpDucBn6sBqKsFt"+
              "OpUWTA9CkLst%2FBAjIKKpSwcXwMV0QAfNC8bpq77rmwDqIAMcHAAB0AItQBHZqgbbGq4pm6HiSq7megjoyr7s6q7weqojoAeHmZ"+
              "gnAKWH%2B6qSSZmUcJk4%2FzCVtroKk5QVCUACMPgBJOAETsELCdC6aeDByojDS0jCH2DCKKzCLPwQGvy7w7vJH6yM%2BQmkTaiD"+
              "oUwCPfzDKpwAGIwQp6zJipCqgsyYjgmZhyyrilyrnWkJtFvLt8wQLeADF%2BCpoNoB5DgDSDAD1FzNSFAO2JzNd6DKrUAPikARJG"+
              "uyKDvIKruk49qyhfCyMTuzNXuzD0EKLSAEULqcTHoGGbqz%2BHqdBkAMgIANHaCh%2FvrIV1EOIryEFUCkNKG6afzBIezKTYiblN"+
              "zD5fCLL3rKM5DKJLDKIezJDq3DsTzLEw2zyYxdnnrRsEsCitAB80yvz9m291qd17mv3FmZ3%2F8JAydMu0E80gjxt0hwC%2BiqBc"+
              "brw7MLuxLYw0ZdvEL9zRORtmsLnWfwtnE7t3V7t0iQt0Kwt337txQxCAh6BgranA36oAYAtBV6oRm6oR3aTlehDhyNDrgqE6rruj"+
              "NswwXt0DkM0WAg0RStEJgMvK87wzV8w3btyvwwnGDAw6P8i2%2F9D30twyQQfjq7oCcQ1j4boRNa1kR71jPgAzCA2Cms2AyhCGlw"+
              "Cz9wB3dQDmOQ2qZt2kM91PEbv7MwC8T7BS1AvxMBvuJLvuYLjGPsBOzru%2B%2B7zfJr2xKRBAiapPTcpE%2BqmFMKCFUKlTSADV"+
              "mqoY%2F7pVZBAq4cADNRDCEAvxr%2FXdeD7QEfGAU8%2FMMyIJ64nMmO%2FcFRAIMcHd53fYCHrcalbbu2TNJ%2BLYEZvYP3m9yG"+
              "i7jN%2FdxXOt1bOgYumNES%2BNn3rRAjMALqoAwc%2Brqyu9qv%2B7qzK9sY%2FtodrAhqHRFZzNhO4MVdDMa8IMapS8a%2BbcZo"+
              "3MFr3MYTgQSWMLiROqmUOQCSagCcm6JaoA6fOgi3YADvirlWAd5MGAUzUQ3v28EMXQHv7cp4HQCl%2FYsJobqHkMqA3dDw7cqwjN"+
              "i0vMICQeVWrtEg2OTwveWy7MPJ6%2BUKAc9aALuzi9pjoAxXYAx0rgzGoAxfkOd6rufG8AVaTRHL3MwCDM3TPM3VTM3X%2F5zN2L"+
              "zNHtzNSi0RiVCYlMCtimnPdKyYCjAAd6wFlLCu6rDH74rQVtHkFTATRrzQIAyCWZ6EEH3md3C7U97dYU7DG73qNWrm9F0Oh6Dmqm"+
              "vSqkzrY27r8zjeH923uq7mCpEEos2ht5AG3kcPI8DG0i7t6Id%2B0v7Y%2F0oRPO3T6BrUrR27R93DxTu7jx4RAZsE25qhCrADz0"+
              "mZL7ADBoDO6hwC6tCufuvOTlEBrmzkcN3dJ03Dqp7lhb3DUD7RlowQvPC7HPzrfXiDwl6nJByAnh3SuJrwQrDwV44ODv%2FwOUzC"+
              "O%2BzqFN8QZ6AI0r6Iq3AGt9CIcrvyLO8DKX8LJ2%2FdEv8h2qRt2nA%2BBhTe2sQ7C7At27BL28QdEX1AxU7q1K4a1SyfpUiAt6"+
              "DaugEADH9%2BFWCQ3TSRyeWgyp2c5RGf16McAjo9EBfQ67POymTe0bjuw7W7wlYU9rIOu1ce8A%2Fv0Vye9qUMHw3%2B4BFO1KW9"+
              "2qU91Bj%2BAzzP8xve4RBBD4XAC9C8Bbp9vk5gBiee4u27uvA73JDc1i8aERpc5WmQ0S%2B48Xatg%2BWtwot9ENin8G6%2FynRd"+
              "9jbq8R%2BNwkCs9gRR%2Bhd%2F%2BrSu8apPj6zP5a9f9%2FDB5m5Ou6kt53R%2B53e%2B58bf51EvES2gxSX%2BxSP%2Bxc3b22"+
              "V8xmMwC2rMxloxA0R%2B0Db%2FwfYzoOSpTuRMCI0YeOYTLcQOUQyqe%2FGMLuaeb9dyf%2BY4vcJfP2frj%2FMMX%2BvhHf8gDR"+
              "BCQjgp9s%2FgQYQJFS5k2NDhw39JFKWZcedWmlX06I1o0dFjR0stQnokYYleNYgNW2CjkyDGICEdkMyYOWNGB5tIyu3kWe5OmgD0"+
              "WtFTlNKo0QQkoqD7EMDJUagHiyUQUjENCTAfKrDi58GrB378KjAlESBNuUMDo%2F67wOuVDCFjfgYgQeJDlK1cu34Fy4%2FV2A9g"+
              "yqb5UW6GjAS8LkBs%2B1aIT6BY7%2BYNy7fvX6aCzRY%2BnHjxWtChIZ5R5JHeqlVnbt3y0dr1ax%2Brb6V%2BJfqf%2FyUfM25p"+
              "4Z1GC2HCP4SnIW7WOHHkwovaZt78KK8QVe%2FQzYquwliyZu%2FMCJGY%2BYViThxDpmt36fXr6DIPvmNYRggziteCd5Jg0CGr5e"+
              "9aR68%2BMHv34JPPOQILNBAqRW75IY077hjjQbkavEM44WZZcJY0ZtFwuCpaWOVAEEMUcUQSSzTxRBQT4kidQ5QpZzjCJGzwhwl%"+
              "2FsNBCGzH8IQBLakvxRyCDFHJIIokkpQUtflhFuHIeVOYKY4xRRhljvrDySiyV%2BcKSW4r08kswwxRTTInScFHJoOgh4aOPQhqp"+
              "o5Lo4WJMOuu08048oSKtoxFOS0012AKVbZVbfMzzUEQTXf%2BrGC6esecaSK9BpA4uPlNUTBBeQAgbEC719FMQL7C0IUbquCYDCa"+
              "hQVVUJrqF0VFCHzNQgbLCJ9VZcj7qAixQsKOXXV6qB1SAz7EHVjiwe6aabR7LIwo577DFj2FxRzLTWarPV1qBdSzkCCiD2oGEPIH"+
              "BQY4iEis2Aikd%2BcYUaeKn55REloL1mzm1%2FBMHWfPsF9YIY%2FAECkCfeEODgN96gAYpSPuPFWCq6cSUITMRRwA9xNqmkGyWG"+
              "iZZaf0MWeWTGYsCBBoMJUBkXlfUR4I091BC1DgrYnViBFBoxqJhnxKmEXiU2SYFkoos2%2BqAUcABEAJVjIeaBB4hhmQCX99j%2F"+
              "ggt7JMjilyAQ0Tnda%2B5RQgldEDn6bLS3LeaIpQnAhZgd%2FNhiiwFweKBlAYC4pGaJxeGFoVfgyUKJbjAxcdc6Ho100krTdvzx"+
              "qGLY4w23H8AGpYO4UAMZqgkA5IUM7NAliDpAbgQRsbvhQDRRISr11FRXleAeV%2FGF%2FHbcEzriCaaJUWDYC0oZR5%2Bq78nimF"+
              "MMXUgNCYbphpqodu3111JSEFahC9SVAFllma0XWmlBzn38Oxl1NFJJX4XKDcpx4ebvhXgRRwB9CHiC3mOEdmiLDJyH3qgLVKMU%2"+
              "FgCXuMhlLjOkC2Jbm1i8ftGNZ9HOduSjYJBa95DXoWpVrKqd%2BBJC%2F4PeKaAhwRuePt5wjCx04xQW%2BEcKXqCAgiCkDlo7Rh"+
              "AA%2BIojDKxgB3uZwqBAis9gLXQSo5g4%2FKCAjG1sbPcwWwWdeDhe%2BQpY11OI9ri3rGZFMHwpGR4BiKEG7JkBJZJjmgBcoQQM"+
              "VEJawvjDH4gQw388TGu%2FWB1E6GCBk6XMbSqj2stiNrOaPWJifkjBZxrRs5%2BNTX9PZOSBuvWtcI2rXOdS4Lra9S4H0steE2xI"+
              "F7%2BYkAuoIRNEGIQF9sA0XARhcEqAxwDa%2BAdhXIJbz6CAHfqWkqS1jQBOg5rU8BYzrM0xCAOgQxXDNrayNVKZzgGYwAhmMIT5"+
              "sGEGedi6iFixi%2F8lkWMes4cHDQKI%2Br3BD6OKARthqYZTehETlRhbFjZRgD8UAAQJbEQKriHMLUCkEX5om9O4gQ01bAEbduNj"+
              "3kxlM3Fw8iAxEBzhDFci8ykOUozz5jL%2FZTKUMW1leIOZzC5AM5sFAWdf45nPgLZIhyCDeLgAwtAOsgV4xlNp9UPGAOBBr2FQ4R"+
              "TCIMIWzJCCSVCAhhQr5kOeMTl94MJyCczc5qimj3H4IXQ1LF1DUOe8U7CuohmMnew6aNFt5VKjvIza1Kp2taxtrWtfQ4gZjkm2Jj"+
              "oEB8Sz3xFsF4NMxBMEk3ObG2Chhk0wK6e0EwEFTkUFBnIgBhX1wxPqRwxswFH%2FKnUYRx%2F3cI9h6OIUMXAI8%2FwXvShSL1jU"+
              "smKysOgs8E0LrNVaW9veFre51e1ufdQb31zhN8A1tHAQeUZliTcOf7j0H4N4ARH24Fgv2goW9tjEA7%2B3qmRxjQNbkGxDgNA%2B"+
              "IjCCIbzAAf30cb%2FjbUJ5CnmG1rphQwBywVsFlKS50NVWiF0yXvLSpARXmyvJtc9ymDOI5jhXv8%2BFbnRVXcjpUldHh1wAByxz"+
              "2Tig4A81kMIROURuLLjB1GIAVl7H4PAx3DUxTFDXKCBM7ggpG05dEO4Uz2jhC%2BH30qmit2TO3GE0FzbNOELsmhbDmMa2%2BbGR"+
              "iaoY1TBDDC5BtwHUSskD%2F9jCIJ6RAjNwoRgVZQx4uFCNFLziGUdWwwCSrORaeTmgTn4FlLnAiylDZXch5MWVs7zlLfjhAW1wGT"+
              "KMdwwOKGDMzyhzlNHs2ecxJgXcqJ%2FL3gCIcdFgHm%2BoXyyQIUuEvAIRmOBAECwdBA5gAhuFPIonwQhKMV7gFenExS%2BQqQYu"+
              "mPONUrEHYumYEoDlUaN77GNHARnSke4MkScVbr8CmAK6KeAFhdgBETIBAmSDIBOj3EEhFADQS6SgcaBhVApisIUOYEPYwy72spOd"+
              "7GUTYQfNfiE2mBztaqQZIuzr6yAGkWQFKKAQxCYCMnBBvPspoYbMJvezmfyMAfQv0Ix5Bv83pkYAHs46Fpm4xLAYkYJB2AMRiFDD"+
              "IFJQXYiMo3efPggdREnKUdMvlUBr5SuFwdl%2F0AGkt4SIWJv2tLL%2BEq3C9JoxxQbXE5nhBcXegQL4C6JimOEZAhU2sb39bXAz"+
              "29nmHsQrFJrgarziyPB%2Bwc67fWykZ13Z4t5B1f29hUuMNsEkjkUhtF31cRsb68Qg3gkJF4RkCwMERJh3uf1wDzvUEOMLuUAK5H"+
              "zwPcaiADhYrEPoUIxisDUqXRRnUQ3yCnMKoxQkJgYmbu5OeMpzaDy7p1rz%2BZDWohJucqMbQWm7t4jd9sUJCdzgdluiLWA92URA"+
              "%2BYG48Ip3F73bWs8618v%2FvYUYqPYhAcQ93c5Ob2PzXvlbH3chyn1usYOyGjHQuBedj3zZI%2FsBInfF4H6h7FcWIBPNf4E45s"+
              "iB6D%2BkETF4QSaEEQv4gwAHz1i9iPZAPH24gakGGUBMBw9OAqipTcApneKpJ0sBmhEm3HqI%2FKqcy0EI%2F%2BqcABMd0jEd1C"+
              "EcBBORFMi%2B2aMyqLi9YOO25Fu%2BbyMCuvu9S6Aihgi6a1ODsxPBESRBrQs3cnshLwM%2BM5AsFtwC5CIGuiu25BOGAigAuau%"+
              "2BVOIYJeAAc9IrpYMHW3KFngq%2BvaOTuaqfJ%2FAD20kBEBhCYeCrWHADzQmsR8ipVjEsCliX43EFDniGKUSI%2FzXzot%2FBHu"+
              "EhHgG4rONJns5qnoEbkRdQPn4hkL67BHibtxiUQeZzPgVgshh4Om4RukHINmyoOuwzROUbJXFDxGcLqOD7jOy5tg4oIVwYPxM8tm"+
              "jwPxCovlgQBnZSgiwIAlNkNngQphfQROHDk0HwLX0AhCPYvy0oNiDoQeVirgdCLejSBelSgzZECHZzn%2Fo7CPmhH%2FvBH5RaCP"+
              "75LBLhwG%2FbAQPhgmsbAN0rREM0QUSEtv1TCF6ZuhdMO2ykxG%2Fjt3E8N2nrrxRAx6Kjt3VkR2SzxH5LRLCLxzwphgWjQweDsF"+
              "JQgyNYB97ZpQvbGQ37BQ7TBQ9zF4rZAsd7CMoTIf%2BGIKG2QyEVYiEXgqGEmKHjkTERWT4i2MZujER7xEdlG7dyU4NLKMeEuL1B"+
              "MD7d2z2WzDpLrLuvCzt8uT165DaczMl2vMR3BDunO5S%2BAwIGexlEExdAoJxderSEiIFJq7RLy7RN88B%2F8LQwGqN0MiM0UiMz"+
              "UDU4kqOtycAQIQLl08YCKYZXMD4RvEfeUzobBDtGjKMUGDqqm0u6NEQa5Elz24IniyFe2EublMSrI8qibDZn%2B7rCRJQLKDizSr"+
              "j6wYVYAAECQ4hiQMCJQ4QBaLqK5KLH4jhu%2BbhSIjVVGpuSa6NYmqVaYjk%2B9MMDqYahOz4TxEel8zeLE59dkbrEJLb%2FoSRK"+
              "fvO6wfTJg%2FjNoBROcNRNd3w%2BpMxLOum7vwO8XSIGHOC0EbqARlA8qABAcSKnyEOn3lmndnonvaIne8KnEtlArSMCrgQgoXPB"+
              "ostNwLzEF2C6ixs%2BXuHLdFxMlqTBroPOJ%2BMk6fHPbVPHv6zL4iRQf7wUXniG9iMG%2BJOnQtgCWDARlUqqlkIImGqj%2F6Mp"+
              "myLAneqpnwqqocKE0QyR2EM62gsR4gvBlTRJcXvJZ8jB9LK24LTHBU06o3RQFQQlXknJegRQGRRQ4%2Fw364nPCqrCurqrvJInvs"+
              "IFvwIswaICwjIsNHQXxWLS0DADBSg2Z5PO5gigl0gytFM7pNtJ%2FxTcz0X5qaGjT8VUO2xctgb9uqbD0ZQIOsSUU7%2BsUySFzj"+
              "xNxtXqracCLuEiLuMCxn9YrubiGDuwA%2BhqF0wTsSDbQTRFPhN0yUwMu3QrUy4oMgSdUxMsVccU1BiQNnUDLVFNTBgs1R%2FF01"+
              "SVMi9lJAVryoGMsAn7xUZbyH%2FIsE3YsA77sIkk1Ps6VrDqO0KrtadUNEabSkg7CEmjtEvDNE3TTmTNVm1lC8osKB7io4VrOIV4"+
              "uIibuIpz021NV2SlzgcAPJYRPMLzoMNLPHWt121dv%2FZ7v%2Fibv2a0V381kEYgAwhgAzaAgH9tCFFoAIRAAVE42NUKWDaYgDlY"+
              "gzXgBP8RcFiGSFiDQAEUwNhluoCBnQNOoFhOKIM5WAKPXYiE5diUbaRGWAIRKAOSNVk20JkLYASc9U4TCdiBZQMyEBlR6NiWfaJG"+
              "YAORJdk5qNl%2FYAQL%2BARyMAET0AELGAKdPRCInYAyGFlOmIOh7Vo6KdqjXYMyEAGDbQQLKAIXEIN6AAAAEAN8KAId0C4RCdmR"+
              "rViTRVmvzVsvuYAlCNsymAAI6E4dcAEAiAPDPdx3MId8IAdGqFWHeNmYndmTtVmcZYSq1VvMFREyEIG6HVuDZQRyEIN3OFzSNdx3"+
              "EIO4BVijrdutrdmbbdqnjdqpvVwQ4VmC%2FdnM%2FdeildmKPVm20AH%2F0TXcJgCAeqiHcRiHXTBdF2AhAgHbziXb7jzbtF3btn"+
              "3buHXclLjarO3d3PXXCyCDiaXYMlBaC3CBJjDceugCEyAHfyiBFkAG5I0DczAB2o2Kvu1cwF1aHcAHABhd0k1cfDABuQURupVcvO"+
              "3ebbHdgi2Rj4IGkhWBn2WEIgCAXXgHfCCHIRgCRoCOH%2FgARYhffHgv5thc1gXc7gxd%2Fy1d00XdAW5emOXdkp1ctqjc%2BkVg"+
              "PLna8LXYEoGFZHDgkmWDxfgE0bXgT9CuYuABb%2BABdQiFKYAB5DUH5rWN3UXaJRAV4PVfSCDeepiH%2BI2Dd1he1Q3b1m2E13Va"+
              "qJVaqrXh%2F0QB2dU14BLhgV5A2p9thCIwhzjAh084CFjwhhqQhUZQBixAA0XYhV2IYtGAgPAVW%2FI1X%2FRVXxPwhzN43%2Fid"+
              "3xaW4jYWW%2Bg1W7RVW7Z1W7htXDW%2B4ReWXKW92ZwFEW%2BI44rlA4Mo3yaoBx34mgsIBGno43%2BQASZAgwoYhzgwAeZoBFlw"+
              "4IqF4KWdYC%2B%2BYAvAWQ72YBAWYea4X%2FHNX0bY3%2F4tXQAW4FC2E%2BdFWqVlWjOW3TQmEGnQAPFlA4Mgh3qAhCIY4AuQhR"+
              "qogTr4hwQIBTRAA2HYBR1gDh6mWLFdAp35hHx4ByI2YiRWYiZ24l2AYucgYZI14UZAYRVGXBbO5v8x2WZMLlvp5eTq%2FWQCqQFy"+
              "Llm8reN8%2BAROhIVFQAVpCAR5PoB6HmRDBo1AIOfeNdhiqOM7JmmDIAM%2BloViAGRBfoI4eGnQmOLereILuGLDzeLi5eLk9WIw"+
              "pmgw4Vu%2FdejBLVxrVlzGxd6D8OhRUOR%2FGIIuAIAiEOFikAUVQAVv0Bl1yGU0gIF5GK%2B1SGWSZeV%2FKF9IgGU4omVbxmVd"+
              "Rl5fZg5E5ufx1RlXbmSohWRJTl5KhuovYeiLXlqIjmgvnmjm0ABCiGNOYGUL6AIxYNyD4AFpQAVbvgAhcIB6hgEgcGbQGOdyNggd"+
              "qIcmWOeDAOZ3lgV5pmd7xudfDuYHjmD%2FY7ZgckjmDQ6BDv7g5A1hxi4Sot5alD3q4I2D4S3e423qLxbqtagBQtCAUdhaMtjsLr"+
              "CAxZjlRSAElFZpXgCGKWjpI6jk65bpMghpxcVpgzBplP7ZeU5vl9bnZBBsf%2F4HgBZoPCboJF7iJn5i6w6ZCzi8QOABHpAFBsAD"+
              "POBYCccDb2AAWeCBQICFVWWdYoAFWFjwBpcFb%2FAGCJdwE6dwBrBwBs9wDa9VIYMFHkjkMkgGEjeAdYAEw6UBIKiYF6CECBCG%2"+
              "BG0CT5i20Bjvyx6F8SWDTyjiRuWBkyaEGmAAg5ABVUADQ0ADWgAi5kAF7f7hrw5r2Z5vd0aFRViMtT7t%2F3lQ7bWIaaSlaZvG48"+
              "%2FQ6T7u6UBWBKA%2B8H4phgV%2FcC%2BoARVwBl%2BwAVEY9EH3BV9QgQbwAhTAgwuHBcft8AZ%2FcBTo8wb4c0MXdEIfdBuwAV"+
              "%2FIARVQgRpQdDxQ8QznSkh38GToB4qFhl5QgRywgXN4guR9gFrIhk3vdHnoAeOOA01gAAzf8KOQBVQg717ohzngg0BI9kBggNAm"+
              "75T%2BByf4gkCu51v4udDAbszmA7PlbM9mC9CGctv%2Bhysw7bYGApmMa1XO7FZ2gbvWgbyuZdvm613ehb%2F%2BkUCoAUB3Bi9Q"+
              "aRGhg0AQ8Umv9BwI9EwveE53hgaogUX39Qw9Cj1vcBKf9P8aqHRA3%2FSCv3hRuHVPT3hR94YLD4RkfHgRj3AvkOk16AdCEPRaeI"+
              "BZzwZC3%2FRN74G2Rl5IkAYK%2F3hjTQhaJgSe14BeSIZkWIRFqGWeB%2FeUE4JcvnIHEAKtNgjs7vI56O4u%2BG5uCYTxLu84Qm"+
              "%2F1Zu%2BoYG2v%2FofXju0Bpm1bnud6vud8%2FhEGwHRC94VwPxAY5%2FOJr3iMN%2FhOR3RF9%2FhAqKhZhniSr3RXD3S2r3uD"+
              "53RPB%2FWO%2F3jgWfCRD3gVkGlWx%2FRYj4MHcPmXJ3hrkPlB3oVwSHwM58p2xu6iRwXSJ%2F2ir4G0%2Fgd1OID0RoMpmIUEaP"+
              "p%2FuPpeQPKCXXKCfnLUn3L%2FtkaDFrCAnHcIjxZf%2BB5pS6FvabBvJhbkQv4RHhh8Qs%2BB4D8KGI94P6d7wi%2F4uw91FNB7"+
              "ef13Sad0Syf47Cd8w3cGROf%2BUZcFkEcIf3dwkp94V1fleNCAQc%2BGc6D8WjD4lAcIUaIMoakwLs60BjW8oMDDQFagYv8mUqxo"+
              "kcwiFYQ2cuxYwxusC06AYUFjkomMCxZXsmQpCxUhVBr6zeETCFagQAykwUQlLdA%2FJ19KmrxlpiVSljJHcSrD5t%2BQLgCKMKII"+
              "S1YNVItUqmNiEsa8IUnHkmXZQCDatF7Ksv13gQcDPCi8NFCRw0bavHpF2fDlTMVCh7JgIS0WSBYDb3Pp%2F6pwlsMX3r2S9fbN8b"+
              "eBFy94BEecaBix4sx1nRHSsGZNPEICaz15ci6vDUKRRVkzKWzXNMCZNz%2FsXPZCIG88O8ZUIY0BmX8JqhBF42AGr7ZjYUnjqKFX"+
              "smSLFkmrwbEGD7cyvJrEMkiidJbee63hxKeRhS5iyFV1y6N6DVkTrzj4CuRoegFW5MtkzgiI1FVxeVFDY5BNJpkvOaiAGQreQIQg"+
              "D7J4I9eCozn4IIgCVTbhQg1ZyANh%2F8CS4YZz1VBXDneFGKIvfjmjEEN4nJjibxBoKE13QC7CAA%2BN%2FKPOLM058IUTB7LUCA"+
              "PecYQKlVR%2Bx0BIIRwwBRqGTAGMEyo5Of%2BRdxowNQcZ8XVhwUTALRLTT%2F%2FwAgyXaChyRH1jSvegL3palCAeCzY424yiRD"+
              "ghQxYC1VIgcLVIVwOOQUZoobD5pYJuJsrCw6KNJsZhA5E%2BRmmlafX1V6Y6brooWxdcgBMPsXJKhqvKMFEnGkyMEaafFcHijZXE"+
              "fecNrSM1hxJ6er6JSi%2BjOAXBJ59UVQwPi8D00UTjmYRGCxYk2ytZBEpmILgqwiXXi858WOmlJSqKIWIcvtiguKXqFeFlJQqG4k"+
              "Qrxuuih%2Bvai1aEEuLY0EP8CtjIBY0YycsVt247RShXRFeuZ2R4kxVxqBiH5QXLKanMxX6%2BFNNMNd2U0049xSn%2FVHNGYVzW"+
              "WZKhMPNhocFY74w2WKYQwjyIydKrLMq7sw2kVjpiqt4QGVKb%2Fj4676gDm3rowTo%2BPbST4%2BE6BRPKJMA1xq%2F%2BGKQ0i3"+
              "gDQUhIKrkr2U5SZx122nEnJSHgiUceGuZ9O3NLPCidQ9x60pHzXDsX6vONNQTNY0t0SH30oEqDmHSMJOaYMNQUSW40wI3dZfmDmB"+
              "usL%2BeFB3gFUQ4AEwIvdAC%2BUiOwynpTrRKb5IAyTZYLJd4xVQnTRjWArCWXXoKp%2BuwUMUCpL%2FoBDty5gqpLukBYJwqR7G"+
              "V9%2Fm%2BHlS9%2BKqaor9r9St%2FHFfqo2JtKfqoJB4J%2B8%2FU%2F6bBKEDPR%2FxzFMnDB%2FIF%2BFSxh5Y1YIiHJtpBlv6"+
              "QEwgvqUoEXIAe4w50LBfOalKUk5K5NSZAtsALfvNSFQcqMKGsWgkgHW%2FLB9YVPhEnbS9Kwpq8T3mSBNhxLCHSHhimowhgJoF%2"+
              "B5iqExjnXEY8cJici2xbuS3bCJSXnVYRSUrscUDFEVItL8AEiWC0iuURqinGOoiC%2FNmYhInKKDFonWxQyxMIQxqtEYTWjGLDqx"+
              "jhZh3e5e5wQmTu8qwkGb2th2AbcpEW52PCQiE6nIRTLykLVr1O1CcgFb4Yp3vmskJjOpyU1yMpMOY5icIsa%2FUPgvjZ08JSpTqc"+
              "pVtiSHX%2BvhD1kpy1nSsv%2BWmsSjc%2FTIR1vyspebVMknipCPesyjmJpwgQksYCRfnjICJaiIHiLAzGlSs1VmIEUKTFAPSHCz"+
              "m9zMh7SWWU1MOnMietDDONOpTs%2BQogQrKMElyLFNb3KzHiaYxCSGYMp11s%2BZ5%2BQnQJlZjCT0gRYG1QYpdKAJekKiHuRYQC"+
              "4WMARxBrSOEUBnRTM6y0YQ1KAe7QMpSpEPetpzAZKQhETrB0xhEtOYyFSmRmMqU01egBQF9ehHk2CBfMyjm%2FVwhElNgVKKgusC"+
              "18zmPBkKTkYQdaZOfeoCzVACnFK1BNWwgAt62tCHSsIUpsjFJPbJlmK0853xTKo37YlPfUK1rW7%2FLVsSWEDVnBbjAvHpqUOD6l"+
              "V4iAVcA70pLRCqUIbmNaITfStiExugamhjrgYFKXroYIEizCOvXfWqJCYBLo4C9rEhHWlaTWBSlPZVsaY9LUtIIde5IpSiFxiCME"+
              "V72b32qqadzelOtdpQoHZ1qM1b6TCLCYBjJvNvqD1um%2F4RzOC6NJlN7VUi5sqCEsTAuEbVwSf06tVc9EqqjjWoVbGqVctuN6wz"+
              "MyopXqFNhnJTE59wGHKRi16kshcSS33umBqL0%2BnGAL8NY4R2heqnC8T1u31IQl3vulXt8hVjZHVnCUghT%2FaqdRIQEGt8K%2F"+
              "pgs06YsPfMJ4bHsoL9JiIFWmxE%2F4BN4SfGGpgUkZ1sZbnqVaFqdrMdPWhCF0pS0Ro2xBlW5189Klgdp%2FWhhsVvgFZLCxYkwg"+
              "xIpgiKZ%2BtVP6nWsa2tyGtjG2B4%2BPXGQv4sSXlL2h%2B7lbNUBalIdzzalPZqtSvQQwiUoQ6yRHnGU9ZTdKnKX%2BuaAbsB5u"+
              "6AberYA%2BfWp7IV6gLyRGaZ2nbQOuWpT3mL6Ce3Ra5vziEWDkHnFPtJvx7lr38bAWApS6K7U%2F1ueLNaT0l%2FtcaLlql3UX1V"+
              "VS%2F4smD18Ur6sIIk5NAQmd60lFWspxF%2FusQn5rSeCKzkMyPYrl3Aq4z3WtpXV1TZBm62gskrbT%2FpQQ0ycIAhfP%2Bt6bHU"+
              "ecal1pOSmexkYNtZ2GNisZW3sExnA%2BCn2s0stTUK77lCdiKSpay2aewnRhwCC%2BH29RXIQoZJdKLhDecyug16aTmz285UXvaX"+
              "yZYCW%2BTj0DOGOKMvUIxqmOEVpCBFEpJwzpWnnBQxMEM1eFHXARejGFwg%2BSticPKUr7znemi5y18Bcy7UHNduISvGH5sIn%2B"+
              "shEXDQRDvaIWV4uMroQWHCwcWNk5xwves54UEdwh72aR%2FI0nDe37iTUu4Z%2BynP%2By3BM547BD9LGdAxtbnJz1kCbeiaBRH4"+
              "%2B99Z0Ic%2BlGDpSSCFGXiBa1dxwQw6V3kiSrD3vvsd8IFnwQr6oA3%2FyRs%2B6NWY%2BVgbH4NT65kFlbd8BJbcByC0OxcxeM"+
              "Xncc2FUGQ903gIFe5zr3vco8C4AdI1r7H%2Ba3IjO796LsErmCfqAJ%2FbjlLVdR8SUY36FcPxkJ%2F8Ck6P%2BghgnvCdf8Uuk4"+
              "L3nTdd8nzPvva3D%2Fjua2Pzhk%2FC64kufi6YHOV6IDZV1W95g7K%2B3T%2BH%2FyvIn3RcgAwYXLhlWgNYQyREQjM0wwI%2BIA"+
              "QqoDWgABAJSLd92wGmHVKsnYAN2375wStQGge6mxOpFuqxwCvMDi%2FknR5IXt%2Fpn%2BWZnuYV3s%2FFQDWk0QVUQ%2F0lQSJE"+
              "Xvu9IAzqH%2Fu53zmdHOzFTQ7uYA%2BSHk4F%2FyHg0cIetJsp0KAeGOENSgcsAEOXIFwCNqAXfiEYRoIKCM3AFdzBYUHCjcXCOd"+
              "zD%2BUm6SV9ZjKDzpd%2FfrYDVtcQKolzklQAQOmEdzuDSndz0iZ%2Fj2d8Snl%2F2%2BaEQCh4gft%2FnVUT1PV7T%2BeBcKWLq"+
              "RWG7uZ8j%2Bl5LhEwo9ICvMUACMiAYlmIkOMMVVKCAOAHWneEhbJ3XeR3YiV0dkJ2AuBmcURzxBZsdlQAMYlRRpYAh7l0iWiL3ZZ"+
              "429GAVgl9h6KAh%2BuDgmZ4xqp8MAuI5HZ4NosfImRzkQWMTRoAlKCItuIEUWuPPudwjtoU6hELfXEEXlmIYOgNIgMvs1d4h3P%2"+
              "Fe7uUj73GidJgdpmlgS8hhHdEh4PUBxuRh%2BZ0fQQYhMtIg%2FA0iS9Af%2Be2hQk6jECIjEbacGXDBREjkMGLfQk7jEDrk4W3k"+
              "ACbALDCBN7wjPDagNagAA6jigRCgAYrbKJIiBOakBFKgn%2BiaGvTa8Kld8TURQ2IMFzxeD1akSFpjSSJFHqpcQg5eMVrkCTYkFR"+
              "ohR8oJN56TDyolVcagVS5dFaZXVrYFcCRAArBkKVqDL3iBOsik3GjhAbqjNbSkKY7hHU6EPyTBIbQiGpLFqNlZ8zVRSBpkEG2lC0"+
              "6lJTZkINpgYRRiN4JkSC5mWJ4jKcScZ0DmJErmV1reClTm4V3%2FZviVRTGIoi%2FUpRdGgg04gxfIABpNTwJ8YiiOol2mJirCpX"+
              "TwghlmIJ0xHBuCXBP5ov4BY21VQwxc3%2FmJZOY5ZHoxzwVIJM91ZR9%2BJftxnmUGIEUk4clx5d55JXWCJlYy0zq2o1q25CnOY6"+
              "9wQSvOJSzGItfNotjZYlQR5ApMj3Ei52daIua1Xw8e3ivwY5vwgmYeIuV9p%2BZlJPyZASOQjYBKIkUWKFWO5Pu93IIyU8ik5Eqi"+
              "pl2%2BZEyWCy%2FQnivioz7mIx6k0AKZYAymoH1yY1JOJzWuQEZeJoBimTN%2BpHc6oemB58ul40qM3DXZqIsGYY7OIHPu6IzK0l"+
              "mmpYau%2F2VbvmXZFOAZ0iUDTmlOPqAEegFu1k81JIKuJeNoFpUzQl77oV9VMuXLHSlLbONEQiOZUmN1Mmd6KSgOMkKNRqZCLuSQ"+
              "bh6cCl2FrlNpNsBpfqFqsqZr5iVLzMkWYoEoKmBtOqADqsCcOdUFNKj9uaCufSZTIt4VjgnjhamdSuVnZh6RiqURwhzoDeBzeupm"+
              "8t2lYuqoFmGcxl6%2BCQhwsCMXLmltOgMDGOqs9iq1eWLfLGqjOqCuXpKvHiuy%2FgYPpOQhlOdawmSWJqu0JqtIJAAPOKsXsqVb"+
              "Ruu0diuy0oFpLqk1WANrysJreiu6tkUmZMJErGu6sgUGZEBFiAAGvP%2FrqwnDH7yAAvyBMNhrWcTrRIiACPjrou3AH4BAJvzBDh"+
              "AsWcSrwDIsmZnBHxRAAfzBFhQCxS4sCBTAPxQACNiQu%2F5DyGoUBgwsxJIZvk7sFvwBy%2F7BIFTsP0ysDeGrvvLryd7sLBnsHx"+
              "DBvhJBwioAzMrsAhkswioszh6tKqUAyw7Avq7rHwDtH8Qsxy6Q0lKsxe4AxRbCP2xsx34s0n5tIrHsPzTtzwbt1C5QyhbAJbSsy5"+
              "otyLKryMIt2CKt2JLt07qtDRUCy%2FLsH2QCEdxt1Aqt%2FdDsvvbr3KpTyI7sItXtwYIA4O7r2drPKyyt3UKt1NoQ0Sbswh5uOh"+
              "GuzTb%2FktgqbcuaQcoK7gIxrtNaruk2T9VW7BZgbQFoLdd6LOfWUuYabSOF7ACs6wD8w%2B6%2BQCZsrg2hbtkGbuTWT9qubcu%"+
              "2BrPHWLi217tVm7dZyLO26FeOCgONCLeTekN7ubNP%2Breoer%2FOqUvKyLfNerv3oQBG4APu2r%2Fu%2BL%2FsWgQnIZ7mIrcS2"+
              "bAqUrvjOzuT%2BAdP2bfGi7%2FiyUvfyrd8CrgDPDgBYAQM3sAM%2FsBXIgRw0AQCYQxPoQP3oLu%2F6biYAr%2FCebtRWLt4O8C"+
              "r17%2F%2Bm7ggDThdAMAtD8AQDgBg0wUwRLwKvLgmjEg2Hb%2F0ssAlUhAs88D%2BYAAtPcBPQ74GoL%2Fwm%2F7H7yq8R98r1Zm"+
              "%2FFbu8Nr1IOp%2FDMmIMVdEEPD4EJiAEQC3ELy0EPg8sCt%2FAQv7AFY3Dz2C%2Fb5m%2FL7u8Ub9ITP64Nl4sDB3EEm8MEY3EQ"+
              "NwEW5%2FEfW8EY%2B8kKm7EZv3AMZzDc7m4m9O7vBq9iOQwZQMASsAEfTMAECKwmTwAf8MESLAEZkAEo%2BYkkQwAlV%2FIlY7Im"+
              "rzIm8wEbfLIpi%2FIoL0wjTDIlswHLTsD9sqwbs2wBuDIsQ4As5%2BUdC7EL%2FIM59LAVQMVEuIAcqLEOMHAXkLEg%2B%2FAXu%"+
              "2FAEv0MT42wtL8ElU0AGZAAV2IESYIA5m%2FMw2IEEZAAFiMAEsIEwO0ktU%2F%2FyJYsABYCzBIzzMJTzOZuzEiiBHVCBBKxzO3"+
              "PyK4uyWM2zN2fyPWfAutrBMDDyAGDAI%2B%2BAQBO0OwMzQh9IMVvBMSfzPyyzBeBDEJvDPxRBESCzR4MLFmsxVHTxNYfxIPcKEi"+
              "uxEjPxIpGBOAc0BSRH8zQCBFiyPWdAPg9DPx81BgA0FbCzO78ypVnEBZABKjN0OOczOfMzUh91Ogt0OBe0Rj9ZVE%2F1UBP1OP9z"+
              "ViP1Vq8zUxs0KD%2F1SnT0RyszHgfxMeNDSmPxMfdKR7%2BDHvvxMpuAXwNyA8%2B0npSxITuwBFNwGicSH2A1Oi%2FB7Ej1N1PA"+
              "QJPzWfezEgwDV7ezJ1%2F%2F2BZJtSVPQEOT9T5f9mUrtVp79UEjIWhPdlXXtE3DLxMHdGpn9GpLB1wjs1wLMV1XBF6DS26D9DL3"+
              "lTNDszSDSyEftgtTcCIfEgQ49jnbgVtLRyMs9D1bNXSbtmZjtCvTitrRM0Pjsz5nt2ljdlqzs1cvAQRQFFAvtD2Lt2ErdwTvcRqf"+
              "9z1ntHpPd0g3MB7HdUjPtQnUtTno8UrrNX8bs27%2F90iX9EnfdYH7CQ9bc0c%2FcGJr8yFlwGWbbFFVMlVLAESX91ErdVdzMihv"+
              "IHiLtnhTQWmD%2BGlr9mZTQCurt5i0dyo3dD4nt3w3MCI3QWZTwYvHuGeXBTuwgxWwQxCz%2F4N%2FG7kJKLkY%2FAMAfDQ7pLSB"+
              "M3B%2FJ%2Fhf%2F3VdO3he%2B0lLbzFMT%2FgQE%2FYNGfVZUwHGMII3CyxZWzaLn%2FN2M3V3b6BYg%2FOak3mbn%2FV5r7VGT0"+
              "R1h%2FZY53OEU8QPg7mOZ%2FMQ5Llql3hZxMGQKzk7kHQRiIWRRwWDmwAGNwE7iDlHH%2FhKCzeAb7lKg%2FqY7HVf8zFg%2F7Ec"+
              "DPhgH5Jp2wHGSLZoh%2FM437mbb3ZT%2BzRLtDaKy3pZ0zqe0zZGs3V96Ppo%2B3iXv7QXEzqFmwBqBzswK1pSQIIghIGSC8I8QI"+
              "VYCIJyiYUmCIKUdwE7hIEa%2B0lw7zaW%2FwM%2BDLgcPLielPt%2FE%2FczT%2F9ENGfxIdk5Upv577g3ZXs4ebe6rXsyrq8EI4"+
              "D3n4%2B3r6M1baO3ba%2F3RAy8vlc1FZD6Hv91YKd6IJuAfas2w5eFJoTBtIcByIeBAIR7yFP7LoS8AIBCyJcLkQ%2F5kSf5kQdx"+
              "kz85Mkc5cHO6f4s0SZuASaN0qF94hs%2BMVHe4itN6Oge7UyNFWPs5nWP3wfczotv2EuTJ0tdz0%2Ff606Nzwuv5K0N7UuhAyLdB"+
              "yY99GIj92Iu9JpQLo7v8kkO6pEPFNPN8EGOwOWT6zVM5gns6bwc4umu5c5O3dM9MLQu1eNu7aQP0QN%2FzOy%2FBU5PBEDA9xH%2"+
              "F400e9Qa832Tg%2B5Nd51lP%2FvitbvnQ4AiS8QRuMPumXvumPvgA8QdqXCyRQu7YvOSRg%2Bz9ouwVwu7dPRBd4%2FLi3O85b%2"+
              "Baf7Nrs7UWNrNWRPD6yLN5tf9tGvtXp7fUBO8sNr%2Fp2ntbOzwRAEOe1Av9VHvuGXN%2BdbP%2FbzUseTPSgIwMeDPDucPMiX%2"+
              "F8fbce%2Fr%2FbmnO4GLuhNBAGWrc0%2Fbz9J3%2BFUDBAaBApUMoyIhAwURfNhAYPQPYkSJEyUyIrNkCZ8JIihQyCCBip1hSpQM"+
              "NEnSzsEMCUVMYLgEQiOKM%2F9ZxKiRo0eQIkmaHIhSJUuXbGDKpHkUaVKlS2nqaBMG6tMwT6VOtQoVaxhNTJeys8KO%2F90%2FE%"+
              "2Bxc%2FDNn4l%2FYsWLF%2FANQ1hy7Ilzp1rV7F%2BKFRhAyTugoQYIdwSkRKnxJxiheiI3I8GWDs%2BNHKiEHT0Yo9CUExInpMn"+
              "YMWefkwSmDKhwKc7Ni1auP6pj3pk1s2bNpxxbwZCvriHHAqmWH71%2BRIWn%2FDeki1pxYHWbZodX9HHp06dOpV7d%2BHTtXSGHY"+
              "CRLLDlLx4d4tDNckaO6%2FLmEELc%2F%2BHn58%2BfPp15euKStWUAIEZWW3Sz%2F%2BoLKPwAINPBDBBO1yCiupqGrwqvxyU5DC"+
              "Ci28EEPdXIOttg5lu23CDEUckUSKinFiEAMMoGSEEaS44YYNvpnxmw1s9OGCEnU04v8Aib4wQscghZyumhNoZAZJZvJAo4ceppjC"+
              "iCnAKESKEQYZckQeIfriCyy9%2FNKuCzrYIApwjDgTzTTRxAIZZArQghcwL%2BSRSzntvNNEJGJMIxQz1fzTCEsEEMaSLXKMrphq"+
              "UlyxxRdjpHHGG%2FGEyIguJ71UTiQ2kEKBQiihJIoeAE3zg1hweZOL6Jww8kgk82jSSSinaIVKKzG9FVchzdhghAGkiJQZUUdFUx"+
              "hchNmmg0NZu0AIMh0YNk023YQz12qttXCLbwYY4ZsbTmDCT2iN%2BCCVSvahxAzditFzAy1UCRdaQYWRQohr7b2XQB82wGabbyhB"+
              "opVn%2FwSHYAcINmL%2FmnhOQVZZvC7QlFMtPg1V3ChiIaaAVWCRLtFFWXQRRhkhlRTfku%2FU1IARbqBECEpCEbhgJphQRZUDDg"+
              "AXi16g2eeEFFYz4wYpfAVWWGgLIODYZKFbFdIkX23yyShprfJKk632MoWgdzhhFgVOOKGVUMFhogpggJnlbGAOeDbhU%2FZBgg7V"+
              "OvimAyM3%2BBbeYck1F93nmHVW3DOlfTPOqw2v60SPGw155BsbxmtdGA1QQIoNbtjmBmaMcOCAWT5NQwu0mTACi1PuiWYEnxXTV4"+
              "F%2BKZkhYEAJLtjMthlmLfJ23w080EHpPRz4pYps1VUmY41ySqrVNWCDlL%2BR4gQsnDQC%2FxxVgEkjjVlmsXl3eag55QYkilEM"+
              "ZZVZpkQVgal3QGaabcZZZ55VV%2BzhTRWQGNSiR7UYY42D%2F38mYiJT3kY1OGqtphjMa90GfNCB2J2JCdyjGRMcYDDS1aIW%2B5"+
              "DC%2FOySNSlsrWtfC1sPxla2tKFtbQhTWPgeVxegCe1XNQpW4I6WtBYC8HC54xMBASWvQt2QLgncwAtUpgUhuAtmFTzYn3qQjVps"+
              "AAkbu8vDJEc5y2FOc5wDxudCB4zRlS4eqAuE3OhmN7zxbm%2FnShcOAQixTk1Mf4Aq1am0kKrVjAl6I9ACNk4wghEGbgrByEY0tv"+
              "EKxQhRAdyCnvSgVL3rZU97B%2F%2FoHjU4EL7x4YV1roOd%2BtI0O3BY0HZKYyPwdtWrGG5ghuIqlg1XwwtKXI4SBtjGFfOQB941"+
              "8YlauKRdEDnLBj7QCBGU5ASVeMFUaDAB5Gue%2BVqWPjR9sn01uxk4crazno0SeNnaVrfOGLg09k01F0jBCYY4gg1sYwShgpK4wB"+
              "HIQd7AkHcRogFeZEQtvOxMnzQYD3HJwF3WxYMg9BrYxEY2s6ENhWxbIRKAiM1r6Ytf%2FgIYJ59Ju9op7Haq4YUWbiDL5jmQotBq"+
              "YjhuoAXOcOVvUmCRFnwgQoqJy52ETOYU9dRRK14uc5s7wBYpATrRke4UYRzBGB1qtfKtrGX4pB7%2FNGcmTfhZk4N3gYW%2BXvAi"+
              "AxxRqYHDQjCkYYAbXAIvXHjlNmI5y8vV8pZObNc%2Fg6hARUZveo7Enva2N8lKiq9kF7gAHZyQgATI4ArGMAaXCGuMK8hAHQlwAi"+
              "%2Fo0FCU0oEOvOhrAtQB2MAOlrBcEqxhEZtYJzgBso5Fyl5foTWuDXSEJTxo2lLYtrfxQrSjFcINRkCJE%2FyAj358qbhacYhdIc"+
              "Fh4yzn89I5Pa0KMho3iCpXeslAkKJJmDRTBQUtiIVaHFMKM7UXXxMQ2CoM04IVndlOv3DYBMAWL5GlrAwG%2B13whldNFRwveQ3r"+
              "2cZyRb3quIJXbVo5nGaxc1z8aelO%2FzcCGYA2tjQJxBm2sY1CaGGWllPSqJ7UgzxEYQyK2gBYw8pRjxrgubwzwkhLmmATMY%2Be"+
              "JcVqEvcJqH76gK3vSYAXHWA9J1iHDpS9whe%2BO134qolgMttpFYwhg%2FOa%2BB%2FcBWx7uUddHgJZvtKswhc4q9i4HUXJgeXx"+
              "AfTlvEXG1Xpz3Z4kzeQ98GnBvKC9SwooscznwXWdZ5qChWsphVZoAQmBuEArthFj5jKvqje4QwfuGVIKc9WrHK5LSlfaUoLGEVAx"+
              "3YZ24XOFvDlAHdThRWWNUTaa%2FXhU0KzZlK%2BgDifE9gJ9XfIX1EbMJYp4c%2ByTJjCInOYWpvqvWm61KhToy%2F8QB1OCPq4u"+
              "BjUIjCqfui5c4OgLfB2wOdcSRpc7AUsvkQIZjGEWeRiBn5lygS3QthCtMEBu%2Fxi4VgghBVAM61jLSktbBq6fuoxPAnjIhCtDZ9"+
              "PefV%2BLeSfrA5D6wI7lq37bu2sKvhrW62vfkKmMWDVHZOBaLtswmQDoIh7Rmevjt5r6GQBSl%2FrhTBEiEbdxBx5A2HJB02M5th"+
              "CCQ4whFEyQHjO%2BIW%2FFVAPCDvboBvLAcwo%2FG8OBGMSGg0tOIhJXnbzb6juXa50DDKsK0bnAXwfbagomHJo2q7U6CjeTiO94"+
              "4tM9eMIHJuua0VqwIL%2Fy13lsdQqGYlN93GMfyw0tSSv%2FY8pFNvW9lzKIbUgh3FqIwSVWioRB8EAIMHcAFqLADBmh0wBNB2ib"+
              "vQyqqKHp2bXcxrSRwIVG8JnbS1F2R2cJYmDCOxsk1QKSV2PoM6kiOvnuNHifHGp%2FA%2FzGNOFFrpksSeqSHVBR1jqVS61YiOx%"+
              "2B1e4VNvD%2FVEH3%2FZv4Ru76UorRAbO2ogNOiEECQqB4xueB5pvSQgdCkAAprgbnN2A2Ayea%2BWhvHs%2BDCMS1Q6Ht0Ctl5C"+
              "8adKFFHMiufhU%2Bas8BYo%2Fg3GvsEs7fgIHKTO0oVM27eszHag%2FWhI%2B%2B0gwiHLDTIPD3mC9N5EuYFPDYECcEfGAb8kAL"+
              "xiANZE568mBG%2FzYPCcoPFlhPKWBBAcppG3zg5MxK5fBMCGLg5UKBBFaw5mRQIrwN3MSN3HYLWs4t3YDrPVzPCGAPOnLMu9RGZi"+
              "Sw7MZr63JvJnaP4NrO9w6QA%2FXp%2BfKu%2BK7MCyXO7aBQxJhKyogvsfiOK3COGaTHwsJvBAzAyAJBDqNDCP5OC04gFFJgEApP"+
              "CHiA%2FhYvCsDvGyCP0u4C5xqsEHau597tTyrswsZA6IjuPZ5uVKIOOlJNv7YsAmFtbM6u4RKgDyMC11ZNbXyvgjjwTCgQBA%2BL"+
              "61gRA1mtyWJRFmkx%2Bs5LMTrgBmhk8zogEBaLCO0CFqzPcrCPF7av%2B4AQC6aAEcWvA%2F8GARhZg83cTKWi4PLkjM7yAP467%"+
              "2FP6DD7oDVDsTTpSDbB00cfasKnQDrFWsQjTsPfEDuHakALNMA4b5gLscctgEdR4R5%2Fmix9VMRnzIkVm4Lzo8Tp44RJkyQRhTg"+
              "UtrAVPoBywUc%2BiI%2F3Wzwfaj87ej%2FPkj%2F7sLz5k4NIybTpEkb08TQxHJQHL68AcciJw7QuVz8n00d8q0L5owiYlbhcH0v"+
              "Z2shZ7Ek9gQQs2YBrvsEZawACw0QnuTzVo0AZxEOVgpEp40AdhLggtcvXkwwmAIX1UoQqmbyWdgNPcsZgq6vbKKw7vIssKLgw3Lp"+
              "80ziCjb%2B8SLC7BUOzoknrs8g2qOSsvb0UYifEEsg8WYjA7%2FlAKAnEQC1GPkOAQE%2FH7aM4R72WvdKzqiIl9tLDhBpN%2BIg"+
              "stk0%2BCKIi6Fg76BNPKiHCvJKuygJLi2McDA9MWV7NamAXEUqCxEhIvlvH6OuAZuY8rp7EaG%2FMas7GoklM54wMiJfIEYw4LhL"+
              "ARMVIjeXM5rxM76QIplfLZws8poVIqs1M8x1NuhvEiEVMxyVM919NvhCA3d%2FM6AgIAOw%3D%3D";

if (/search\?.*q=/.test(document.location.href)) {
  
  //Add div for pop-up images
  x = 0;
  y = 0;
  popupDiv = document.createElement("div");
  popupDiv.setAttribute("id", "imagePopup");
  popupDiv.setAttribute("style", "display:none; z-index:99;position:absolute;");
  popupDiv.addEventListener(
    'mouseover',
    function(event) { this.style.display = "inline";},
    true);
  popupDiv.addEventListener(
    'mouseout',
    function(event) {
      window.clearTimeout(globalTimer);
      this.style.display = "none";},
    true);
  popupDiv.addEventListener(
    'mousemove',
    function(e) {
      if (sqr(x - e.pageX) + sqr(y - e.pageY) > 400) {
        window.clearTimeout(globalTimer);
        this.style.display = "none";
      }
    },
    true);
  document.body.appendChild(popupDiv);
  
  //Remove sponsored links column if it exists.
  if (foo = document.getElementById("mbEnd")) foo.parentNode.removeChild(foo);
  
  //Save the document location. This is used in XHR's.
  href = document.location.href;
  
  //Get results
  results = document.getElementById("res");
  
  //Create new div to put results in.
  newDiv = document.createElement("div")
  newDiv.setAttribute("class", "leftColumn");
  
  //Create new style element and add it to the head.
  style = document.getElementsByTagName('head')[0].appendChild(document.createElement('style'));
  style.type = 'text/css';
  style.innerHTML = "#leftColumn {float: left; max-width:"+(window.innerWidth - 385)+"px;}" +
                    "#google_extra .znerp {background:#D5DDF3 none repeat scroll 0 0; border-top:1px solid #3366CC; font-size: small; font-weight: bold; padding:4px 0.5em 4px 4px; }"
  
  //If there's a div id 'navbar' in the results div, put the contents of the results div into the new div.
  if (document.evaluate ("//div[@id='navbar']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue
   && document.evaluate ("//div[@id='navbar']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.parentNode == results) {
    while (results.firstChild.nextSibling != document.getElementById("navbar"))
      newDiv.appendChild((stuff = results.firstChild).parentNode.removeChild(stuff));
    if (results.firstChild.nextSibling == null)
      newDiv.appendChild((stuff = results.firstChild).parentNode.removeChild(stuff));
    results.insertBefore(newDiv, results.firstChild);
  }
  
  //Create the google extra div.
  rightDiv = document.createElement("div");
  rightDiv.setAttribute("id", "google_extra");
  rightDiv.setAttribute("style", "max-width: 255px; float: right; padding: 0px 2px 0px 2px; margin: 8px 0px 0px 0px !important; background: #E5ECF9 !important; border: solid 1px #BCCEEF ! important;");
  results.insertBefore(rightDiv, results.firstChild);
  
  //I don't know what the following lines were supposed to do.
  //brclear = document.createElement("br");
  //brclear.setAttribute("clear", "all");
  //results.insertBefore(brclear, newDiv.nextSibling);

  //Add the foreign wikipedia menu command.
  GM_registerMenuCommand(GM_getValue("foreign wiki", false) ? "Don't show results from " + GM_getValue("wiki address", "en") + ".wikipedia.org in future." 
                                                            : "Also show google extra results from another version of wikipedia...",
                         toggleForeignWiki );
  if (GM_getValue("foreign wiki", false))
    GM_registerMenuCommand("Change the other wikipedia location to something other than " + GM_getValue("wiki address", "en") + ".wikipedia.org...", 
                           function(e) { GM_setValue("foreign wiki", false); toggleForeignWiki(); } );
    
  //Add google extra stuff.
  for (i = 0; i < 5; i++) {
    switch (eval(GM_getValue("order", "[0,1,2,3,4]"))[i]) {
      case 0: addImages(); break;
      case 1: addVideos(); break;
      case 2: addWiki(); break;
      case 3: addDict(); break;
      case 4: if (GM_getValue("foreign wiki", false)) addForeignWiki(); break;
    }
  }
} else {
  //Stupid icons stuff.
  var FRAMEDELAY = 50,
      names = ['Gmail', 'Calendar', 'Toolbar', 'Desktop', 'Picasa', 'YouTube', 'Notebook'],
      urls = ['http://mail.google.com/', 'http://www.google.com/calendar', 'http://toolbar.google.com/', 'http://desktop.google.com/', 'http://picasa.google.com/', 'http://youtube.com/', 'http://www.google.com/notebook'];
  var place = document.getElementsByTagName('center')[0].insertBefore(document.createElement('div'), document.forms[0].nextSibling);
  place.innerHTML = '<table style="font-size:13px"><tr valign="bottom" align="center"></tr></table>';
  place = place.firstChild.rows[0];
  for (var i = 0; i < 7; i++) {
    new icon(names[i], urls[i], i);
  }
  GM_addStyle('.GM_stupidicon{width:52px;height:37px;background:#fff url("'+icons+'") no-repeat scroll 0 0}\
               .GM_blocklink{display:block;margin:0 6px 0 6px}');
}

function addImages() {
  //imageurl = href.replace('search', 'images').replace('www', 'images');
  //imageurl = href.replace('search', 'images');
  //imageurl = href.replace('search?', 'search?site=imghp&tbm=isch&source=hp&');
  imageurl = href.replace('search?', 'search?tbm=isch&');
  if (document.getElementById("image"))
    imageDiv = document.getElementById("image");
  else {
    imageDiv = document.createElement("div");
    imageDiv.setAttribute("class", "image");
    imageDiv.setAttribute("id", "image");
    rightDiv.appendChild(imageDiv);
  }
  GM_xmlhttpRequest({
      method: 'get',
      headers: {
        'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
        'Content-type': 'application/x-www-form-urlencoded'
      },
      url: imageurl,
      onload: function(result) {
        res = result.responseText;
        if (res.indexOf("Suggestions:") == -1) {
          imageDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 2px;margin-bottom: 2px;" style="margin: 3px;"><td><span id="sd"><a href="'+imageurl+'">Images</a></span></td></table>'
          addTopImages("image");
         if (eval(GM_getValue("show", "[true,true,true,true,true]"))[0]) {
            whatever = res.indexOf('<table align=center border=0')
            end = res.indexOf('<br clear=all>');
		  // NOTE: change the value of ShownLinesOfImagesto how many lines of images you want to see (max 3)
		  ShownLinesOfImages = 3
		  ShownImages = ShownLinesOfImages * 8;
            for (i = 0; i < ShownImages; i++) {
		  // N O T E : : : : this is an apparent fix, but I am not sure what it will do exactly, it may actually break the script!!!
              //if (res.indexOf('<a href', whatever) < end) {
                image = res.slice(res.indexOf('<a href', whatever),
                                 (whatever = res.indexOf('</a>',res.indexOf('<a href', whatever))+4));
//                image = image.replace(/width=\d+ height=\d+/, "style='max-width: 100px; border:0px; margin:0px -2px -2px 0px; padding:0px;'");
                imageDiv.innerHTML += image + "&nbsp;";
              //}
            }
          }
          addEventListeners("image");
          imageImages = imageDiv.getElementsByTagName("img");
          for (i = 3; i < imageImages.length; i++) {
            thisImage = imageImages[i];

            thisImage.src = thisImage.src.replace('http://', 'https://');

            thisImage.addEventListener(
              'mousemove',
              function(event) {
                x = event.pageX;
                y = event.pageY;
//                var h = this.parentNode.href.match(/&h=(\d+)&/)[1];
//                var w = this.parentNode.href.match(/&w=(\d+)&/)[1];
//                source = (w > 50) ? this.parentNode.href.slice(this.parentNode.href.indexOf("imgurl=") + 7, 
//                                                               this.parentNode.href.indexOf("&", this.parentNode.href.indexOf("imgurl="))).replace(/%25/g, "%")
//                                  : this.src;

                var h = this.height;
                var w = this.width;
                source = this.src;
//                source = this.src.replace('http://', 'https://');

                globalTimer = window.setTimeout(
//                  alert(source),
//                  alert(thisImage.src),
//                  alert(this.parentNode.href),
//                  function() { popUp(x,y,source);},
                  function() { popUp(h,w,x,y,source);},
                  10);},
              true);
            thisImage.addEventListener(
              'mouseout',
              function(event) {
                window.clearTimeout(globalTimer);
                document.getElementById('imagePopup').style.display = "none";},
              true);
          }
        }
      }
    });
}

function addVideos() {
  //videourl = href.replace('search', 'videosearch').replace('www', 'video').replace(/google\.[^\/]*\//, "google.com/");
  videourl = href.replace('search?', 'search?tbm=vid&');
  if (document.getElementById("video"))
    videoDiv = document.getElementById("video");
  else {
    videoDiv = document.createElement("div");
    videoDiv.setAttribute("class", "video");
    videoDiv.setAttribute("id", "video");
    GM_addStyle('.video a {font-size:0.9em;}');
    rightDiv.appendChild(videoDiv);
  }
  GM_xmlhttpRequest({
      method: 'get',
      headers: {
        'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
        'Content-type': 'application/x-www-form-urlencoded'
      },
      url: videourl + "&num=4",
      //url: videourl,
      onload: function(result) {
        res = result.responseText;
        if (res.indexOf("Suggestions:") == -1) {
          videoDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px;" style="margin: 3px;"><td><span id="sd"><a href="'+videourl+'">Videos</a></span></td></table>'
          addTopImages("video");
          if (eval(GM_getValue("show", "[true,true,true,true,true]"))[1]) {
            videoString = "<table><tbody><tr>"
            whatever = 0;
            for (i = 0; i < 4; i++) {
              whatever = res.indexOf('<div id="res-' + i)
              if (whatever == -1) break;
              video = "<a href=\"znerp\">" +
                      res.slice(res.indexOf('<img', whatever),
                                res.indexOf('>', res.indexOf('<img', whatever))).replace(/\/0.jpg/, "/1.jpg") +
                      " width=120px title=\"" +
                      res.slice(res.indexOf('<div class="rl-snippet">', whatever) + 24,
                                res.indexOf('</div>', res.indexOf('<div class="rl-snippet">', whatever))).replace(/<b>/g, "").replace(/<\/b>/g, "") +
                      "\"></a>";
              video += "<br>" + res.slice(res.indexOf('>', res.indexOf('<div class="rl-title', whatever))+1,
                                          res.indexOf('</div>', res.indexOf('<div class="rl-title', whatever))) + "<br>";
              videoLocation = res.slice(res.indexOf('href="', res.indexOf('<div class="rl-watchon">', whatever)) + 6,
                                        res.indexOf('" target=', res.indexOf('<div class="rl-watchon">', whatever)))
              video = video.replace(/href="znerp"/, "href=\"" + videoLocation + "\"").replace(/href="\//, "href=\"http://video.google.com/");
              videoString += "<td>" + video + "</td>";
              if (i%2 == 1) videoString += "</tr><tr>";
            }
            videoDiv.innerHTML += videoString + "</tr></tbody></table>";
          }
          addEventListeners("video");
          videoImages = videoDiv.getElementsByTagName("img");
          for (i = 3; i < videoImages.length; i++) {
            thisImage = videoImages[i];
            if (thisImage.src.match(/\/[1-3]\.jpg/)) {
              thisImage.style.border = "2px solid #00ff00"
              thisImage.addEventListener(
                'mouseover',
                function(event) {
                  animate(this)
                },
                true);
              thisImage.addEventListener(
                'mouseout',
                function(event) {
                  window.clearTimeout(newGlobalTimer);
                },
                true);
            } 
          }
        }
      }
    });
}

function addWiki() {
  wikiurl = "http://en.wikipedia.org/wiki/" + href.match(/[&?]q=([^&]*)(?:&|$)/)[1].replace(/%20|\+/g, "_").replace(/%22/g, "").replace(/_[a-z]/g, toUpCase);
  if (document.getElementById("wiki"))
    wikiDiv = document.getElementById("wiki");
  else {
    wikiDiv = document.createElement("div");
    wikiDiv.setAttribute("class", "wiki");
    wikiDiv.setAttribute("id", "wiki");
    GM_addStyle('.wiki {font-size:0.75em;color:#333333;font-family:"Lucida Sans Unicode","Arial Unicode MS","Lucida Sans","Lucida Grande",Verdana,Helvetica,Arial,sans-serif;}'+
                '.wiki h2 {font-size: 100%;}'+
                '.wikiContent {overflow:auto;max-height:300px;}');
    rightDiv.appendChild(wikiDiv);
  }
  GM_xmlhttpRequest({
      method: 'get',
      headers: {
        'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
        'Content-type': 'application/x-www-form-urlencoded'
      },
      url: wikiurl,
      onload: function(result) {
        res = result.responseText;
        if (res.indexOf('<p>', res.indexOf('<div id="contentSub">')) != -1) if (res.indexOf('Wikipedia does not have an article with this exact name') == -1) {
          wikiDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px;font-family:arial,sans-serif;" style="margin: 3px;"><td><span id="sd"><a href="'+wikiurl+'">en.wikipedia.org</a></span></td></table>'
          addTopImages("wiki");
          if (eval(GM_getValue("show", "[true,true,true,true,true]"))[2]) {
            if (/ may( also)? refer to:<\/p>/.test(res)) {
              endSearch = res.indexOf('<!-- end content -->');
              oldFoo = 0;
              foo = 0;
              while (foo < endSearch) {
                oldFoo = foo;
                foo = res.indexOf('</ul>', foo) + 4;
              }
              wiki = res.slice(res.indexOf('<p><b>'), oldFoo);
            } else if (res.indexOf('<p>"<b>') != -1) {
              wiki = res.slice(res.indexOf('<p>"<b>'),
                               res.indexOf('</p>', res.indexOf('<p>"<b>'))+4);
            } else if (res.indexOf('<p>A <b>') != -1) {
              wiki = res.slice(res.indexOf('<p>A <b>'),
                               res.indexOf('</p>', res.indexOf('<p>A <b>'))+4);
            } else if (res.indexOf('<p>An <b>') != -1) {
              wiki = res.slice(res.indexOf('<p>An <b>'),
                               res.indexOf('</p>', res.indexOf('<p>An <b>'))+4);
            } else if (res.indexOf('<p>The <b>') != -1) {
              wiki = res.slice(res.indexOf('<p>The <b>'),
                               res.indexOf('</p>', res.indexOf('<p>The <b>'))+4);
            } else if (res.indexOf('<p><i><b>') != -1) {
              wiki = res.slice(res.indexOf('<p><i><b>'),
                               res.indexOf('</p>', res.indexOf('<p><i><b>'))+4);
            } else if (res.indexOf('<p><b>') != -1) {
              wiki = res.slice(res.indexOf('<p><b>'),
                               res.indexOf('</p>', res.indexOf('<p><b>'))+4);
            } else {
              wiki = res.slice(res.indexOf('<p>'),
                               res.indexOf('</p>')+4);
            }
            if (res.indexOf('class="image"') != -1) {
              wikiImage = '<img ' + 
                          res.slice(res.indexOf('src=', res.indexOf('class="image"')),
                                    res.indexOf('"', res.indexOf('src=', res.indexOf('class="image"'))+5)+1) +
                          '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
              //wikiDiv.innerHTML += wikiImage;
            } else if (res.indexOf('class="thumbimage"') != -1) {
              wikiImage = '<img ' + 
                          res.slice(res.indexOf('src=', res.indexOf('class="thumbimage"')),
                                    res.indexOf('"', res.indexOf('src=', res.indexOf('class="thumbimage"'))+5)+1) +
                          '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
              //wikiDiv.innerHTML += wikiImage;
            }
           wikiDiv.innerHTML += "<div class='wikiContent'>" +
                                ((res.indexOf('class="image"') != -1) ? wikiImage : "") +
                                wiki.replace(/href=\"\//g, "href=\"http://en.wikipedia.org/") + 
                                "</div>";
          }
        addEventListeners("wiki");
        }
      }
    });
}

function addDict() {
  dicturl = "http://dictionary.reference.com/search?q=" + href.match(/[&?]q=([^&]*)(?:&|$)/)[1];
  if (document.getElementById("dict"))
    dictDiv = document.getElementById("dict");
  else {  
    dictDiv = document.createElement("div");
    dictDiv.setAttribute("class", "dict");
    dictDiv.setAttribute("id", "dict");
    GM_addStyle('.dict .me {display:inline;font-weight:bold;}'+
                '.dict .pg {color:#558811;display:inline;font-style:italic;}'+
                '.dict .prondelim {color:#880000;font-family:"Arial Unicode MS","Lucida Sans Unicode",Helvetica,Arial,sans-serif;}'+
                '.dict .show_spellpr .pron {color:#880000;display:inline;font-family:Verdana,"Arial Unicode MS","Lucida Sans Unicode",Helvetica,Arial,sans-serif;font-size:0.9em;}'+
                '.dict .prongoto {color:#116699;cursor:pointer;font-size:0.9em;text-decoration:underline;}'+
                '.dict table.luna-Ent {background-color:#FFFFFF;color:#333333;display:block;padding-bottom:0pt;width:100%;}'+
                '.dict .ital-inline {display:inline;font-style:italic;}'+
                '.dict * {font-size:95%;line-height:1.25em;margin:0pt;}'+
                '.dict .sectionLabel {color:#558811;display:inline;font-style:italic;}'+
                '.dict .secondary-bf {display:inline;font-weight:bold;}'+
                '.dict .homno {display:inline;font-size:0.7em;vertical-align:top;}'+
                '.dictContent {overflow:auto;max-height:300px;}');
    rightDiv.appendChild(dictDiv);
  }
  GM_xmlhttpRequest({
      method: 'get',
      headers: {
        'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
        'Content-type': 'application/x-www-form-urlencoded'
      },
      url: dicturl,
      onload: function(result) {
        res = result.responseText;
        if (res.indexOf('<div class="luna-Ent">') != -1) {
          dictDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px; margin: 3px;"><td><span id="sd" style="font-size:100%;"><a href="'+dicturl+'">Dictionary.com</a></span></td></table>'
          addTopImages("dict");
          if (eval(GM_getValue("show", "[true,true,true,true,true]"))[3]) {
            dict = res.slice(res.indexOf('<div class="luna-Ent">')+22,
                             res.indexOf('</div>', res.indexOf('<div class="luna-Ent">')));
            dictDiv.innerHTML += "<div class='dictContent'>" +
                                 dict.replace(/href=\"\//g, "href=\"http://dictionary.reference.com/") +
                                 "</div>";
          }
          addEventListeners("dict");
        } else if (res.indexOf('<table>') != -1) {
          dictDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px; margin: 3px;"><td><span id="sd" style="font-size:100%;"><a href="'+dicturl+'">Dictionary.com</a></span></td></table>'  
          addTopImages("dict");
          if (eval(GM_getValue("show", "[true,true,true,true,true]"))[3]) {
            dict = res.slice(res.indexOf('<td>', res.indexOf('<!-- google_ad_section_start(name=def) -->'))+4,
                             res.indexOf('</td>', res.indexOf('<!-- google_ad_section_start(name=def) -->')));
            dictDiv.innerHTML += "<div class='dictContent'>" +
                                 dict.replace(/href=\"\//g, "href=\"http://dictionary.reference.com/") +
                                 "</div>";
          }
          addEventListeners("dict");
        }
      }
    });
}

function addForeignWiki() {
  foreignWikiurl = "http://" + GM_getValue("wiki address", "en") + ".wikipedia.org/wiki/" + href.match(/[&?]q=([^&]*)(?:&|$)/)[1].replace(/%20|\+/g, "_").replace(/%22/g, "").replace(/_[a-z]/g, toUpCase);
  if (document.getElementById("foreignWiki"))
    foreignWikiDiv = document.getElementById("foreignWiki");
  else {
    foreignWikiDiv = document.createElement("div");
    foreignWikiDiv.setAttribute("class", "wiki");
    foreignWikiDiv.setAttribute("id", "foreignWiki");
    
    //the following has already been done by the normal wiki stuff
    //GM_addStyle('.wiki {font-size:0.75em;color:#333333;font-family:"Lucida Sans Unicode","Arial Unicode MS","Lucida Sans","Lucida Grande",Verdana,Helvetica,Arial,sans-serif;}'+
    //            '.wiki h2 {font-size: 100%;}'+
    //            '.wikiContent {overflow:auto;max-height:300px;}');
    
    rightDiv.appendChild(foreignWikiDiv);
  }
  GM_xmlhttpRequest({
      method: 'get',
      headers: {
        'User-agent': 'Mozilla/4.0 (compatible) Greasemonkey',
        'Content-type': 'application/x-www-form-urlencoded'
      },
      url: foreignWikiurl,
      onload: function(result) {
        res = result.responseText;
        if (res.indexOf('<p>', res.indexOf('<div id="contentSub">')) != -1) if (res.indexOf('Wikipedia does not have an article with this exact name') == -1) {
          foreignWikiDiv.innerHTML = '<table width="100%" cellspacing="0" cellpadding="0" border="0" class="znerp" style="margin-top: 4px;margin-bottom: 2px;font-family:arial,sans-serif;" style="margin: 3px;"><td><span id="sd"><a href="'+foreignWikiurl+'">'+GM_getValue("wiki address", "en")+'.wikipedia.org</a></span></td></table>'
          addTopImages("foreignWiki");
          if (eval(GM_getValue("show", "[true,true,true,true,true]"))[4]) {
            if (/ may( also)? refer to:<\/p>/.test(res)) {
              endSearch = res.indexOf('<!-- end content -->');
              oldFoo = 0;
              foo = 0;
              while (foo < endSearch) {
                oldFoo = foo;
                foo = res.indexOf('</ul>', foo) + 4;
              }
              wiki = res.slice(res.indexOf('<p><b>'), oldFoo);
            } else if (res.indexOf('<p>"<b>') != -1) {
              wiki = res.slice(res.indexOf('<p>"<b>'),
                               res.indexOf('</p>', res.indexOf('<p>"<b>'))+4);
            } else if (res.indexOf('<p>A <b>') != -1) {
              wiki = res.slice(res.indexOf('<p>A <b>'),
                               res.indexOf('</p>', res.indexOf('<p>A <b>'))+4);
            } else if (res.indexOf('<p>An <b>') != -1) {
              wiki = res.slice(res.indexOf('<p>An <b>'),
                               res.indexOf('</p>', res.indexOf('<p>An <b>'))+4);
            } else if (res.indexOf('<p>The <b>') != -1) {
              wiki = res.slice(res.indexOf('<p>The <b>'),
                               res.indexOf('</p>', res.indexOf('<p>The <b>'))+4);
            } else if (res.indexOf('<p><i><b>') != -1) {
              wiki = res.slice(res.indexOf('<p><i><b>'),
                               res.indexOf('</p>', res.indexOf('<p><i><b>'))+4);
            } else if (res.indexOf('<p><b>') != -1) {
              wiki = res.slice(res.indexOf('<p><b>'),
                               res.indexOf('</p>', res.indexOf('<p><b>'))+4);
            } else {
              wiki = res.slice(res.indexOf('<p>'),
                               res.indexOf('</p>')+4);
            }
            if (res.indexOf('class="image"') != -1) {
              wikiImage = '<img ' + 
                          res.slice(res.indexOf('src=', res.indexOf('class="image"')),
                                    res.indexOf('"', res.indexOf('src=', res.indexOf('class="image"'))+5)+1) +
                          '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
              //wikiDiv.innerHTML += wikiImage;
            } else if (res.indexOf('class="thumbimage"') != -1) {
              wikiImage = '<img ' + 
                          res.slice(res.indexOf('src=', res.indexOf('class="thumbimage"')),
                                    res.indexOf('"', res.indexOf('src=', res.indexOf('class="thumbimage"'))+5)+1) +
                          '" style="max-width:100px; float:right; margin-top: 13px; padding: 2px;">';
              //wikiDiv.innerHTML += wikiImage;
            }
           foreignWikiDiv.innerHTML += "<div class='wikiContent'>" +
                                       ((res.indexOf('class="image"') != -1) ? wikiImage : "") +
                                       wiki.replace(/href=\"\//g, "href=\"http://"+GM_getValue("wiki address", "en")+".wikipedia.org/") + 
                                       "</div>";
          }
        addEventListeners("foreignWiki");
        }
      }
    });
}

//for mouseover of image results.
function sqr(x) { return (x*x) }

function popUp(h,w,x,y,source) {
//function popUp(x,y,source) {
  obj = document.getElementById('imagePopup');
  obj.innerHTML = "<img src='" + source + "' style='max-width: 500px; max-height: 500px;'>"
  obj.style.left = (x - Math.min(w, (w*500)/h, 500)) + 'px';
  obj.style.top = y +'px';
  obj.style.display = "inline";
}

//for mouseover of youtube video results
function animate(image) {
  newGlobalTimer = window.setTimeout(
    function() {
      function increment(str, p1, p2, offset, s) {
        return p1 + (parseInt(p2)%3 + 1) + ".jpg";
      }
      image.src = image.src.replace(/(.*)(\d)\.jpg/, increment);
      animate(image);
    },
  750);
}

//for working out wikipedia links
function toUpCase() {
  return arguments[0].toUpperCase();
}

//Add plus/minus, up and down images to google extra headings.
function addTopImages(div) {
  imageTable = document.getElementById(div).getElementsByTagName("table")[0].getElementsByTagName("tr")[0];
  imageToggleColumn = document.createElement("td");
  imageToggleColumn.setAttribute("style", "width: 100px;");
  imageToggle = document.createElement("img");
  imageToggle.setAttribute("style", "float: right;margin-right: 3px;cursor:pointer;");
  imageToggle.setAttribute("title", (eval(GM_getValue("show", "[true,true,true,true,true]"))[numberize(div)] ? "Don't s" : "S") + "how these search results");
  imageToggle.src = (eval(GM_getValue("show", "[true,true,true,true,true]"))[numberize(div)] ? hide : show);
  imageMoveUp = document.createElement("img");
  imageMoveUp.src = moveup;
  imageMoveUp.setAttribute("style", "float: right;margin-right: 3px;cursor:pointer;");
  imageMoveUp.setAttribute("title", "Move up in list");
  imageMoveDown = document.createElement("img");
  imageMoveDown.src = movedown;
  imageMoveDown.setAttribute("style", "float: right;margin-right: 3px;cursor:pointer;");
  imageMoveDown.setAttribute("title", "Move down in list");

  imageToggleColumn.appendChild(imageMoveUp);
  imageToggleColumn.appendChild(imageMoveDown);
  imageToggleColumn.appendChild(imageToggle);
  imageTable.appendChild(imageToggleColumn);
}

//Add event listeners to the top images on headings
function addEventListeners (div) {
  // up arrow
  document.getElementById(div).getElementsByTagName("img")[0].addEventListener(
    'click',
    function() {
      if (document.getElementById(div).previousSibling) {
        for (i = 1; i < 5; i++)
          if (eval(GM_getValue("order", "[0,1,2,3,4]"))[i] == numberize(div)) {
            tempThing = eval(GM_getValue("order", "[0,1,2,3,4]"));
            tempThing[i] = tempThing[i-1];
            tempThing[i-1] = numberize(div);
            GM_setValue("order", uneval(tempThing));
            break;
          }
        document.getElementById(div).parentNode.insertBefore(document.getElementById(div), document.getElementById(div).previousSibling);
      }
    },
    false);
  // down arrow
  document.getElementById(div).getElementsByTagName("img")[1].addEventListener(
    'click',
    function() {
      if (document.getElementById(div).nextSibling) {
        for (i = 0; i < 4; i++)
          if (eval(GM_getValue("order", "[0,1,2,3,4]"))[i] == numberize(div)) {
            tempThing = eval(GM_getValue("order", "[0,1,2,3,4]"));
            tempThing[i] = tempThing[i+1];
            tempThing[i+1] = numberize(div);
            GM_setValue("order", uneval(tempThing));
            break;
          }
        document.getElementById(div).parentNode.insertBefore(document.getElementById(div), document.getElementById(div).nextSibling.nextSibling);
      }
    },
    false);
  // plus/minus
  document.getElementById(div).getElementsByTagName("img")[2].addEventListener(
    "click", 
    function() {
      znerp = eval(GM_getValue("show", "[true,true,true,true,true]"));
      znerp[numberize(div)] = !znerp[numberize(div)];
      GM_setValue("show", uneval(znerp));
      if (this.src == hide)
        while (document.getElementById(div).getElementsByTagName("table")[0].nextSibling)
          document.getElementById(div).getElementsByTagName("table")[0].parentNode.removeChild(document.getElementById(div).getElementsByTagName("table")[0].nextSibling);
      else 
        switch (div) {
          case ("image"): addImages(); break;
          case ("video"): addVideos(); break;
          case ("wiki"): addWiki(); break;
          case ("dict"): addDict(); break;
          case ("foreignWiki"): addForeignWiki(); break;
        }
      this.src = ((this.src == show) ? hide : show);
    },
    false);
}

//enum type thing for results.
function numberize(div) {
  switch (div) {
    case ("image"): return 0; break;
    case ("video"): return 1; break;
    case ("wiki"): return 2; break;
    case ("dict"): return 3; break;
    case ("foreignWiki"): return 4; break;
  }
}

//Function for showing/hiding foreign wiki things in future.
function toggleForeignWiki() { 
  if (GM_getValue("foreign wiki", false)) {
    GM_setValue("foreign wiki", false)
  } else {
    GM_setValue("wiki address", 
                prompt("Please enter the version of wikipedia.org you want to use.\n\nThis should be two letters to replace 'xx' in the address 'xx.wikipedia.org'", 
                       GM_getValue("wiki address", "en")))
    GM_setValue("foreign wiki", true);
  }
  window.location.reload()
}

//the rest of the functions are for stupid icons.
function icon(name, url, index) {
  this.name = name;
  this.url = url;
  this.x = 0;
  this.y = 'px ' + index * -37 + 'px';
  this.moving = false;
  with (place.insertCell(-1)) {
    innerHTML = '<a href="' + url + '" class="GM_blocklink"><div class="GM_stupidicon"></div>' + name + '</a>';
    firstChild.addEventListener('mouseover', animstart(this), true);
    firstChild.addEventListener('mouseout', animend(this), true);
    this.obj = firstChild.firstChild;
  }
  this.obj.style.backgroundPosition = '0' + this.y;
}

function animstart(ico) {
  return function(e) {
    if (ico.moving) clearInterval(ico.moving);
    ico.moving = setInterval(movebg, FRAMEDELAY, ico, 1);
  }
}

function animend(ico) {
  return function(e) {
    if (ico.moving) clearInterval(ico.moving);
    ico.moving = setInterval(movebg, FRAMEDELAY, ico, -1);
  }
}

function movebg(ico, dir) {
  if ((dir == 1 && ico.x == 6) || (dir == -1 && ico.x == 0)) { clearTimeout(ico.moving); return; }
  ico.x += dir;
  ico.obj.style.backgroundPosition = -ico.x * 52 + ico.y;
}